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:
commit
ba190b3c23
@ -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
|
||||
#КонецЕсли
|
||||
|
||||
Конструктор.Инициализировать(Менеджер);
|
||||
|
||||
Возврат Конструктор;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
// Новый контекст конструктора.
|
||||
//
|
||||
// Параметры:
|
||||
// Менеджер - Произвольный
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - Новый контекст конструктора:
|
||||
// * Менеджер - Произвольный
|
||||
// * Данные - Структура
|
||||
// * Метаданные - см. ЮТМетаданные.ОписаниеОбъектМетаданных
|
||||
// * ТекущаяТабличнаяЧасть - Строка
|
||||
// * ДополнительныеСвойства - Структура
|
||||
Функция НовыйКонтекстКонструктора(Менеджер) Экспорт
|
||||
|
||||
Контекст = Новый Структура("Менеджер, Данные, Метаданные", Менеджер, Новый Структура());
|
||||
Контекст.Вставить("Менеджер", Менеджер);
|
||||
Контекст.Вставить("Данные", Новый Структура());
|
||||
Контекст.Вставить("Метаданные", ЮТМетаданные.ОписаниеОбъектМетаданных(Менеджер));
|
||||
Контекст.Вставить("ТекущаяТабличнаяЧасть", "");
|
||||
Контекст.Вставить("ДополнительныеСвойства", Новый Структура());
|
||||
|
||||
Возврат Контекст;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ДанныеТабличнойЧасти(Контекст)
|
||||
|
||||
Возврат Контекст.Данные[Контекст.ТекущаяТабличнаяЧасть];
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
@ -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>
|
@ -404,10 +404,10 @@
|
||||
// Менеджер - Строка - Имя менеджера. Примеры: Справочники.Товары, Документы.ПриходТоваров
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ОбщийМодуль - Конструктор
|
||||
// ОбработкаОбъект.ЮТКонструкторТестовыхДанных
|
||||
Функция КонструкторОбъекта(Менеджер) Экспорт
|
||||
|
||||
Возврат ЮТКонструкторТестовыхДанных.Инициализировать(Менеджер);
|
||||
Возврат ЮТКонструкторТестовыхДанныхСлужебный.Инициализировать(Менеджер);
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
@ -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>
|
||||
|
@ -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>
|
@ -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
|
@ -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 @@
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
// Инициализирует конструктор тестовых данных
|
||||
//
|
||||
// Параметры:
|
||||
// Менеджер - Строка - Имя менеджера. Примеры: Справочники.Товары, Документы.ПриходТоваров
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ОбщийМодуль - Конструктор
|
||||
Функция Инициализировать(Менеджер) Экспорт
|
||||
Процедура Инициализировать(Менеджер) Экспорт
|
||||
|
||||
Контекст = НовыйКонтекстКонструктора(Менеджер);
|
||||
ЮТКонтекст.УстановитьЗначениеКонтекста(КлючКонтекста(), Контекст);
|
||||
Контекст = ЮТКонструкторТестовыхДанныхСлужебный.НовыйКонтекстКонструктора(Менеджер);
|
||||
|
||||
Возврат ЮТКонструкторТестовыхДанных;
|
||||
|
||||
КонецФункции
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
// Контекст.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// см. НовыйКонтекстКонструктора
|
||||
Функция Контекст()
|
||||
|
||||
Возврат ЮТКонтекст.ЗначениеКонтекста(КлючКонтекста());
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Новый контекст конструктора.
|
||||
//
|
||||
// Параметры:
|
||||
// Менеджер - Произвольный
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - Новый контекст конструктора:
|
||||
// * Менеджер - Произвольный
|
||||
// * Данные - Структура
|
||||
// * Метаданные - см. ЮТМетаданные.ОписаниеОбъектМетаданных
|
||||
// * ТекущаяТабличнаяЧасть - Строка -
|
||||
// * ДополнительныеСвойства - Структура
|
||||
Функция НовыйКонтекстКонструктора(Менеджер)
|
||||
|
||||
Контекст = Новый Структура("Менеджер, Данные, Метаданные", Менеджер, Новый Структура());
|
||||
Контекст.Вставить("Менеджер", Менеджер);
|
||||
Контекст.Вставить("Данные", Новый Структура());
|
||||
Контекст.Вставить("Метаданные", ЮТМетаданные.ОписаниеОбъектМетаданных(Менеджер));
|
||||
Контекст.Вставить("ТекущаяТабличнаяЧасть", "");
|
||||
Контекст.Вставить("ДополнительныеСвойства", Новый Структура());
|
||||
|
||||
Возврат Контекст;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция КлючКонтекста()
|
||||
|
||||
Возврат "КонструкторТестовыхДанных";
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ДанныеТабличнойЧасти(Контекст)
|
||||
|
||||
Возврат Контекст.Данные[Контекст.ТекущаяТабличнаяЧасть];
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
#КонецЕсли
|
@ -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>
|
@ -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>
|
||||
|
@ -26,7 +26,7 @@
|
||||
.ДобавитьТест("Фикция")
|
||||
.ДобавитьТест("ФикцияОбязательныхПолей")
|
||||
;
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЗаполнитьСправочник() Экспорт
|
||||
@ -37,15 +37,18 @@
|
||||
Конструктор = ЮТест.Данные().КонструкторОбъекта(Справочники.Товары);
|
||||
#КонецЕсли
|
||||
|
||||
НаименованиеПоставщика = ЮТест.Данные().СлучайнаяСтрока(20);
|
||||
Конструктор
|
||||
.Фикция("Наименование")
|
||||
.Фикция("Артикул")
|
||||
.Фикция("Поставщик")
|
||||
.Установить("Поставщик", ЮТест.Данные().КонструкторОбъекта("Справочники.Контрагенты")
|
||||
.Установить("Наименование", НаименованиеПоставщика)
|
||||
.Записать())
|
||||
.Фикция("Вид");
|
||||
|
||||
ДанныеОбъекта = Конструктор.ДанныеОбъекта();
|
||||
ЮТест.ОжидаетЧто(ДанныеОбъекта, "Данные создаваемого объекта")
|
||||
.Свойство("Наименование").Заполнено()
|
||||
.Свойство("Наименование").Заполнено().НеРавно(НаименованиеПоставщика)
|
||||
.Свойство("Артикул").Заполнено()
|
||||
.Свойство("Поставщик").Заполнено()
|
||||
.Свойство("Вид").Заполнено();
|
||||
@ -61,6 +64,8 @@
|
||||
.Свойство("Вид").Заполнено().Равно(ДанныеОбъекта.Вид);
|
||||
#КонецЕсли
|
||||
|
||||
УстановленноеНаименованиеПоставщика = ЮТЗапросы.ЗначениеРеквизита(Ссылка, "Поставщик.Наименование");
|
||||
ЮТест.ОжидаетЧто(УстановленноеНаименованиеПоставщика).Равно(НаименованиеПоставщика);
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЗаполнитьДокумент() Экспорт
|
||||
|
Loading…
Reference in New Issue
Block a user