1
0
mirror of https://github.com/bia-technologies/yaxunit.git synced 2024-12-03 08:45:31 +02:00

Merge pull request #97 from bia-technologies/feature/55

Переделал конструктор на обработку
This commit is contained in:
Koryakin Aleksey 2023-05-24 12:13:17 +03:00 committed by GitHub
commit ba190b3c23
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 514 additions and 169 deletions

View File

@ -0,0 +1,200 @@
//©///////////////////////////////////////////////////////////////////////////©//
//
// Copyright 2021-2023 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.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
//©///////////////////////////////////////////////////////////////////////////©//
#Область СлужебныйПрограммныйИнтерфейс
Процедура Установить(Контекст, ИмяРеквизита, Значение) Экспорт
Если ЗначениеЗаполнено(Контекст.ТекущаяТабличнаяЧасть) Тогда
ТекущаяЗапись = ДанныеСтроки(Контекст);
Иначе
ТекущаяЗапись = Контекст.Данные;
КонецЕсли;
ТекущаяЗапись.Вставить(ИмяРеквизита, Значение);
КонецПроцедуры
Процедура Фикция(Контекст, ИмяРеквизита, РеквизитыЗаполнения = Неопределено) Экспорт
Если ЗначениеЗаполнено(Контекст.ТекущаяТабличнаяЧасть) Тогда
ОписаниеРеквизита = Контекст.Метаданные.ТабличныеЧасти[Контекст.ТекущаяТабличнаяЧасть][ИмяРеквизита];
ТекущаяЗапись = ДанныеСтроки(Контекст);
Иначе
ОписаниеРеквизита = Контекст.Метаданные.Реквизиты[ИмяРеквизита];
ТекущаяЗапись = Контекст.Данные;
КонецЕсли;
Значение = ЮТТестовыеДанныеСлужебный.Фикция(ОписаниеРеквизита.Тип, РеквизитыЗаполнения);
ТекущаяЗапись.Вставить(ИмяРеквизита, Значение);
КонецПроцедуры
Процедура ФикцияОбязательныхПолей(Контекст) Экспорт
Если ЗначениеЗаполнено(Контекст.ТекущаяТабличнаяЧасть) Тогда
Реквизиты = Контекст.Метаданные.ТабличныеЧасти[Контекст.ТекущаяТабличнаяЧасть];
ТекущаяЗапись = ДанныеСтроки(Контекст);
Иначе
Реквизиты = Контекст.Метаданные.Реквизиты;
ТекущаяЗапись = Контекст.Данные;
КонецЕсли;
Для Каждого Элемент Из Реквизиты Цикл
Реквизит = Элемент.Значение;
Если Реквизит.Обязательный И НЕ Контекст.Данные.Свойство(Реквизит.Имя) Тогда
Значение = ЮТТестовыеДанныеСлужебный.Фикция(Реквизит.Тип);
ТекущаяЗапись.Вставить(Реквизит.Имя, Значение);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура ТабличнаяЧасть(Контекст, ИмяТабличнойЧасти) Экспорт
Контекст.ТекущаяТабличнаяЧасть = ИмяТабличнойЧасти;
Контекст.Данные.Вставить(ИмяТабличнойЧасти, Новый Массив());
КонецПроцедуры
Процедура ДобавитьСтроку(Контекст) Экспорт
Запись = Новый Структура();
ДанныеТабличнойЧасти(Контекст).Добавить(Запись);
КонецПроцедуры
Процедура УстановитьДополнительноеСвойство(Контекст, ИмяСвойства, Значение) Экспорт
Контекст.ДополнительныеСвойства.Вставить(ИмяСвойства, Значение);
КонецПроцедуры
Функция Записать(Контекст, ВернутьОбъект = Ложь, ОбменДаннымиЗагрузка = Ложь) Экспорт
ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи();
ПараметрыЗаписи.ДополнительныеСвойства = Контекст.ДополнительныеСвойства;
ПараметрыЗаписи.ОбменДаннымиЗагрузка = ОбменДаннымиЗагрузка;
Ссылка = ЮТТестовыеДанныеВызовСервера.СоздатьЗапись(Контекст.Менеджер, Контекст.Данные, ПараметрыЗаписи, ВернутьОбъект);
ЮТТестовыеДанныеСлужебный.ДобавитьТестовуюЗапись(Ссылка);
Возврат Ссылка;
КонецФункции
Функция НовыйОбъект(Контекст) Экспорт
Возврат ЮТТестовыеДанныеВызовСервера.НовыйОбъект(Контекст.Менеджер, Контекст.Данные, Контекст.ДополнительныеСвойства);
КонецФункции
Функция Провести(Контекст, ВернутьОбъект = Ложь) Экспорт
ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи();
ПараметрыЗаписи.ДополнительныеСвойства = Контекст.ДополнительныеСвойства;
ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.Проведение;
Ссылка = ЮТТестовыеДанныеВызовСервера.СоздатьЗапись(Контекст.Менеджер, Контекст.Данные, ПараметрыЗаписи, ВернутьОбъект);
ЮТТестовыеДанныеСлужебный.ДобавитьТестовуюЗапись(Ссылка);
Возврат Ссылка;
КонецФункции
Функция ДанныеСтроки(Контекст) Экспорт
Если ПустаяСтрока(Контекст.ТекущаяТабличнаяЧасть) Тогда
Возврат Неопределено;
КонецЕсли;
ДанныеТабличнойЧасти = ДанныеТабличнойЧасти(Контекст);
Если ДанныеТабличнойЧасти.Количество() Тогда
Возврат ДанныеТабличнойЧасти[ДанныеТабличнойЧасти.ВГраница()];
Иначе
ВызватьИсключение "Сначала необходимо добавить строку табличной части";
КонецЕсли;
КонецФункции
Функция ДанныеОбъекта(Контекст) Экспорт
Возврат Контекст.Данные;
КонецФункции
// Инициализирует конструктор тестовых данных
//
// Параметры:
// Менеджер - Строка - Имя менеджера. Примеры: Справочники.Товары, Документы.ПриходТоваров
//
// Возвращаемое значение:
// ОбработкаОбъект.ЮТКонструкторТестовыхДанных
Функция Инициализировать(Менеджер) Экспорт
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Тогда
Конструктор = Обработки.ЮТКонструкторТестовыхДанных.Создать();
#Иначе
Конструктор = ПолучитьФорму("Обработка.ЮТКонструкторТестовыхДанных.Форма.КлиентскийКонструктор"); // BSLLS:GetFormMethod-off
#КонецЕсли
Конструктор.Инициализировать(Менеджер);
Возврат Конструктор;
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
// Новый контекст конструктора.
//
// Параметры:
// Менеджер - Произвольный
//
// Возвращаемое значение:
// Структура - Новый контекст конструктора:
// * Менеджер - Произвольный
// * Данные - Структура
// * Метаданные - см. ЮТМетаданные.ОписаниеОбъектМетаданных
// * ТекущаяТабличнаяЧасть - Строка
// * ДополнительныеСвойства - Структура
Функция НовыйКонтекстКонструктора(Менеджер) Экспорт
Контекст = Новый Структура("Менеджер, Данные, Метаданные", Менеджер, Новый Структура());
Контекст.Вставить("Менеджер", Менеджер);
Контекст.Вставить("Данные", Новый Структура());
Контекст.Вставить("Метаданные", ЮТМетаданные.ОписаниеОбъектМетаданных(Менеджер));
Контекст.Вставить("ТекущаяТабличнаяЧасть", "");
Контекст.Вставить("ДополнительныеСвойства", Новый Структура());
Возврат Контекст;
КонецФункции
Функция ДанныеТабличнойЧасти(Контекст)
Возврат Контекст.Данные[Контекст.ТекущаяТабличнаяЧасть];
КонецФункции
#КонецОбласти

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="e388b434-0a40-41e7-943b-3941bd455cf2">
<name>ЮТКонструкторТестовыхДанных</name>
<name>ЮТКонструкторТестовыхДанныхСлужебный</name>
<synonym>
<key>ru</key>
<value>Конструктор тестовых данных</value>

View File

@ -404,10 +404,10 @@
// Менеджер - Строка - Имя менеджера. Примеры: Справочники.Товары, Документы.ПриходТоваров
//
// Возвращаемое значение:
// ОбщийМодуль - Конструктор
// ОбработкаОбъект.ЮТКонструкторТестовыхДанных
Функция КонструкторОбъекта(Менеджер) Экспорт
Возврат ЮТКонструкторТестовыхДанных.Инициализировать(Менеджер);
Возврат ЮТКонструкторТестовыхДанныхСлужебный.Инициализировать(Менеджер);
КонецФункции

View File

@ -47,7 +47,7 @@
<commonModules>CommonModule.ЮТИсполнительКлиентСервер</commonModules>
<commonModules>CommonModule.ЮТИсполнительСервер</commonModules>
<commonModules>CommonModule.ЮТКонструкторВариантов</commonModules>
<commonModules>CommonModule.ЮТКонструкторТестовыхДанных</commonModules>
<commonModules>CommonModule.ЮТКонструкторТестовыхДанныхСлужебный</commonModules>
<commonModules>CommonModule.ЮТКонтекст</commonModules>
<commonModules>CommonModule.ЮТКонтекстКлиент</commonModules>
<commonModules>CommonModule.ЮТКонтекстСервер</commonModules>
@ -84,5 +84,6 @@
<commonModules>CommonModule.ЮТЧитатель</commonModules>
<commonModules>CommonModule.ЮТЧитательСервер</commonModules>
<dataProcessors>DataProcessor.ЮТHTTPСервисЗапрос</dataProcessors>
<dataProcessors>DataProcessor.ЮТКонструкторТестовыхДанных</dataProcessors>
<dataProcessors>DataProcessor.ЮТЮнитТесты</dataProcessors>
</mdclass:Configuration>

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:form="http://g5.1c.ru/v8/dt/form">
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<autoTitle>true</autoTitle>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<autoFillCheck>true</autoFillCheck>
<enabled>true</enabled>
<showTitle>true</showTitle>
<showCloseButton>true</showCloseButton>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
<extInfo xsi:type="form:ObjectFormExtInfo"/>
</form:Form>

View File

@ -0,0 +1,221 @@
//©///////////////////////////////////////////////////////////////////////////©//
//
// Copyright 2021-2023 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.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
//©///////////////////////////////////////////////////////////////////////////©//
// BSLLS:NonStandardRegion-off
#Область ОписаниеПеременных
// см. ЮТКонструкторТестовыхДанныхСлужебный.НовыйКонтекстКонструктора
&НаКлиенте
Перем Контекст;
#КонецОбласти
#Область ПрограммныйИнтерфейс
// Устанавливает значение реквизита создаваемого объекта.
//
// Если метод вызывается после вызова см. ТабличнаяЧасть, то устанавливается значение реквизита строки табличной части
//
// Параметры:
// ИмяРеквизита - Строка - Имя реквизита объекта или табличной части
// Значение - Произвольный - Значение реквизита объекта или табличной части
//
// Возвращаемое значение:
// ОбщийМодуль - Конструктор
&НаКлиенте
Функция Установить(ИмяРеквизита, Значение) Экспорт
ЮТКонструкторТестовыхДанныхСлужебный.Установить(Контекст, ИмяРеквизита, Значение);
Возврат ЭтотОбъект;
КонецФункции
// Устанавливает фиктивное значение реквизита создаваемого объекта.
//
// Если метод вызывается после вызова см. ТабличнаяЧасть, то устанавливается значение реквизита строки табличной части.
//
// На основании менеджера и имени реквизита вычисляется его тип, а по типу генерируется фиктивное значение.
//
// * Для примитивных значение генерируется случайное значение
// * Для ссылочных типов создается новый объект
// * Для перечислений (в том числе системных) выбирается случайно значение перечисления
//
// Параметры:
// ИмяРеквизита - Строка - Имя реквизита объекта или табличной части
// РеквизитыЗаполнения - Структура - Значения реквизитов заполнения создаваемого объекта базы
// - Неопределено
//
// Возвращаемое значение:
// ОбщийМодуль - Конструктор
&НаКлиенте
Функция Фикция(ИмяРеквизита, РеквизитыЗаполнения = Неопределено) Экспорт
ЮТКонструкторТестовыхДанныхСлужебный.Фикция(Контекст, ИмяРеквизита, РеквизитыЗаполнения);
Возврат ЭтотОбъект;
КонецФункции
// Заполняет обязательные поля объекта фиктивными значениями
//
// Если метод вызывается после вызова см. ТабличнаяЧасть, то устанавливаются значения реквизитов строки табличной части.
//
// На основании метаданных определяются обязательные поля (Проверка заполнения = Выдавать ошибку),
// для них генерируются и устанавливаются фиктивные значение.
//
// * Для примитивных значение генерируется случайное значение
// * Для ссылочных типов создается новый объект
// * Для перечислений (в том числе системных) выбирается случайно значение перечисления
//
// Возвращаемое значение:
// ОбщийМодуль - Конструктор
&НаКлиенте
Функция ФикцияОбязательныхПолей() Экспорт
ЮТКонструкторТестовыхДанныхСлужебный.ФикцияОбязательныхПолей(Контекст);
Возврат ЭтотОбъект;
КонецФункции
// Переключает конструктор на заполнение табличной части объекта.
//
// Параметры:
// ИмяТабличнойЧасти - Строка - Имя табличной части
//
// Возвращаемое значение:
// ОбщийМодуль - Конструктор
&НаКлиенте
Функция ТабличнаяЧасть(ИмяТабличнойЧасти) Экспорт
ЮТКонструкторТестовыхДанныхСлужебный.ТабличнаяЧасть(Контекст, ИмяТабличнойЧасти);
Возврат ЭтотОбъект;
КонецФункции
// Добавляет новую строку табличной части объекта.
//
// Возвращаемое значение:
// ОбщийМодуль - Конструктор
&НаКлиенте
Функция ДобавитьСтроку() Экспорт
ЮТКонструкторТестовыхДанныхСлужебный.ДобавитьСтроку(Контекст);
Возврат ЭтотОбъект;
КонецФункции
// Устанавливает дополнительное свойство объекта.
//
// Параметры:
// ИмяСвойства - Строка - Имя дополнительного свойства
// Значение - Произвольный - Значение дополнительного свойства
//
// Возвращаемое значение:
// ОбщийМодуль - Конструктор
&НаКлиенте
Функция УстановитьДополнительноеСвойство(ИмяСвойства, Значение) Экспорт
ЮТКонструкторТестовыхДанныхСлужебный.УстановитьДополнительноеСвойство(Контекст, ИмяСвойства, Значение);
Возврат ЭтотОбъект;
КонецФункции
// Создает новый объект и возвращает его или ссылку.
//
// Важно, после создания данные не очищаются, поэтому многократный вызов метода создаст множество одинаковых объектов.
// Если вы хотите создать полностью новый объект, необходимо по-новой инициировать конструктор.
//
// Параметры:
// ВернутьОбъект - Булево - Вернуть объект вместо ссылки
// ОбменДаннымиЗагрузка - Булево - Записать объект с признаком `ОбменДанными.Загрузка = Истина`
//
// Возвращаемое значение:
// Произвольный - Созданный объект или ссылка на него
&НаКлиенте
Функция Записать(ВернутьОбъект = Ложь, ОбменДаннымиЗагрузка = Ложь) Экспорт
Возврат ЮТКонструкторТестовыхДанныхСлужебный.Записать(Контекст, ВернутьОбъект, ОбменДаннымиЗагрузка);
КонецФункции
// Создает и возвращяет новый объект (не записывая его).
//
// Важно, после создания данные не очищаются, поэтому многократный вызов метода создаст множество одинаковых объектов.
// Если вы хотите создать полностью новый объект, необходимо по-новой инициировать конструктор.
//
// Возвращаемое значение:
// Произвольный - Созданный объект.
&НаКлиенте
Функция НовыйОбъект() Экспорт
Возврат ЮТКонструкторТестовыхДанныхСлужебный.НовыйОбъект(Контекст);
КонецФункции
// Создает и проводит новый документ. Возвращает объект или или ссылку на него.
//
// Важно, после создания данные не очищаются, поэтому многократный вызов метода создать множество объектов.
// Если вы хотите создать полностью новый объект, необходимо по-новой инициировать конструктор.
//
// Параметры:
// ВернутьОбъект - Булево - Вернуть объект вместо ссылки
//
// Возвращаемое значение:
// Произвольный - Созданный объект или ссылка на него
&НаКлиенте
Функция Провести(ВернутьОбъект = Ложь) Экспорт
Возврат ЮТКонструкторТестовыхДанныхСлужебный.Провести(Контекст, ВернутьОбъект);
КонецФункции
// Возвращает данные текущей строки табличной части объекта.
//
// Возвращаемое значение:
// Структура - Данные строки
// Неопределено - Если заполняется объект
&НаКлиенте
Функция ДанныеСтроки() Экспорт
Возврат ЮТКонструкторТестовыхДанныхСлужебный.ДанныеСтроки(Контекст);
КонецФункции
// Возвращает данные создаваемого объекта.
//
// Возвращаемое значение:
// Структура - Данные объекта
&НаКлиенте
Функция ДанныеОбъекта() Экспорт
Возврат ЮТКонструкторТестовыхДанныхСлужебный.ДанныеОбъекта(Контекст);
КонецФункции
#КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс
&НаКлиенте
Процедура Инициализировать(Менеджер) Экспорт
Контекст = ЮТКонструкторТестовыхДанныхСлужебный.НовыйКонтекстКонструктора(Менеджер);
КонецПроцедуры
#КонецОбласти
// BSLLS:NonStandardRegion-on

View File

@ -16,6 +16,15 @@
//
//©///////////////////////////////////////////////////////////////////////////©//
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Тогда
#Область ОписаниеПеременных
// см. ЮТКонструкторТестовыхДанныхСлужебный.НовыйКонтекстКонструктора
Перем Контекст;
#КонецОбласти
#Область ПрограммныйИнтерфейс
// Устанавливает значение реквизита создаваемого объекта.
@ -30,17 +39,8 @@
// ОбщийМодуль - Конструктор
Функция Установить(ИмяРеквизита, Значение) Экспорт
Контекст = Контекст();
Если ЗначениеЗаполнено(Контекст.ТекущаяТабличнаяЧасть) Тогда
ТекущаяЗапись = ДанныеСтроки();
Иначе
ТекущаяЗапись = Контекст.Данные;
КонецЕсли;
ТекущаяЗапись.Вставить(ИмяРеквизита, Значение);
Возврат ЮТКонструкторТестовыхДанных;
ЮТКонструкторТестовыхДанныхСлужебный.Установить(Контекст, ИмяРеквизита, Значение);
Возврат ЭтотОбъект;
КонецФункции
@ -63,20 +63,8 @@
// ОбщийМодуль - Конструктор
Функция Фикция(ИмяРеквизита, РеквизитыЗаполнения = Неопределено) Экспорт
Контекст = Контекст();
Если ЗначениеЗаполнено(Контекст.ТекущаяТабличнаяЧасть) Тогда
ОписаниеРеквизита = Контекст.Метаданные.ТабличныеЧасти[Контекст.ТекущаяТабличнаяЧасть][ИмяРеквизита];
ТекущаяЗапись = ДанныеСтроки();
Иначе
ОписаниеРеквизита = Контекст.Метаданные.Реквизиты[ИмяРеквизита];
ТекущаяЗапись = Контекст.Данные;
КонецЕсли;
Значение = ЮТТестовыеДанныеСлужебный.Фикция(ОписаниеРеквизита.Тип, РеквизитыЗаполнения);
ТекущаяЗапись.Вставить(ИмяРеквизита, Значение);
Возврат ЮТКонструкторТестовыхДанных;
ЮТКонструкторТестовыхДанныхСлужебный.Фикция(Контекст, ИмяРеквизита, РеквизитыЗаполнения);
Возврат ЭтотОбъект;
КонецФункции
@ -95,25 +83,8 @@
// ОбщийМодуль - Конструктор
Функция ФикцияОбязательныхПолей() Экспорт
Контекст = Контекст();
Если ЗначениеЗаполнено(Контекст.ТекущаяТабличнаяЧасть) Тогда
Реквизиты = Контекст.Метаданные.ТабличныеЧасти[Контекст.ТекущаяТабличнаяЧасть];
ТекущаяЗапись = ДанныеСтроки();
Иначе
Реквизиты = Контекст.Метаданные.Реквизиты;
ТекущаяЗапись = Контекст.Данные;
КонецЕсли;
Для Каждого Элемент Из Реквизиты Цикл
Реквизит = Элемент.Значение;
Если Реквизит.Обязательный И НЕ Контекст.Данные.Свойство(Реквизит.Имя) Тогда
Значение = ЮТТестовыеДанныеСлужебный.Фикция(Реквизит.Тип);
ТекущаяЗапись.Вставить(Реквизит.Имя, Значение);
КонецЕсли;
КонецЦикла;
Возврат ЮТКонструкторТестовыхДанных;
ЮТКонструкторТестовыхДанныхСлужебный.ФикцияОбязательныхПолей(Контекст);
Возврат ЭтотОбъект;
КонецФункции
@ -126,11 +97,8 @@
// ОбщийМодуль - Конструктор
Функция ТабличнаяЧасть(ИмяТабличнойЧасти) Экспорт
Контекст = Контекст();
Контекст.ТекущаяТабличнаяЧасть = ИмяТабличнойЧасти;
Контекст.Данные.Вставить(ИмяТабличнойЧасти, Новый Массив());
Возврат ЮТКонструкторТестовыхДанных;
ЮТКонструкторТестовыхДанныхСлужебный.ТабличнаяЧасть(Контекст, ИмяТабличнойЧасти);
Возврат ЭтотОбъект;
КонецФункции
@ -140,12 +108,8 @@
// ОбщийМодуль - Конструктор
Функция ДобавитьСтроку() Экспорт
Контекст = Контекст();
Запись = Новый Структура();
ДанныеТабличнойЧасти(Контекст).Добавить(Запись);
Возврат ЮТКонструкторТестовыхДанных;
ЮТКонструкторТестовыхДанныхСлужебный.ДобавитьСтроку(Контекст);
Возврат ЭтотОбъект;
КонецФункции
@ -159,10 +123,8 @@
// ОбщийМодуль - Конструктор
Функция УстановитьДополнительноеСвойство(ИмяСвойства, Значение) Экспорт
Контекст = Контекст();
Контекст.ДополнительныеСвойства.Вставить(ИмяСвойства, Значение);
Возврат ЮТКонструкторТестовыхДанных;
ЮТКонструкторТестовыхДанныхСлужебный.УстановитьДополнительноеСвойство(Контекст, ИмяСвойства, Значение);
Возврат ЭтотОбъект;
КонецФункции
@ -179,17 +141,7 @@
// Произвольный - Созданный объект или ссылка на него
Функция Записать(ВернутьОбъект = Ложь, ОбменДаннымиЗагрузка = Ложь) Экспорт
Контекст = Контекст();
ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи();
ПараметрыЗаписи.ДополнительныеСвойства = Контекст.ДополнительныеСвойства;
ПараметрыЗаписи.ОбменДаннымиЗагрузка = ОбменДаннымиЗагрузка;
Ссылка = ЮТТестовыеДанныеВызовСервера.СоздатьЗапись(Контекст.Менеджер, Контекст.Данные, ПараметрыЗаписи, ВернутьОбъект);
ЮТТестовыеДанныеСлужебный.ДобавитьТестовуюЗапись(Ссылка);
Возврат Ссылка;
Возврат ЮТКонструкторТестовыхДанныхСлужебный.Записать(Контекст, ВернутьОбъект, ОбменДаннымиЗагрузка);
КонецФункции
@ -202,8 +154,7 @@
// Произвольный - Созданный объект.
Функция НовыйОбъект() Экспорт
Контекст = Контекст();
Возврат ЮТТестовыеДанныеВызовСервера.НовыйОбъект(Контекст.Менеджер, Контекст.Данные, Контекст.ДополнительныеСвойства);
Возврат ЮТКонструкторТестовыхДанныхСлужебный.НовыйОбъект(Контекст);
КонецФункции
// Создает и проводит новый документ. Возвращает объект или или ссылку на него.
@ -218,17 +169,7 @@
// Произвольный - Созданный объект или ссылка на него
Функция Провести(ВернутьОбъект = Ложь) Экспорт
Контекст = Контекст();
ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи();
ПараметрыЗаписи.ДополнительныеСвойства = Контекст.ДополнительныеСвойства;
ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.Проведение;
Ссылка = ЮТТестовыеДанныеВызовСервера.СоздатьЗапись(Контекст.Менеджер, Контекст.Данные, ПараметрыЗаписи, ВернутьОбъект);
ЮТТестовыеДанныеСлужебный.ДобавитьТестовуюЗапись(Ссылка);
Возврат Ссылка;
Возврат ЮТКонструкторТестовыхДанныхСлужебный.Провести(Контекст, ВернутьОбъект);
КонецФункции
@ -239,19 +180,7 @@
// Неопределено - Если заполняется объект
Функция ДанныеСтроки() Экспорт
Контекст = Контекст();
Если ПустаяСтрока(Контекст.ТекущаяТабличнаяЧасть) Тогда
Возврат Неопределено;
КонецЕсли;
ДанныеТабличнойЧасти = ДанныеТабличнойЧасти(Контекст);
Если ДанныеТабличнойЧасти.Количество() Тогда
Возврат ДанныеТабличнойЧасти[ДанныеТабличнойЧасти.ВГраница()];
Иначе
ВызватьИсключение "Сначала необходимо добавить строку табличной части";
КонецЕсли;
Возврат ЮТКонструкторТестовыхДанныхСлужебный.ДанныеСтроки(Контекст);
КонецФункции
@ -261,8 +190,7 @@
// Структура - Данные объекта
Функция ДанныеОбъекта() Экспорт
Контекст = Контекст();
Возврат Контекст.Данные;
Возврат ЮТКонструкторТестовыхДанныхСлужебный.ДанныеОбъекта(Контекст);
КонецФункции
@ -270,71 +198,12 @@
#Область СлужебныйПрограммныйИнтерфейс
// Инициализирует конструктор тестовых данных
//
// Параметры:
// Менеджер - Строка - Имя менеджера. Примеры: Справочники.Товары, Документы.ПриходТоваров
//
// Возвращаемое значение:
// ОбщийМодуль - Конструктор
Функция Инициализировать(Менеджер) Экспорт
Процедура Инициализировать(Менеджер) Экспорт
Контекст = НовыйКонтекстКонструктора(Менеджер);
ЮТКонтекст.УстановитьЗначениеКонтекста(КлючКонтекста(), Контекст);
Контекст = ЮТКонструкторТестовыхДанныхСлужебный.НовыйКонтекстКонструктора(Менеджер);
Возврат ЮТКонструкторТестовыхДанных;
КонецФункции
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
// Контекст.
//
// Возвращаемое значение:
// см. НовыйКонтекстКонструктора
Функция Контекст()
Возврат ЮТКонтекст.ЗначениеКонтекста(КлючКонтекста());
КонецФункции
// Новый контекст конструктора.
//
// Параметры:
// Менеджер - Произвольный
//
// Возвращаемое значение:
// Структура - Новый контекст конструктора:
// * Менеджер - Произвольный
// * Данные - Структура
// * Метаданные - см. ЮТМетаданные.ОписаниеОбъектМетаданных
// * ТекущаяТабличнаяЧасть - Строка -
// * ДополнительныеСвойства - Структура
Функция НовыйКонтекстКонструктора(Менеджер)
Контекст = Новый Структура("Менеджер, Данные, Метаданные", Менеджер, Новый Структура());
Контекст.Вставить("Менеджер", Менеджер);
Контекст.Вставить("Данные", Новый Структура());
Контекст.Вставить("Метаданные", ЮТМетаданные.ОписаниеОбъектМетаданных(Менеджер));
Контекст.Вставить("ТекущаяТабличнаяЧасть", "");
Контекст.Вставить("ДополнительныеСвойства", Новый Структура());
Возврат Контекст;
КонецФункции
Функция КлючКонтекста()
Возврат "КонструкторТестовыхДанных";
КонецФункции
Функция ДанныеТабличнойЧасти(Контекст)
Возврат Контекст.Данные[Контекст.ТекущаяТабличнаяЧасть];
КонецФункции
#КонецОбласти
#КонецЕсли

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:DataProcessor xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="d194ed15-c4ad-4920-8a01-1062507604ca">
<producedTypes>
<objectType typeId="feb4bd6a-59d7-4b74-98a7-c722b4300cc1" valueTypeId="4a6b9b50-8e10-4172-ab37-7ec247e39f1a"/>
<managerType typeId="6c763c70-caff-423c-a7db-0024c94f60ab" valueTypeId="5df0b0b8-38c5-4709-b2ea-865d8e990c86"/>
</producedTypes>
<name>ЮТКонструкторТестовыхДанных</name>
<synonym>
<key>ru</key>
<value>Конструктор тестовых данных</value>
</synonym>
<useStandardCommands>true</useStandardCommands>
<defaultForm>DataProcessor.ЮТКонструкторТестовыхДанных.Form.КлиентскийКонструктор</defaultForm>
<forms uuid="c0ef2e2b-96b6-4e4c-b41d-32d571d74653">
<name>КлиентскийКонструктор</name>
<synonym>
<key>ru</key>
<value>Клиентский конструктор</value>
</synonym>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
</mdclass:DataProcessor>

View File

@ -21,7 +21,7 @@
<content>CommonModule.ЮТИсполнительКлиентСервер</content>
<content>CommonModule.ЮТИсполнительСервер</content>
<content>CommonModule.ЮТКонструкторВариантов</content>
<content>CommonModule.ЮТКонструкторТестовыхДанных</content>
<content>CommonModule.ЮТКонструкторТестовыхДанныхСлужебный</content>
<content>CommonModule.ЮТКонтекст</content>
<content>CommonModule.ЮТКонтекстКлиент</content>
<content>CommonModule.ЮТКонтекстСервер</content>

View File

@ -26,7 +26,7 @@
.ДобавитьТест("Фикция")
.ДобавитьТест("ФикцияОбязательныхПолей")
;
КонецПроцедуры
Процедура ЗаполнитьСправочник() Экспорт
@ -37,15 +37,18 @@
Конструктор = ЮТест.Данные().КонструкторОбъекта(Справочники.Товары);
#КонецЕсли
НаименованиеПоставщика = ЮТест.Данные().СлучайнаяСтрока(20);
Конструктор
.Фикция("Наименование")
.Фикция("Артикул")
.Фикция("Поставщик")
.Установить("Поставщик", ЮТест.Данные().КонструкторОбъекта("Справочники.Контрагенты")
.Установить("Наименование", НаименованиеПоставщика)
.Записать())
.Фикция("Вид");
ДанныеОбъекта = Конструктор.ДанныеОбъекта();
ЮТест.ОжидаетЧто(ДанныеОбъекта, "Данные создаваемого объекта")
.Свойство("Наименование").Заполнено()
.Свойство("Наименование").Заполнено().НеРавно(НаименованиеПоставщика)
.Свойство("Артикул").Заполнено()
.Свойство("Поставщик").Заполнено()
.Свойство("Вид").Заполнено();
@ -61,6 +64,8 @@
.Свойство("Вид").Заполнено().Равно(ДанныеОбъекта.Вид);
#КонецЕсли
УстановленноеНаименованиеПоставщика = ЮТЗапросы.ЗначениеРеквизита(Ссылка, "Поставщик.Наименование");
ЮТест.ОжидаетЧто(УстановленноеНаименованиеПоставщика).Равно(НаименованиеПоставщика);
КонецПроцедуры
Процедура ЗаполнитьДокумент() Экспорт