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