Перейти к основному содержимому

Конструктор движений документа

YAXUnit предоставляет мощный инструмент для создания тестовых данных — Конструктор движений документа (ЮТест.Данные().КонструкторДвижений). Этот инструмент позволяет быстро и удобно формировать движения документов, что значительно упрощает процесс подготовки данных для тестов. Конструктор поддерживает работу с различными видами документов и регистров, а также автоматизирует генерацию фиктивных значений для реквизитов.

Основные возможности

  • Текучий интерфейс: Удобная цепочка вызовов для формирования данных.
  • Генерация фиктивных значений: Упрощает заполнение реквизитов, оставляя акцент на важных для теста данных.
  • Поддержка обязательных полей: Автоматически заполняет обязательные реквизиты.
  • Универсальность: Работает с любыми документами и регистрами движений.
  • Работа с клиентом: Умеет создавать данные с клиента и удалять их по окончании теста.
  • Обработка ошибок: Предоставляет понятные сообщения об ошибках.

Примеры использования

Пример 1: Движения по регистру накопления

Рассмотрим пример формирования движений по регистру накопления "ОстаткиТоваров".

// Создаем пустой документ "ПриходнаяНакладная"
Документ = ЮТест.Данные().СоздатьДокумент("Документы.ПриходнаяНакладная");

// Формируем движения по регистру "ОстаткиТоваров"
ЮТест.Данные().КонструкторДвижений(Документ, "ОстаткиТоваров")
.ДобавитьСтроку()
.ФикцияРеквизитов("Номенклатура, Склад")
.Установить("Количество", 10)
.ДобавитьСтроку()
.ФикцияРеквизитов("Номенклатура, Склад")
.Установить("Количество", 5)
.Записать();

Пример 2: Движения по регистру бухгалтерии

Пример формирования проводок по регистру бухгалтерии "Хозрасчетный".

// Создаем пустой документ "ОперацияБухгалтерскийУчет"
Документ = ЮТест.Данные().СоздатьДокумент("Документы.ОперацияБухгалтерскийУчет");

// Формируем проводки по регистру "Хозрасчетный"
ЮТест.Данные().КонструкторДвижений(Документ, "Хозрасчетный")
.ДобавитьСтроку()
.ФикцияРеквизитов("СчетДт, СчетКт")
.Установить("Сумма", 1000)
.ДобавитьСтроку()
.ФикцияРеквизитов("СчетДт, СчетКт")
.Установить("Сумма", 500)
.Записать();

Пример 3: Движения по регистру расчета

Пример формирования движений по регистру расчета "НачислениеЗарплаты".

// Создаем пустой документ "НачислениеЗарплаты"
Документ = ЮТест.Данные().СоздатьДокумент("Документы.НачислениеЗарплаты");

// Формируем движения по регистру "НачислениеЗарплаты"
ЮТест.Данные().КонструкторДвижений(Документ, "НачислениеЗарплаты")
.ДобавитьСтроку()
.ФикцияРеквизитов("Сотрудник, ВидРасчета")
.Установить("Сумма", 50000)
.ДобавитьСтроку()
.ФикцияРеквизитов("Сотрудник, ВидРасчета")
.Установить("Сумма", 30000)
.Записать();

Методы конструктора движений

Добавление строки движения

Метод ДобавитьСтроку добавляет новую запись в набор движений. При необходимости можно сразу установить значения реквизитов.

Функция ДобавитьСтроку(ЗначенияРеквизитов = Неопределено) Экспорт

Параметры:

  • ЗначенияРеквизитов (Структура, по умолчанию Неопределено): Устанавливаемые значения реквизитов новой записи.

Пример:

ЮТест.Данные().КонструкторДвижений(Документ, "ОстаткиТоваров")
.ДобавитьСтроку()
.Установить("Номенклатура", ЮТест.Данные().Создать("Справочники.Номенклатура"));

Установка значения реквизита

Метод Установить позволяет задать значение конкретного реквизита текущей записи.

Функция Установить(ИмяРеквизита, Значение) Экспорт

Параметры:

  • ИмяРеквизита (Строка): Имя реквизита записи.
  • Значение (Произвольный): Значение реквизита.

Пример:

ЮТест.Данные().КонструкторДвижений(Документ, "Хозрасчетный")
.ДобавитьСтроку()
.Установить("СчетДт", ЮТест.Данные().Создать("ПланыСчетов.Хозрасчетный"));

Установка значений нескольких реквизитов

Метод УстановитьРеквизиты позволяет задать сразу несколько реквизитов.

Функция УстановитьРеквизиты(ЗначенияРеквизитов) Экспорт

Параметры:

  • ЗначенияРеквизитов (Структура): Устанавливаемые значения реквизитов.

Пример:

Значения = Новый Структура;
Значения.Вставить("СчетДт", ЮТест.Данные().Создать("ПланыСчетов.Хозрасчетный"));
Значения.Вставить("СчетКт", ЮТест.Данные().Создать("ПланыСчетов.Хозрасчетный"));

ЮТест.Данные().КонструкторДвижений(Документ, "Хозрасчетный")
.ДобавитьСтроку()
.УстановитьРеквизиты(Значения);

Генерация фиктивных значений

Метод Фикция автоматически заполняет реквизит фиктивным значением, основываясь на его типе.

Функция Фикция(ИмяРеквизита, РеквизитыЗаполнения = Неопределено, ОграничениеТипа = Неопределено) Экспорт

Параметры:

  • ИмяРеквизита (Строка): Имя реквизита записи.
  • РеквизитыЗаполнения (Структура, по умолчанию Неопределено): Значения реквизитов заполнения создаваемого объекта.
  • ОграничениеТипа (Тип, ОписаниеТипов, по умолчанию Неопределено): Используется для ограничения типа составного реквизита.

Пример:

ЮТест.Данные().КонструкторДвижений(Документ, "ОстаткиТоваров")
.ДобавитьСтроку()
.Фикция("Номенклатура");

Генерация фиктивных значений для нескольких реквизитов

Метод ФикцияРеквизитов заполняет сразу несколько реквизитов фиктивными значениями.

Функция ФикцияРеквизитов(ИменаРеквизитов) Экспорт

Параметры:

  • ИменаРеквизитов (Строка или Массив из Строка): Имена реквизитов записи, разделенные запятыми или переданные в массиве.

Пример:

ЮТест.Данные().КонструкторДвижений(Документ, "ОстаткиТоваров")
.ДобавитьСтроку()
.ФикцияРеквизитов("Номенклатура, Склад");

Заполнение обязательных полей

Метод ФикцияОбязательныхПолей автоматически заполняет обязательные реквизиты записи.

Функция ФикцияОбязательныхПолей() Экспорт

Пример:

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

Установка дополнительного свойства

Метод УстановитьДополнительноеСвойство позволяет задать дополнительное свойство набора записей.

Функция УстановитьДополнительноеСвойство(ИмяСвойства, Значение = Неопределено) Экспорт

Параметры:

  • ИмяСвойства (Строка): Имя дополнительного свойства.
  • Значение (Произвольный, по умолчанию Неопределено): Значение дополнительного свойства.

Пример:

ЮТест.Данные().КонструкторДвижений(Документ, "Хозрасчетный")
.УстановитьДополнительноеСвойство("ПризнакДвижения", "Приход");

Получение данных строки

Метод ДанныеСтроки возвращает данные текущей записи набора.

Функция ДанныеСтроки() Экспорт

Пример:

Данные = ЮТест.Данные().КонструкторДвижений(Документ, "ОстаткиТоваров")
.ДобавитьСтроку()
.ФикцияРеквизитов("Номенклатура, Склад")
.ДанныеСтроки();

Получение данных набора

Метод Данные возвращает данные всего набора записей.

Функция Данные() Экспорт

Пример:

Данные = ЮТест.Данные().КонструкторДвижений(Документ, "ОстаткиТоваров")
.ДобавитьСтроку()
.ФикцияРеквизитов("Номенклатура, Склад")
.Данные();

Запись движений

Метод Записать фиксирует сформированные движения документа.

Процедура Записать(ОбменДаннымиЗагрузка = Ложь) Экспорт

Параметры:

  • ОбменДаннымиЗагрузка (Булево, по умолчанию Ложь): Признак записи с флагом ОбменДанными.Загрузка = Истина.

Пример:

ЮТест.Данные().КонструкторДвижений(Документ, "ОстаткиТоваров")
.ДобавитьСтроку()
.ФикцияРеквизитов("Номенклатура, Склад")
.Записать();

Заключение

Конструктор движений документа в YAXUnit — это мощный инструмент для создания тестовых данных, который значительно упрощает и ускоряет процесс тестирования. Его использование позволяет сосредоточиться на логике тестов, а не на рутинной подготовке данных.