From 40b6dbcf070a6a13f35931489c2c337b04e5fffb Mon Sep 17 00:00:00 2001 From: Oleg Karataev Date: Wed, 5 Feb 2025 15:32:47 +0300 Subject: [PATCH] =?UTF-8?q?feat:=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80?= =?UTF-8?q?=20=D0=98=D1=81=D0=BA=D0=BB=D1=8E=D1=87=D0=B0=D0=B5=D0=BC=D1=8B?= =?UTF-8?q?=D0=B5=D0=9E=D0=B1=D1=8F=D0=B7=D0=B0=D1=82=D0=B5=D0=BB=D1=8C?= =?UTF-8?q?=D0=BD=D1=8B=D0=B5=D0=A0=D0=B5=D0=BA=D0=B2=D0=B8=D0=B7=D0=B8?= =?UTF-8?q?=D1=82=D1=8B=20=D0=B2=20=D0=A4=D0=B8=D0=BA=D1=86=D0=B8=D1=8F?= =?UTF-8?q?=D0=9E=D0=B1=D1=8F=D0=B7=D0=B0=D1=82=D0=B5=D0=BB=D1=8C=D0=BD?= =?UTF-8?q?=D1=8B=D1=85=D0=9F=D0=BE=D0=BB=D0=B5=D0=B9()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit + обновлена справка --- .../test-data/data-generation/object-builder.md | 16 ++++++++++++++-- .../Module.bsl" | 16 ++++++++++++++-- .../Module.bsl" | 9 ++++++--- .../ObjectModule.bsl" | 9 ++++++--- 4 files changed, 40 insertions(+), 10 deletions(-) diff --git a/documentation/docs/features/test-data/data-generation/object-builder.md b/documentation/docs/features/test-data/data-generation/object-builder.md index 8921fb47a..542564124 100644 --- a/documentation/docs/features/test-data/data-generation/object-builder.md +++ b/documentation/docs/features/test-data/data-generation/object-builder.md @@ -43,7 +43,8 @@ toc_max_heading_level: 4 ```bsl ПриходныйОрдер = ЮТест.Данные().КонструкторОбъекта("Документ.ПриходныйОрдер") - .ФикцияОбязательныхПолей() // Автоматически заполняем обязательные поля + .ФикцияОбязательныхПолей("Организация") // Автоматически заполняем обязательные поля, исключая из заполнения реквизит Организация. + .Установить("Организация", Справочники.Организации.НайтиПоКоду("00001")) .Установить("Контрагент", Справочники.Контрагенты.НайтиПоКоду("00001")) .ТабличнаяЧасть("Товары") .ДобавитьСтроку() @@ -223,9 +224,13 @@ toc_max_heading_level: 4 --- -#### `ФикцияОбязательныхПолей()` +#### `ФикцияОбязательныхПолей(ИсключаемыеОбязательныеРеквизиты)` Автоматически заполняет фиктивными значениями все обязательные поля объекта, определенные в метаданных (с признаком "Проверка заполнения = Выдавать ошибку"). +Если какой-то обязательный реквизит не имеет смысла генерировать, т.к. планируется его дальше устанавливать точечно через .Установить(), то исключаем через параметр `ИсключаемыеОбязательныеРеквизиты`. + +- **Параметры:** + - `ИсключаемыеОбязательныеРеквизиты` (Строка): Имена исключаемых реквизитов через запятую (не обязательный параметр). - **Возвращаемое значение:** - Конструктор для дальнейшей настройки. @@ -238,6 +243,13 @@ toc_max_heading_level: 4 .Записать(); ``` +```bsl +ЮТест.Данные().КонструкторОбъекта("Документ.ПриходныйОрдер") + .ФикцияОбязательныхПолей("Организация") // исключаем организацию из заполнения + .Установить("Организация", Справочники.Организации.НайтиПоКоду("00001")) // заполняем точечно организацию + .Записать(); +``` + --- #### `ТабличнаяЧасть(ИмяТабличнойЧасти)` diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index e73340522..80d0c4007 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// Copyright 2021-2025 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. @@ -64,18 +64,30 @@ КонецПроцедуры -Процедура ФикцияОбязательныхПолей(Контекст) Экспорт +Процедура ФикцияОбязательныхПолей(Контекст, ИсключаемыеОбязательныеРеквизиты = "") Экспорт ПроверитьИнициализациюКонтекста(Контекст); Реквизиты = Реквизиты(Контекст); ТекущаяЗапись = ТекущаяЗапись(Контекст); + СписокИсключений = Новый Массив; + Если ЗначениеЗаполнено(ИсключаемыеОбязательныеРеквизиты) Тогда + СписокИсключений = СтрРазделить(ИсключаемыеОбязательныеРеквизиты, ",", Ложь); + КонецЕсли; + ОписаниеРеквизитов = Новый Структура; Для Каждого Элемент Из Реквизиты Цикл Реквизит = Элемент.Значение; Если Реквизит.Обязательный И НЕ ТекущаяЗапись.Свойство(Реквизит.Имя) Тогда + + // Исключаем возможность создания, сложных объектов (Например: Организация). + Если СписокИсключений.Найти(Реквизит.Имя) <> Неопределено Тогда + Продолжить; + КонецЕсли; + ОписаниеРеквизитов.Вставить(Реквизит.Имя, Реквизит.Тип); + КонецЕсли; КонецЦикла; diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl" index 30121dc6c..be5e3bd08 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// Copyright 2021-2025 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. @@ -149,13 +149,16 @@ // * Для примитивных значение генерируется случайное значение // * Для ссылочных типов создается новый объект // * Для перечислений (в том числе системных) выбирается случайно значение перечисления +// +// Параметры: +// ИсключаемыеОбязательныеРеквизиты - Строка - Имена реквизитов объекта разделенные запятыми // // Возвращаемое значение: // ОбщийМодуль - Конструктор &НаКлиенте -Функция ФикцияОбязательныхПолей() Экспорт +Функция ФикцияОбязательныхПолей(ИсключаемыеОбязательныеРеквизиты = "") Экспорт - ЮТКонструкторТестовыхДанныхСлужебный.ФикцияОбязательныхПолей(Контекст); + ЮТКонструкторТестовыхДанныхСлужебный.ФикцияОбязательныхПолей(Контекст, ИсключаемыеОбязательныеРеквизиты); Возврат ЭтотОбъект; КонецФункции diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/ObjectModule.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/ObjectModule.bsl" index af62eef21..b69a72d5f 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/ObjectModule.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/ObjectModule.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// Copyright 2021-2025 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. @@ -144,11 +144,14 @@ // * Для ссылочных типов создается новый объект // * Для перечислений (в том числе системных) выбирается случайно значение перечисления // +// Параметры: +// ИсключаемыеОбязательныеРеквизиты - Строка - Имена реквизитов объекта разделенные запятыми +// // Возвращаемое значение: // ОбработкаОбъект.ЮТКонструкторТестовыхДанных - Конструктор -Функция ФикцияОбязательныхПолей() Экспорт +Функция ФикцияОбязательныхПолей(ИсключаемыеОбязательныеРеквизиты = "") Экспорт - ЮТКонструкторТестовыхДанныхСлужебный.ФикцияОбязательныхПолей(Контекст); + ЮТКонструкторТестовыхДанныхСлужебный.ФикцияОбязательныхПолей(Контекст, ИсключаемыеОбязательныеРеквизиты); Возврат ЭтотОбъект; КонецФункции