Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Добавлен параметр ИсключаемыеОбязательныеРеквизиты в ФикцияОбязательныхПолей() #504

Open
wants to merge 2 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,8 @@ toc_max_heading_level: 4

```bsl
ПриходныйОрдер = ЮТест.Данные().КонструкторОбъекта("Документ.ПриходныйОрдер")
.ФикцияОбязательныхПолей() // Автоматически заполняем обязательные поля
.ФикцияОбязательныхПолей("Организация") // Автоматически заполняем обязательные поля, исключая из заполнения реквизит Организация.
.Установить("Организация", Справочники.Организации.НайтиПоКоду("00001"))
.Установить("Контрагент", Справочники.Контрагенты.НайтиПоКоду("00001"))
.ТабличнаяЧасть("Товары")
.ДобавитьСтроку()
Expand Down Expand Up @@ -223,9 +224,13 @@ toc_max_heading_level: 4

---

#### `ФикцияОбязательныхПолей()`
#### `ФикцияОбязательныхПолей(ИсключаемыеОбязательныеРеквизиты)`

Автоматически заполняет фиктивными значениями все обязательные поля объекта, определенные в метаданных (с признаком "Проверка заполнения = Выдавать ошибку").
Если какой-то обязательный реквизит не имеет смысла генерировать, т.к. планируется его дальше устанавливать точечно через .Установить(), то исключаем через параметр `ИсключаемыеОбязательныеРеквизиты`.

- **Параметры:**
- `ИсключаемыеОбязательныеРеквизиты` (Строка): Имена исключаемых реквизитов через запятую (не обязательный параметр).

- **Возвращаемое значение:**
- Конструктор для дальнейшей настройки.
Expand All @@ -238,6 +243,13 @@ toc_max_heading_level: 4
.Записать();
```

```bsl
ЮТест.Данные().КонструкторОбъекта("Документ.ПриходныйОрдер")
.ФикцияОбязательныхПолей("Организация") // исключаем организацию из заполнения
.Установить("Организация", Справочники.Организации.НайтиПоКоду("00001")) // заполняем точечно организацию
.Записать();
```

---

#### `ТабличнаяЧасть(ИмяТабличнойЧасти)`
Expand Down
Original file line number Diff line number Diff line change
@@ -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.
Expand Down Expand Up @@ -64,18 +64,30 @@

КонецПроцедуры

Процедура ФикцияОбязательныхПолей(Контекст) Экспорт
Процедура ФикцияОбязательныхПолей(Контекст, ИсключаемыеОбязательныеРеквизиты = "") Экспорт

ПроверитьИнициализациюКонтекста(Контекст);

Реквизиты = Реквизиты(Контекст);
ТекущаяЗапись = ТекущаяЗапись(Контекст);

СписокИсключений = Новый Массив;
Если ЗначениеЗаполнено(ИсключаемыеОбязательныеРеквизиты) Тогда
СписокИсключений = СтрРазделить(ИсключаемыеОбязательныеРеквизиты, ",", Ложь);
КонецЕсли;

ОписаниеРеквизитов = Новый Структура;
Для Каждого Элемент Из Реквизиты Цикл
Реквизит = Элемент.Значение;
Если Реквизит.Обязательный И НЕ ТекущаяЗапись.Свойство(Реквизит.Имя) Тогда

// Исключаем возможность создания, сложных объектов (Например: Организация).
Если СписокИсключений.Найти(Реквизит.Имя) <> Неопределено Тогда
Продолжить;
КонецЕсли;

ОписаниеРеквизитов.Вставить(Реквизит.Имя, Реквизит.Тип);

КонецЕсли;
КонецЦикла;

Expand Down
Original file line number Diff line number Diff line change
@@ -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.
Expand Down Expand Up @@ -149,13 +149,16 @@
// * Для примитивных значение генерируется случайное значение
// * Для ссылочных типов создается новый объект
// * Для перечислений (в том числе системных) выбирается случайно значение перечисления
//
// Параметры:
// ИсключаемыеОбязательныеРеквизиты - Строка - Имена реквизитов объекта разделенные запятыми
//
// Возвращаемое значение:
// ОбщийМодуль - Конструктор
&НаКлиенте
Функция ФикцияОбязательныхПолей() Экспорт
Функция ФикцияОбязательныхПолей(ИсключаемыеОбязательныеРеквизиты = "") Экспорт

ЮТКонструкторТестовыхДанныхСлужебный.ФикцияОбязательныхПолей(Контекст);
ЮТКонструкторТестовыхДанныхСлужебный.ФикцияОбязательныхПолей(Контекст, ИсключаемыеОбязательныеРеквизиты);
Возврат ЭтотОбъект;

КонецФункции
Expand Down
Original file line number Diff line number Diff line change
@@ -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.
Expand Down Expand Up @@ -144,11 +144,14 @@
// * Для ссылочных типов создается новый объект
// * Для перечислений (в том числе системных) выбирается случайно значение перечисления
//
// Параметры:
// ИсключаемыеОбязательныеРеквизиты - Строка - Имена реквизитов объекта разделенные запятыми
//
// Возвращаемое значение:
// ОбработкаОбъект.ЮТКонструкторТестовыхДанных - Конструктор
Функция ФикцияОбязательныхПолей() Экспорт
Функция ФикцияОбязательныхПолей(ИсключаемыеОбязательныеРеквизиты = "") Экспорт

ЮТКонструкторТестовыхДанныхСлужебный.ФикцияОбязательныхПолей(Контекст);
ЮТКонструкторТестовыхДанныхСлужебный.ФикцияОбязательныхПолей(Контекст, ИсключаемыеОбязательныеРеквизиты);
Возврат ЭтотОбъект;

КонецФункции
Expand Down
Loading