mirror of
https://github.com/bia-technologies/yaxunit.git
synced 2024-12-03 08:45:31 +02:00
Унификация работы с реквизитами. Более понятное сообщение об ошибке при неизвестном реквизите.
This commit is contained in:
parent
bd4f64ded6
commit
2f118e52ad
@ -20,12 +20,9 @@
|
|||||||
|
|
||||||
Процедура Установить(Контекст, ИмяРеквизита, Значение) Экспорт
|
Процедура Установить(Контекст, ИмяРеквизита, Значение) Экспорт
|
||||||
|
|
||||||
Если ЗначениеЗаполнено(Контекст.ТекущаяТабличнаяЧасть) Тогда
|
ОписаниеРеквизита(Контекст, ИмяРеквизита); // Проверка наличия реквизита
|
||||||
ТекущаяЗапись = ДанныеСтроки(Контекст);
|
|
||||||
Иначе
|
|
||||||
ТекущаяЗапись = Контекст.Данные;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
|
ТекущаяЗапись = ТекущаяЗапись(Контекст);
|
||||||
ТекущаяЗапись.Вставить(ИмяРеквизита, Значение);
|
ТекущаяЗапись.Вставить(ИмяРеквизита, Значение);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
@ -34,13 +31,8 @@
|
|||||||
|
|
||||||
ЮТПроверкиСлужебный.ПроверитьТипПараметра(ОграничениеТипа, "Тип, ОписаниеТипов, Строка", "Фикция", "ЮТКонструкторТестовыхДанных", Истина);
|
ЮТПроверкиСлужебный.ПроверитьТипПараметра(ОграничениеТипа, "Тип, ОписаниеТипов, Строка", "Фикция", "ЮТКонструкторТестовыхДанных", Истина);
|
||||||
|
|
||||||
Если ЗначениеЗаполнено(Контекст.ТекущаяТабличнаяЧасть) Тогда
|
ТекущаяЗапись = ТекущаяЗапись(Контекст);
|
||||||
ОписаниеРеквизита = Контекст.Метаданные.ТабличныеЧасти[Контекст.ТекущаяТабличнаяЧасть][ИмяРеквизита];
|
ОписаниеРеквизита = ОписаниеРеквизита(Контекст, ИмяРеквизита);
|
||||||
ТекущаяЗапись = ДанныеСтроки(Контекст);
|
|
||||||
Иначе
|
|
||||||
ОписаниеРеквизита = Контекст.Метаданные.Реквизиты[ИмяРеквизита];
|
|
||||||
ТекущаяЗапись = Контекст.Данные;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Если ОграничениеТипа <> Неопределено Тогда
|
Если ОграничениеТипа <> Неопределено Тогда
|
||||||
ПолноеИмяРеквизита = ЮТСтроки.ДобавитьСтроку(Контекст.ТекущаяТабличнаяЧасть, ИмяРеквизита, ".");
|
ПолноеИмяРеквизита = ЮТСтроки.ДобавитьСтроку(Контекст.ТекущаяТабличнаяЧасть, ИмяРеквизита, ".");
|
||||||
@ -56,13 +48,8 @@
|
|||||||
|
|
||||||
Процедура ФикцияОбязательныхПолей(Контекст) Экспорт
|
Процедура ФикцияОбязательныхПолей(Контекст) Экспорт
|
||||||
|
|
||||||
Если ЗначениеЗаполнено(Контекст.ТекущаяТабличнаяЧасть) Тогда
|
Реквизиты = Реквизиты(Контекст);
|
||||||
Реквизиты = Контекст.Метаданные.ТабличныеЧасти[Контекст.ТекущаяТабличнаяЧасть];
|
ТекущаяЗапись = ТекущаяЗапись(Контекст);
|
||||||
ТекущаяЗапись = ДанныеСтроки(Контекст);
|
|
||||||
Иначе
|
|
||||||
Реквизиты = Контекст.Метаданные.Реквизиты;
|
|
||||||
ТекущаяЗапись = Контекст.Данные;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Для Каждого Элемент Из Реквизиты Цикл
|
Для Каждого Элемент Из Реквизиты Цикл
|
||||||
Реквизит = Элемент.Значение;
|
Реквизит = Элемент.Значение;
|
||||||
@ -189,7 +176,7 @@
|
|||||||
// Структура - Новый контекст конструктора:
|
// Структура - Новый контекст конструктора:
|
||||||
// * Менеджер - Произвольный
|
// * Менеджер - Произвольный
|
||||||
// * Данные - Структура
|
// * Данные - Структура
|
||||||
// * Метаданные - см. ЮТМетаданные.ОписаниеОбъектаМетаданных
|
// * Метаданные - см. ЮТМетаданные.СтруктураОписанияОбъектаМетаданных
|
||||||
// * ТекущаяТабличнаяЧасть - Строка
|
// * ТекущаяТабличнаяЧасть - Строка
|
||||||
// * ДополнительныеСвойства - Структура
|
// * ДополнительныеСвойства - Структура
|
||||||
Функция НовыйКонтекстКонструктора(Менеджер) Экспорт
|
Функция НовыйКонтекстКонструктора(Менеджер) Экспорт
|
||||||
@ -247,4 +234,43 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
Функция Реквизиты(Контекст)
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(Контекст.ТекущаяТабличнаяЧасть) Тогда
|
||||||
|
Возврат Контекст.Метаданные.ТабличныеЧасти[Контекст.ТекущаяТабличнаяЧасть];
|
||||||
|
Иначе
|
||||||
|
Возврат Контекст.Метаданные.Реквизиты;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ОписаниеРеквизита(Контекст, ИмяРеквизита)
|
||||||
|
|
||||||
|
Реквизиты = Реквизиты(Контекст);
|
||||||
|
|
||||||
|
Если НЕ Реквизиты.Свойство(ИмяРеквизита) Тогда
|
||||||
|
ИмяОсновнойТаблицы = ЮТМетаданные.НормализованноеИмяТаблицы(Контекст.Метаданные);
|
||||||
|
Если ЗначениеЗаполнено(Контекст.ТекущаяТабличнаяЧасть) Тогда
|
||||||
|
Пояснение = СтрШаблон("Табличная часть `%1.%2` не содержит реквизит `%3`", ИмяОсновнойТаблицы, Контекст.ТекущаяТабличнаяЧасть, ИмяРеквизита);
|
||||||
|
Иначе
|
||||||
|
Пояснение = СтрШаблон("`%1` не содержит реквизит `%2`", ИмяОсновнойТаблицы, ИмяРеквизита);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ВызватьИсключение Пояснение;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат Реквизиты[ИмяРеквизита];
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ТекущаяЗапись(Контекст)
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(Контекст.ТекущаяТабличнаяЧасть) Тогда
|
||||||
|
Возврат ДанныеСтроки(Контекст);
|
||||||
|
Иначе
|
||||||
|
Возврат Контекст.Данные;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
Loading…
Reference in New Issue
Block a user