diff --git a/exts/yaxunit/src/CommonModules/ЮТКонструкторТестовыхДанныхСлужебный/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТКонструкторТестовыхДанныхСлужебный/Module.bsl index bc9a51a9..1639bbe7 100644 --- a/exts/yaxunit/src/CommonModules/ЮТКонструкторТестовыхДанныхСлужебный/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТКонструкторТестовыхДанныхСлужебный/Module.bsl @@ -27,6 +27,18 @@ КонецПроцедуры +Процедура УстановитьРеквизиты(Контекст, ЗначенияРеквизитов) Экспорт + + ТекущаяЗапись = ТекущаяЗапись(Контекст); + Для Каждого ЗначениеРеквизита Из ЗначенияРеквизитов Цикл + + ОписаниеРеквизита(Контекст, ЗначениеРеквизита.Ключ); + ТекущаяЗапись.Вставить(ЗначениеРеквизита.Ключ, ЗначениеРеквизита.Значение); + + КонецЦикла; + +КонецПроцедуры + Процедура Фикция(Контекст, ИмяРеквизита, РеквизитыЗаполнения, Знач ОграничениеТипа) Экспорт ЮТПроверкиСлужебный.ПроверитьТипПараметра(ОграничениеТипа, "Тип, ОписаниеТипов, Строка", "Фикция", "ЮТКонструкторТестовыхДанных", Истина); @@ -71,11 +83,15 @@ КонецПроцедуры -Процедура ДобавитьСтроку(Контекст) Экспорт +Процедура ДобавитьСтроку(Контекст, ЗначенияРеквизитов) Экспорт Запись = Новый Структура(); ДанныеТабличнойЧасти(Контекст).Добавить(Запись); + Если ЗначенияРеквизитов <> Неопределено Тогда + УстановитьРеквизиты(Контекст, ЗначенияРеквизитов); + КонецЕсли; + КонецПроцедуры Процедура УстановитьДополнительноеСвойство(Контекст, ИмяСвойства, Значение = Неопределено) Экспорт diff --git a/exts/yaxunit/src/DataProcessors/ЮТКонструкторТестовыхДанных/Forms/КлиентскийКонструктор/Module.bsl b/exts/yaxunit/src/DataProcessors/ЮТКонструкторТестовыхДанных/Forms/КлиентскийКонструктор/Module.bsl index adec115e..bc1f2d7b 100644 --- a/exts/yaxunit/src/DataProcessors/ЮТКонструкторТестовыхДанных/Forms/КлиентскийКонструктор/Module.bsl +++ b/exts/yaxunit/src/DataProcessors/ЮТКонструкторТестовыхДанных/Forms/КлиентскийКонструктор/Module.bsl @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -46,6 +46,23 @@ КонецФункции +// Устанавливает значения реквизитов создаваемого объекта. +// +// Если метод вызывается после вызова см. ТабличнаяЧасть, то устанавливаются значения реквизитов строки табличной части +// +// Параметры: +// ЗначенияРеквизитов - Структура - Устанавливаемые значения реквизитов +// +// Возвращаемое значение: +// ОбщийМодуль - Установить реквизиты +&НаКлиенте +Функция УстановитьРеквизиты(ЗначенияРеквизитов) Экспорт + + ЮТКонструкторТестовыхДанныхСлужебный.УстановитьРеквизиты(Контекст, ЗначенияРеквизитов); + Возврат ЭтотОбъект; + +КонецФункции + // Устанавливает фиктивное значение реквизита создаваемого объекта. // // Если метод вызывается после вызова см. ТабличнаяЧасть, то устанавливается значение реквизита строки табличной части. @@ -122,13 +139,17 @@ КонецФункции // Добавляет новую строку табличной части объекта. +// При необходимости можно выполнить установку реквизитов новой строки +// +// Параметры: +// ЗначенияРеквизитов - Структура - Устанавливаемые значения реквизитов новой строки // // Возвращаемое значение: // ОбщийМодуль - Конструктор &НаКлиенте -Функция ДобавитьСтроку() Экспорт +Функция ДобавитьСтроку(ЗначенияРеквизитов = Неопределено) Экспорт - ЮТКонструкторТестовыхДанныхСлужебный.ДобавитьСтроку(Контекст); + ЮТКонструкторТестовыхДанныхСлужебный.ДобавитьСтроку(Контекст, ЗначенияРеквизитов); Возврат ЭтотОбъект; КонецФункции diff --git a/exts/yaxunit/src/DataProcessors/ЮТКонструкторТестовыхДанных/ObjectModule.bsl b/exts/yaxunit/src/DataProcessors/ЮТКонструкторТестовыхДанных/ObjectModule.bsl index 8f338cd2..978555ff 100644 --- a/exts/yaxunit/src/DataProcessors/ЮТКонструкторТестовыхДанных/ObjectModule.bsl +++ b/exts/yaxunit/src/DataProcessors/ЮТКонструкторТестовыхДанных/ObjectModule.bsl @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -36,7 +36,7 @@ // Значение - Произвольный - Значение реквизита объекта или табличной части // // Возвращаемое значение: -// ОбщийМодуль - Конструктор +// ОбработкаОбъект.ЮТКонструкторТестовыхДанных - Конструктор Функция Установить(ИмяРеквизита, Значение) Экспорт ЮТКонструкторТестовыхДанныхСлужебный.Установить(Контекст, ИмяРеквизита, Значение); @@ -44,6 +44,22 @@ КонецФункции +// Устанавливает значения реквизитов создаваемого объекта. +// +// Если метод вызывается после вызова см. ТабличнаяЧасть, то устанавливаются значения реквизитов строки табличной части +// +// Параметры: +// ЗначенияРеквизитов - Структура - Устанавливаемые значения реквизитов +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТКонструкторТестовыхДанных - Установить реквизиты +Функция УстановитьРеквизиты(ЗначенияРеквизитов) Экспорт + + ЮТКонструкторТестовыхДанныхСлужебный.УстановитьРеквизиты(Контекст, ЗначенияРеквизитов); + Возврат ЭтотОбъект; + +КонецФункции + // Устанавливает фиктивное значение реквизита создаваемого объекта. // // Если метод вызывается после вызова см. ТабличнаяЧасть, то устанавливается значение реквизита строки табличной части. @@ -62,7 +78,7 @@ // - Неопределено - Будет сгенерировано значение, на основании типа реквизита, если реквизит составной, то будет использован случайный тип // // Возвращаемое значение: -// ОбщийМодуль - Конструктор +// ОбработкаОбъект.ЮТКонструкторТестовыхДанных - Конструктор Функция Фикция(ИмяРеквизита, РеквизитыЗаполнения = Неопределено, ОграничениеТипа = Неопределено) Экспорт ЮТКонструкторТестовыхДанныхСлужебный.Фикция(Контекст, ИмяРеквизита, РеквизитыЗаполнения, ОграничениеТипа); @@ -82,7 +98,7 @@ // * Для перечислений (в том числе системных) выбирается случайно значение перечисления // // Возвращаемое значение: -// ОбщийМодуль - Конструктор +// ОбработкаОбъект.ЮТКонструкторТестовыхДанных - Конструктор Функция ФикцияОбязательныхПолей() Экспорт ЮТКонструкторТестовыхДанныхСлужебный.ФикцияОбязательныхПолей(Контекст); @@ -96,7 +112,7 @@ // ИмяТабличнойЧасти - Строка - Имя табличной части // // Возвращаемое значение: -// ОбщийМодуль - Конструктор +// ОбработкаОбъект.ЮТКонструкторТестовыхДанных - Конструктор Функция ТабличнаяЧасть(ИмяТабличнойЧасти) Экспорт ЮТКонструкторТестовыхДанныхСлужебный.ТабличнаяЧасть(Контекст, ИмяТабличнойЧасти); @@ -107,7 +123,7 @@ // Переключает конструктор на заполнение объекта. // // Возвращаемое значение: -// ОбщийМодуль - Конструктор +// ОбработкаОбъект.ЮТКонструкторТестовыхДанных - Конструктор Функция Объект() Экспорт ЮТКонструкторТестовыхДанныхСлужебный.ТабличнаяЧасть(Контекст, Неопределено); @@ -116,12 +132,16 @@ КонецФункции // Добавляет новую строку табличной части объекта. +// При необходимости можно выполнить установку реквизитов новой строки +// +// Параметры: +// ЗначенияРеквизитов - Структура - Устанавливаемые значения реквизитов новой строки // // Возвращаемое значение: -// ОбщийМодуль - Конструктор -Функция ДобавитьСтроку() Экспорт +// ОбработкаОбъект.ЮТКонструкторТестовыхДанных - Конструктор +Функция ДобавитьСтроку(ЗначенияРеквизитов = Неопределено) Экспорт - ЮТКонструкторТестовыхДанныхСлужебный.ДобавитьСтроку(Контекст); + ЮТКонструкторТестовыхДанныхСлужебный.ДобавитьСтроку(Контекст, ЗначенияРеквизитов); Возврат ЭтотОбъект; КонецФункции @@ -133,7 +153,7 @@ // Значение - Произвольный - Значение дополнительного свойства // // Возвращаемое значение: -// ОбщийМодуль - Конструктор +// ОбработкаОбъект.ЮТКонструкторТестовыхДанных - Конструктор Функция УстановитьДополнительноеСвойство(ИмяСвойства, Значение = Неопределено) Экспорт ЮТКонструкторТестовыхДанныхСлужебный.УстановитьДополнительноеСвойство(Контекст, ИмяСвойства, Значение); @@ -167,7 +187,7 @@ // ОбменДаннымиЗагрузка - Булево - Записать объект с признаком `ОбменДанными.Загрузка = Истина` // // Возвращаемое значение: -// ОбщийМодуль - Конструктор +// ОбработкаОбъект.ЮТКонструкторТестовыхДанных - Конструктор Функция ДобавитьЗапись(ОбменДаннымиЗагрузка = Ложь) Экспорт ЮТКонструкторТестовыхДанныхСлужебный.Записать(Контекст, Ложь, ОбменДаннымиЗагрузка); diff --git a/tests/src/CommonModules/ОМ_ЮТКонструкторТестовыхДанных/Module.bsl b/tests/src/CommonModules/ОМ_ЮТКонструкторТестовыхДанных/Module.bsl index 44f7685b..97a0e372 100644 --- a/tests/src/CommonModules/ОМ_ЮТКонструкторТестовыхДанных/Module.bsl +++ b/tests/src/CommonModules/ОМ_ЮТКонструкторТестовыхДанных/Module.bsl @@ -29,6 +29,7 @@ .ДобавитьТест("Фикция_ОбщийРеквизит") .ДобавитьТест("ФикцияОбязательныхПолей") .ДобавитьТест("СоздатьГруппу") + .ДобавитьТест("УстановитьРеквизиты") ; КонецПроцедуры @@ -268,4 +269,32 @@ КонецПроцедуры +Процедура УстановитьРеквизиты() Экспорт + + Поставщик = ЮТест.Данные().СоздатьЭлемент("Справочник.Контрагенты"); + Склад = ЮТест.Данные().СоздатьЭлемент("Справочник.Склады"); + Товар = ЮТест.Данные().СоздатьЭлемент("Справочник.Товары"); + Цена = ЮТест.Данные().СлучайноеЧисло(99, 2); + + Реквизиты = Новый Структура("Поставщик, Склад", Поставщик, Склад); + РеквизитыСтроки = Новый Структура("Товар, Цена", Товар, Цена); + + Данные = ЮТест.Данные().КонструкторОбъекта("Документы.ПриходТовара") + .УстановитьРеквизиты(Реквизиты) + .ТабличнаяЧасть("Товары") + .ДобавитьСтроку() + .УстановитьРеквизиты(РеквизитыСтроки) + .ДобавитьСтроку(РеквизитыСтроки) + .ДанныеОбъекта(); + + ЮТест.ОжидаетЧто(Данные) + .Свойство("Поставщик").Равно(Поставщик) + .Свойство("Склад").Равно(Склад) + .Свойство("Товары[0].Товар").Равно(Товар) + .Свойство("Товары[0].Цена").Равно(Цена) + .Свойство("Товары[1].Товар").Равно(Товар) + .Свойство("Товары[1].Цена").Равно(Цена); + +КонецПроцедуры + #КонецОбласти