You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
При применении в конструкторе объекта УстановитьРеквизиты() возникает ошибка вида "не содержит реквизит "Имя реквизит" " .
Она не является корректной, т.к. может быть что в структуре будут лишние элементы. Или учесть возможность задавать список свойств которые входят или которые исключаются (аналог ЗаполнитьЗначенияСвойств())
Пример кода
ШаблонДоступа= ЮТест.Данные().КонструкторОбъекта("Справочник.ШаблоныДоступаПользователей")
.ФикцияОбязательныхПолей()
.УстановитьСсылкуНового(ДанныеДляНовогоШаблона.ИД_ШаблонаДоступа)
.УстановитьРеквизиты(ДанныеДляНовогоШаблона)
.Записать()
;// ИД_ШаблонаДоступа - не существует реквизита в Справочник.ШаблоныДоступаПользователей"
Не считаю проблему багом - на мой взгляд поведение корректное по той причине, что хочется избежать излишней подкапотной магии, что передали то и устанавливаем.
Или учесть возможность задавать список свойств которые входят или которые исключаются (аналог ЗаполнитьЗначенияСвойств())
@Kyrales Вариант думаю вполне рабочий. Но для большей читаемости предлагаю добавить метод .УстановитьРеквизитыИсключив(Реквизиты, Исключения)
@Kyrales А можешь кратко описать пример, почему такая проблема возникла (не проблему и следствие, а первопричину). Почему в конструктор пришла "левая" структура, зачем такая, как она еще используется и тд.
Структура возникла из некой целевой функции с разным набором общих данных. Такое часто бывает. Например: ДанныеФайла в БСП, там будет и размер и прочее с реквизитами
🐞 Описание ошибки
При применении в конструкторе объекта УстановитьРеквизиты() возникает ошибка вида "не содержит реквизит "Имя реквизит" " .
Она не является корректной, т.к. может быть что в структуре будут лишние элементы. Или учесть возможность задавать список свойств которые входят или которые исключаются (аналог ЗаполнитьЗначенияСвойств())
Пример кода
Текст ошибки (лог)
`Справочник.ШаблоныДоступаПользователей` не содержит реквизит `ИД_ШаблонаДоступа` {YAXUNIT ОбщийМодуль.ЮТКонструкторТестовыхДанныхСлужебный.Модуль(439)}:ВызватьИсключение Пояснение; {YAXUNIT ОбщийМодуль.ЮТКонструкторТестовыхДанныхСлужебный.Модуль(39)}:ОписаниеРеквизита(Контекст, ЗначениеРеквизита.Ключ); {YAXUNIT Обработка.ЮТКонструкторТестовыхДанных.МодульОбъекта(58)}:ЮТКонструкторТестовыхДанныхСлужебный.УстановитьРеквизиты(Контекст, ЗначенияРеквизитов); {YAXUNIT ОбщийМодуль.ОМ_УправлениеДаннымиВнешнихСистем.Модуль(118)}:ШаблонДоступа = ЮТест.Данные().КонструкторОбъекта("Справочник.ШаблоныДоступаПользователей") {(1)}:ОМ_УправлениеДаннымиВнешнихСистем.ТестТаблицаПравПользователейДляОбновления() {YAXUNIT ОбщийМодуль.ЮТМетодыСлужебный.Модуль(228)}:Выполнить(Выражение); {YAXUNIT ОбщийМодуль.ЮТМетодыСлужебный.Модуль(128)}:Возврат ВыполнитьВыражениеСПерехватомОшибки(Выражение, Параметры, , Ложь); {YAXUNIT ОбщийМодуль.ЮТИсполнительСлужебныйКлиентСервер.Модуль(231)}:Ошибка = ЮТМетодыСлужебный.ВыполнитьМетодКонфигурацииСПерехватомОшибки(Тест.ПолноеИмяМетода, , Тест.Параметры); {YAXUNIT ОбщийМодуль.ЮТИсполнительСлужебныйКлиентСервер.Модуль(129)}:ВыполнитьТестовыйМетод(Тест); {YAXUNIT ОбщийМодуль.ЮТИсполнительСлужебныйКлиентСервер.Модуль(43)}:Результат = ВыполнитьНаборТестов(Набор, ТестовыйМодуль); {YAXUNIT ОбщийМодуль.ЮТИсполнительСлужебныйВызовСервера.Модуль(41)}:Возврат ЮТИсполнительСлужебныйКлиентСервер.ВыполнитьГруппуНаборовТестов(Наборы, ТестовыйМодуль); [ОшибкаВоВремяВыполненияВстроенногоЯзыка, ИсключениеВызванноеИзВстроенногоЯзыка]
Версия YaxUnit
24.12
Версия 1С:Предприятие
No response
Режим запуска 1С:Предприятие
Тонкий клиент. Управляемое приложение
Тип информационной базы
No response
Операционная система
No response
The text was updated successfully, but these errors were encountered: