mirror of
https://github.com/bia-technologies/yaxunit.git
synced 2025-01-08 13:06:32 +02:00
#25 Конструктор тестовых данных
This commit is contained in:
parent
d195475435
commit
90199107cb
@ -30,6 +30,35 @@
|
||||
|
||||
Примеры
|
||||
|
||||
1. Генерация фейкового документа
|
||||
|
||||
```bsl
|
||||
#Если Сервер Тогда
|
||||
Конструктор = ЮТест.Данные().КонструкторОбъекта(Документы.ПриходТовара);
|
||||
#Иначе
|
||||
Конструктор = ЮТест.Данные().КонструкторОбъекта("Документы.ПриходТовара");
|
||||
#КонецЕсли
|
||||
|
||||
Конструктор
|
||||
.Фикция("Поставщик")
|
||||
.Фикция("Склад")
|
||||
.Фикция("Валюта")
|
||||
.Фикция("Организация")
|
||||
.ТабличнаяЧасть("Товары");
|
||||
|
||||
Для Инд1 = 1 По ЮТест.Данные().СлучайноеЧисло(1, 5) Цикл
|
||||
Конструктор.ДобавитьСтроку()
|
||||
.Фикция("Товар")
|
||||
.Установить("Цена", ЮТест.Данные().СлучайноеПоложительноеЧисло(9999, 2))
|
||||
.Установить("Количество", ЮТест.Данные().СлучайноеПоложительноеЧисло(20))
|
||||
.Установить("Сумма", Конструктор.ДанныеСтроки().Цена * Конструктор.ДанныеСтроки().Количество)
|
||||
КонецЦикла;
|
||||
|
||||
Ссылка = Конструктор.Провести();
|
||||
```
|
||||
|
||||
2. Генерация произвольных фейковых данных
|
||||
|
||||
```bsl
|
||||
Функция ОписаниеСервера(Знач Идентификатор = Неопределено) Экспорт
|
||||
|
||||
@ -72,7 +101,7 @@
|
||||
Описание.Вставить("СредаЭксплуатации", "");
|
||||
Описание.Вставить("Назначение", ЮТТестовыеДанные.СоздатьЭлемент(Справочники.НазначенияВиртуальныхМашин));
|
||||
Описание.Вставить("ТипСреды", Справочники.ТипыИнформационныхСред.BETA);
|
||||
Описание.Вставить("КодСервиса", ЮТТестовыеДанные.СлучайнаяСтрока(, 1));
|
||||
Описание.Вставить("КодСервиса", ЮТТестовыеДанные.СлучайнаяСтрока(1));
|
||||
|
||||
Возврат Описание;
|
||||
|
||||
@ -90,3 +119,48 @@
|
||||
|
||||
КонецФункции
|
||||
```
|
||||
|
||||
3. Чтение из таблицы Markdown
|
||||
|
||||
```bsl
|
||||
Макет =
|
||||
"| Имя | ИмяКоллекции | Конструктор | Группы | Ссылочный | Реквизиты | Измерения | Ресурсы | РеквизитыАдресации | ТабличныеЧасти |
|
||||
||------------------------|-------------------------|----------------------|--------|-----------|-----------|-----------|---------|--------------------|----------------|
|
||||
|| Справочник | Справочники | СоздатьЭлемент | + | + | + | | | | + |
|
||||
|| Документ | Документы | СоздатьДокумент | | + | + | | | | + |
|
||||
|| ПланВидовХарактеристик | ПланыВидовХарактеристик | СоздатьЭлемент | + | + | + | | | | + |
|
||||
|| ПланСчетов | ПланыСчетов | СоздатьСчет | | + | + | | | | + |
|
||||
|| ПланВидовРасчета | ПланыВидовРасчета | СоздатьВидРасчета | | + | + | | | | + |
|
||||
|| ПланОбмена | ПланыОбмена | СоздатьУзел | | + | + | | | | + |
|
||||
|| РегистрСведений | РегистрыСведений | СоздатьНаборЗаписей | | | + | + | + | | |
|
||||
|| РегистрНакопления | РегистрыНакопления | СоздатьНаборЗаписей | | | + | + | + | | |
|
||||
|| РегистрБухгалтерии | РегистрыБухгалтерии | СоздатьНаборЗаписей | | | + | + | + | | |
|
||||
|| РегистрРасчета | РегистрыРасчета | СоздатьНаборЗаписей | | | + | + | + | | |
|
||||
|| БизнесПроцесс | БизнесПроцессы | СоздатьБизнесПроцесс | | + | + | | | | + |
|
||||
|| Задача | Задачи | СоздатьЗадачу | | + | + | | | + | + |
|
||||
|";
|
||||
КоллекцияОписаний = ЮТТестовыеДанные.ТаблицаMarkDown(Макет);
|
||||
|
||||
ТипыМетаданных = Новый Структура();
|
||||
|
||||
Для Каждого Запись Из КоллекцияОписаний Цикл
|
||||
|
||||
Описание = Новый Структура();
|
||||
Описание.Вставить("Имя", Запись.Имя);
|
||||
Описание.Вставить("ИмяКоллекции", Запись.ИмяКоллекции);
|
||||
Описание.Вставить("Конструктор", Запись.Конструктор);
|
||||
Описание.Вставить("Группы", Запись.Группы = "+");
|
||||
Описание.Вставить("Ссылочный", Запись.Ссылочный = "+");
|
||||
Описание.Вставить("Реквизиты", Запись.Реквизиты = "+");
|
||||
Описание.Вставить("Измерения", Запись.Измерения = "+");
|
||||
Описание.Вставить("Ресурсы", Запись.Ресурсы = "+");
|
||||
Описание.Вставить("РеквизитыАдресации", Запись.РеквизитыАдресации = "+");
|
||||
Описание.Вставить("ТабличныеЧасти", Запись.ТабличныеЧасти = "+");
|
||||
|
||||
ТипыМетаданных.Вставить(Описание.Имя, Описание);
|
||||
ТипыМетаданных.Вставить(Описание.ИмяКоллекции, Описание);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ТипыМетаданных;
|
||||
```
|
||||
|
@ -443,7 +443,7 @@
|
||||
Настройки.Вставить("ПараметрыОбучения", Неопределено);
|
||||
Настройки.Вставить("ПараметрыПроверки", Неопределено);
|
||||
|
||||
ЮТКонтекст.УстановитьЗначениеКонтекста(КлючНастроек(), Настройки);
|
||||
ЮТКонтекст.УстановитьЗначениеКонтекста(КлючНастроек(), Настройки, Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
@ -0,0 +1,281 @@
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
//
|
||||
// Copyright 2021-2022 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.
|
||||
//
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Экспортные процедуры и функции для служебного использования внутри подсистемы
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
// Инициализирует конструктор тестовых данных
|
||||
//
|
||||
// Параметры:
|
||||
// Менеджер - Строка - Имя менеджера. Примеры: Справочники.Товары, Документы.ПриходТоваров
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ОбщийМодуль - Конструктор
|
||||
Функция Инициализировать(Менеджер) Экспорт
|
||||
|
||||
Контекст = НовыйКонтекстКонструктора(Менеджер);
|
||||
ЮТКонтекст.УстановитьЗначениеКонтекста(КлючКонтекста(), Контекст);
|
||||
|
||||
Возврат ЮТКонструкторТестовыхДанных;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Устанавливает значение реквизита создаваемого объекта.
|
||||
// Если метод вызывается после вызова см. ТабличнаяЧасть, то устанавливается значение реквизита строки табличной части
|
||||
//
|
||||
// Параметры:
|
||||
// ИмяРеквизита - Строка - Имя реквизита объекта или табличной части
|
||||
// Значение - Произвольный - Значение реквизита объекта или табличной части
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ОбщийМодуль - Конструктор
|
||||
Функция Установить(ИмяРеквизита, Значение) Экспорт
|
||||
|
||||
Контекст = Контекст();
|
||||
|
||||
Если ЗначениеЗаполнено(Контекст.ТекущаяТабличнаяЧасть) Тогда
|
||||
ТекущаяЗапись = ДанныеСтроки();
|
||||
Иначе
|
||||
ТекущаяЗапись = Контекст.Данные;
|
||||
КонецЕсли;
|
||||
|
||||
ТекущаяЗапись.Вставить(ИмяРеквизита, Значение);
|
||||
|
||||
Возврат ЮТКонструкторТестовыхДанных;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Устанавливает фиктивное значение реквизита создаваемого объекта.
|
||||
// Если метод вызывается после вызова см. ТабличнаяЧасть, то устанавливается значение реквизита строки табличной части.
|
||||
//
|
||||
// На основании менеджера и имени реквизита вычисляется тип реквизита. На основании типа генерируется фиктивное значение.
|
||||
//
|
||||
// * Для примитивных значение генерируется случайное значение
|
||||
// * Для ссылочных типов создается новый объект
|
||||
// * Для перечислений (в том числе системных) выбирается случайно значение перечисления
|
||||
//
|
||||
// Параметры:
|
||||
// ИмяРеквизита - Строка - Имя реквизита объекта или табличной части
|
||||
// Реквизиты - Структура - Значения реквизитов заполнения создаваемого объекта базы
|
||||
// - Неопределено
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ОбщийМодуль - Конструктор
|
||||
Функция Фикция(ИмяРеквизита, Реквизиты = Неопределено) Экспорт
|
||||
|
||||
Контекст = Контекст();
|
||||
|
||||
Если ЗначениеЗаполнено(Контекст.ТекущаяТабличнаяЧасть) Тогда
|
||||
ОписаниеРеквизита = Контекст.Метаданные.ТабличныеЧасти[Контекст.ТекущаяТабличнаяЧасть][ИмяРеквизита];
|
||||
ТекущаяЗапись = ДанныеСтроки();
|
||||
Иначе
|
||||
ОписаниеРеквизита = Контекст.Метаданные.Реквизиты[ИмяРеквизита];
|
||||
ТекущаяЗапись = Контекст.Данные;
|
||||
КонецЕсли;
|
||||
|
||||
Значение = ЮТТестовыеДанныеСлужебный.Фикция(ОписаниеРеквизита.Тип);
|
||||
ТекущаяЗапись.Вставить(ИмяРеквизита, Значение);
|
||||
|
||||
Возврат ЮТКонструкторТестовыхДанных;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Переключает конструктор на заполнение табличной части объекта
|
||||
//
|
||||
// Параметры:
|
||||
// ИмяТабличнойЧасти - Строка - Имя табличной части
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ОбщийМодуль - Конструктор
|
||||
Функция ТабличнаяЧасть(ИмяТабличнойЧасти) Экспорт
|
||||
|
||||
Контекст = Контекст();
|
||||
Контекст.ТекущаяТабличнаяЧасть = ИмяТабличнойЧасти;
|
||||
Контекст.Данные.Вставить(ИмяТабличнойЧасти, Новый Массив());
|
||||
|
||||
Возврат ЮТКонструкторТестовыхДанных;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Добавляет новую строку табличной части объекта
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ОбщийМодуль - Конструктор
|
||||
Функция ДобавитьСтроку() Экспорт
|
||||
|
||||
Контекст = Контекст();
|
||||
|
||||
Запись = Новый Структура();
|
||||
ДанныеТабличнойЧасти(Контекст).Добавить(Запись);
|
||||
|
||||
Возврат ЮТКонструкторТестовыхДанных;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Устанавливает дополнительное свойство объекта
|
||||
//
|
||||
// Параметры:
|
||||
// ИмяСвойства - Строка - Имя дополнительного свойства
|
||||
// Значение - Произвольный - Значение дополнительного свойства
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ОбщийМодуль - Конструктор
|
||||
Функция УстановитьДополнительноеСвойство(ИмяСвойства, Значение) Экспорт
|
||||
|
||||
Контекст = Контекст();
|
||||
Контекст.ДополнительныеСвойства.Вставить(ИмяСвойства, Значение);
|
||||
|
||||
Возврат ЮТКонструкторТестовыхДанных;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает данные текущей строки табличной части объекта
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - Данные строки
|
||||
// Неопределено - Если заполняется объект
|
||||
Функция ДанныеСтроки() Экспорт
|
||||
|
||||
Контекст = Контекст();
|
||||
|
||||
Если ПустаяСтрока(Контекст.ТекущаяТабличнаяЧасть) Тогда
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
ДанныеТабличнойЧасти = ДанныеТабличнойЧасти(Контекст);
|
||||
|
||||
Если ДанныеТабличнойЧасти.Количество() Тогда
|
||||
Возврат ДанныеТабличнойЧасти[ДанныеТабличнойЧасти.ВГраница()];
|
||||
Иначе
|
||||
ВызватьИсключение "Сначала необходимо добавить строку табличной части";
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает данные создаваемого объекта
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - Данные объекта
|
||||
Функция ДанныеОбъекта() Экспорт
|
||||
|
||||
Контекст = Контекст();
|
||||
Возврат Контекст.Данные;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Создает новый объект и возвращает его или ссылку.
|
||||
//
|
||||
// Важно, после создания данные не очищаются, поэтому многократный вызов метода создаст множество объектов.
|
||||
// Если вы хотите создать полностью новый объект, необходимо по-новой инициировать конструктор.
|
||||
//
|
||||
// Параметры:
|
||||
// ВернутьОбъект - Булево - Вернуть объект вместо ссылки
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Произвольный - Созданный объект или ссылка на него
|
||||
Функция Записать(ВернутьОбъект = Ложь) Экспорт
|
||||
|
||||
Контекст = Контекст();
|
||||
|
||||
ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи();
|
||||
ПараметрыЗаписи.ДополнительныеСвойства = Контекст.ДополнительныеСвойства;
|
||||
|
||||
Возврат ЮТТестовыеДанныеВызовСервера.СоздатьЗапись(Контекст.Менеджер, Контекст.Данные, ПараметрыЗаписи, ВернутьОбъект);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Создает и проводит новый документ и возвращает его или ссылку.
|
||||
//
|
||||
// Параметры:
|
||||
// ВернутьОбъект - Булево - Вернуть объект вместо ссылки
|
||||
//
|
||||
// Важно, после создания данные не очищаются, поэтому многократный вызов метода создать множество объектов.
|
||||
// Если вы хотите создать полностью новый объект, необходимо по-новой инициировать конструктор.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Произвольный - Созданный объект или ссылка на него
|
||||
Функция Провести(ВернутьОбъект = Ложь) Экспорт
|
||||
|
||||
Контекст = Контекст();
|
||||
|
||||
ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи();
|
||||
ПараметрыЗаписи.ДополнительныеСвойства = Контекст.ДополнительныеСвойства;
|
||||
ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.Проведение;
|
||||
|
||||
Возврат ЮТТестовыеДанныеВызовСервера.СоздатьЗапись(Контекст.Менеджер, Контекст.Данные, ПараметрыЗаписи, ВернутьОбъект);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Процедуры и функции, составляющие внутреннюю реализацию модуля
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
// Контекст.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// см. НовыйКонтекстКонструктора
|
||||
Функция Контекст()
|
||||
|
||||
Возврат ЮТКонтекст.ЗначениеКонтекста(КлючКонтекста());
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Новый контекст конструктора.
|
||||
//
|
||||
// Параметры:
|
||||
// Менеджер - Произвольный
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - Новый контекст конструктора:
|
||||
// * Менеджер - Произвольный
|
||||
// * Данные - Структура
|
||||
// * Метаданные - см. ЮТМетаданные.ОписаниеОбъектМетаданных
|
||||
// * ТекущаяТабличнаяЧасть - Строка -
|
||||
// * ДополнительныеСвойства - Структура
|
||||
Функция НовыйКонтекстКонструктора(Менеджер)
|
||||
|
||||
Контекст = Новый Структура("Менеджер, Данные, Метаданные", Менеджер, Новый Структура());
|
||||
Контекст.Вставить("Менеджер", Менеджер);
|
||||
Контекст.Вставить("Данные", Новый Структура());
|
||||
Контекст.Вставить("Метаданные", ЮТМетаданные.ОписаниеОбъектМетаданных(Менеджер));
|
||||
Контекст.Вставить("ТекущаяТабличнаяЧасть", "");
|
||||
Контекст.Вставить("ДополнительныеСвойства", Новый Структура());
|
||||
|
||||
Возврат Контекст;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция КлючКонтекста()
|
||||
|
||||
Возврат "КонструкторТестовыхДанных";
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ДанныеТабличнойЧасти(Контекст)
|
||||
|
||||
Возврат Контекст.Данные[Контекст.ТекущаяТабличнаяЧасть];
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
@ -0,0 +1,11 @@
|
||||
<?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>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Конструктор тестовых данных</value>
|
||||
</synonym>
|
||||
<clientManagedApplication>true</clientManagedApplication>
|
||||
<server>true</server>
|
||||
<clientOrdinaryApplication>true</clientOrdinaryApplication>
|
||||
</mdclass:CommonModule>
|
72
exts/yaxunit/src/CommonModules/ЮТМетаданные/Module.bsl
Normal file
72
exts/yaxunit/src/CommonModules/ЮТМетаданные/Module.bsl
Normal file
@ -0,0 +1,72 @@
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
//
|
||||
// Copyright 2021-2022 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.
|
||||
//
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Экспортные процедуры и функции, предназначенные для использования другими
|
||||
// объектами конфигурации или другими программами
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
// Модули подсистемы.
|
||||
// Возвращает список модулей подсистемы
|
||||
// Подсистема должна находится в подсистеме "ЮТФункциональность"
|
||||
// Параметры:
|
||||
// ИмяПодсистемы - Строка - Имя подсистемы
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Массив из Строка - Имена модулей входящих в подсистему
|
||||
Функция МодулиПодсистемы(ИмяПодсистемы) Экспорт
|
||||
|
||||
Возврат ЮТМетаданныеПовтИсп.МодулиПодсистемы(ИмяПодсистемы);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Описание менеджера.
|
||||
//
|
||||
// Параметры:
|
||||
// Значение - Произвольный
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - Описание менеджера:
|
||||
// * ОписаниеТипа - см. ЮТМетаданныеСервер.ОписаниеТипаМетаданных
|
||||
// * Реквизиты - Структура из см. ЮТМетаданныеСервер.ОписаниеРеквизита
|
||||
// * ТабличныеЧасти - Структура из Структура -
|
||||
Функция ОписаниеОбъектМетаданных(Знач Значение) Экспорт
|
||||
|
||||
ТипЗначения = ТипЗнч(Значение);
|
||||
|
||||
Если ТипЗначения <> Тип("Тип") И ТипЗначения <> Тип("Строка") Тогда
|
||||
Значение = ТипЗнч(Значение);
|
||||
ТипЗначения = Тип("Тип");
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипЗначения = Тип("Тип") Тогда
|
||||
Возврат ЮТМетаданныеСервер.ОписаниеОбъектМетаданных(Значение);
|
||||
Иначе
|
||||
Возврат ЮТМетаданныеПовтИсп.ОписаниеОбъектМетаданных(Значение);
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ТипыМетаданных() Экспорт
|
||||
|
||||
Возврат ЮТМетаданныеСервер.ТипыМетаданных();
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
11
exts/yaxunit/src/CommonModules/ЮТМетаданные/ЮТМетаданные.mdo
Normal file
11
exts/yaxunit/src/CommonModules/ЮТМетаданные/ЮТМетаданные.mdo
Normal file
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="b3d250b3-a812-4309-9ada-5442ae9af8e3">
|
||||
<name>ЮТМетаданные</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Метаданные</value>
|
||||
</synonym>
|
||||
<clientManagedApplication>true</clientManagedApplication>
|
||||
<server>true</server>
|
||||
<clientOrdinaryApplication>true</clientOrdinaryApplication>
|
||||
</mdclass:CommonModule>
|
@ -0,0 +1,43 @@
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
//
|
||||
// Copyright 2021-2022 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.
|
||||
//
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Экспортные процедуры и функции, предназначенные для использования другими
|
||||
// объектами конфигурации или другими программами
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
Функция МодулиПодсистемы(ИмяПодсистемы) Экспорт
|
||||
|
||||
Возврат ЮТМетаданныеСервер.МодулиПодсистемы(ИмяПодсистемы);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ОписаниеОбъектМетаданных(Знач Менеджер) Экспорт
|
||||
|
||||
Возврат ЮТМетаданныеСервер.ОписаниеОбъектМетаданных(Менеджер);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ТипыМетаданных() Экспорт
|
||||
|
||||
Возврат ЮТМетаданныеСервер.ТипыМетаданных();
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="8158c080-39e9-4597-a230-b009ae6abbb4">
|
||||
<name>ЮТМетаданныеПовтИсп</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Метаданные</value>
|
||||
</synonym>
|
||||
<clientManagedApplication>true</clientManagedApplication>
|
||||
<server>true</server>
|
||||
<clientOrdinaryApplication>true</clientOrdinaryApplication>
|
||||
<returnValuesReuse>DuringSession</returnValuesReuse>
|
||||
</mdclass:CommonModule>
|
@ -30,18 +30,6 @@
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
// РасширенияКонфигурации
|
||||
// Возвращает список имен установленных расширений
|
||||
// Возвращаемое значение:
|
||||
// Массив - Расширения конфигурации
|
||||
Функция РасширенияКонфигурации() Экспорт
|
||||
|
||||
Расширения = РасширенияКонфигурации.Получить();
|
||||
|
||||
Возврат ЮТОбщий.ВыгрузитьЗначения(Расширения, "Имя");
|
||||
|
||||
КонецФункции
|
||||
|
||||
// МодулиРасширений
|
||||
// Выполняет чтение метаданных общих модулей, которые предположительно могут являться тестами
|
||||
//
|
||||
@ -134,6 +122,137 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ОписаниеОбъектМетаданных(Знач Значение) Экспорт
|
||||
|
||||
ТипЗначение = ТипЗнч(Значение);
|
||||
|
||||
Если ТипЗначение = Тип("Тип") Тогда
|
||||
|
||||
МетаданныеОбъекта = Метаданные.НайтиПоТипу(Значение);
|
||||
ОписаниеТипа = ОписаниеТипаМетаданных(МетаданныеОбъекта);
|
||||
|
||||
ИначеЕсли ТипЗначение = Тип("ОбъектМетаданных") Тогда
|
||||
|
||||
МетаданныеОбъекта = Значение;
|
||||
ОписаниеТипа = ОписаниеТипаМетаданных(МетаданныеОбъекта);
|
||||
|
||||
ИначеЕсли ТипЗначение = Тип("Строка") Тогда
|
||||
|
||||
ЧастиСтроки = СтрРазделить(Значение, ".");
|
||||
Если ЧастиСтроки.Количество() = 2 Тогда
|
||||
ТипыМетаданных = ЮТМетаданные.ТипыМетаданных();
|
||||
ОписаниеТипа = ТипыМетаданных[ЧастиСтроки[0]];
|
||||
Если ОписаниеТипа <> Неопределено Тогда
|
||||
МетаданныеОбъекта = Метаданные[ОписаниеТипа.ИмяКоллекции][ЧастиСтроки[1]];
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если МетаданныеОбъекта = Неопределено ИЛИ ОписаниеТипа = Неопределено Тогда
|
||||
Сообщение = СтрШаблон("Не удалось получить описание метаданных для `%1` (%2)", Значение, ТипЗначение);
|
||||
ВызватьИсключение Сообщение;
|
||||
КонецЕсли;
|
||||
|
||||
ОписаниеОбъект = Новый Структура;
|
||||
ОписаниеОбъект.Вставить("ОписаниеТипа", ОписаниеТипа);
|
||||
ОписаниеОбъект.Вставить("Реквизиты", Новый Структура());
|
||||
ОписаниеОбъект.Вставить("ТабличныеЧасти", Новый Структура());
|
||||
|
||||
ДобавитьОписанияРеквизитов(МетаданныеОбъекта.СтандартныеРеквизиты, ОписаниеОбъект.Реквизиты);
|
||||
|
||||
Если ОписаниеТипа.Измерения Тогда
|
||||
ДобавитьОписанияРеквизитов(МетаданныеОбъекта.Измерения, ОписаниеОбъект.Реквизиты);
|
||||
КонецЕсли;
|
||||
|
||||
Если ОписаниеТипа.Реквизиты Тогда
|
||||
ДобавитьОписанияРеквизитов(МетаданныеОбъекта.Реквизиты, ОписаниеОбъект.Реквизиты);
|
||||
КонецЕсли;
|
||||
|
||||
Если ОписаниеТипа.Ресурсы Тогда
|
||||
ДобавитьОписанияРеквизитов(МетаданныеОбъекта.Ресурсы, ОписаниеОбъект.Реквизиты);
|
||||
КонецЕсли;
|
||||
|
||||
Если ОписаниеТипа.РеквизитыАдресации Тогда
|
||||
ДобавитьОписанияРеквизитов(МетаданныеОбъекта.РеквизитыАдресации, ОписаниеОбъект.Реквизиты);
|
||||
КонецЕсли;
|
||||
|
||||
Если ОписаниеТипа.ТабличныеЧасти Тогда
|
||||
|
||||
Для Каждого ТабличнаяЧасть Из МетаданныеОбъекта.ТабличныеЧасти Цикл
|
||||
РеквизитыТабличнойЧасти = Новый Структура();
|
||||
ДобавитьОписанияРеквизитов(ТабличнаяЧасть.Реквизиты, РеквизитыТабличнойЧасти);
|
||||
|
||||
ОписаниеОбъект.ТабличныеЧасти.Вставить(ТабличнаяЧасть.Имя, РеквизитыТабличнойЧасти);
|
||||
КонецЦикла;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ОписаниеОбъект;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Описание типа метаданных.
|
||||
//
|
||||
// Параметры:
|
||||
// МетаданныеОбъекта - Тип, ОбъектМетаданных - Тип
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - Описание типа метаданных:
|
||||
// * Имя - Строка
|
||||
// * ИмяКоллекции - Строка
|
||||
// * Конструктор - Строка
|
||||
// * Группы - Булево
|
||||
// * Ссылочный - Булево
|
||||
// * Реквизиты - Булево
|
||||
// * Измерения - Булево
|
||||
// * Ресурсы - Булево
|
||||
// * РеквизитыАдресации - Булево
|
||||
// * ТабличныеЧасти - Булево
|
||||
Функция ОписаниеТипаМетаданных(Знач МетаданныеОбъекта) Экспорт
|
||||
|
||||
Если ТипЗнч(МетаданныеОбъекта) = Тип("Тип") Тогда
|
||||
МетаданныеОбъекта = Метаданные.НайтиПоТипу(МетаданныеОбъекта);
|
||||
КонецЕсли;
|
||||
|
||||
ПолноеИмя = МетаданныеОбъекта.ПолноеИмя();
|
||||
ЧастиИмени = СтрРазделить(ПолноеИмя, ".");
|
||||
Типы = ЮТМетаданные.ТипыМетаданных();
|
||||
|
||||
Возврат Типы[ЧастиИмени[0]];
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ТипыМетаданных() Экспорт
|
||||
|
||||
Макет = ПолучитьОбщийМакет("ЮТОписаниеМетаданных").ПолучитьТекст();
|
||||
КоллекцияОписаний = ЮТТестовыеДанные.ТаблицаMarkDown(Макет);
|
||||
|
||||
ТипыМетаданных = Новый Структура();
|
||||
|
||||
Для Каждого Запись Из КоллекцияОписаний Цикл
|
||||
|
||||
Описание = Новый Структура();
|
||||
Описание.Вставить("Имя", Запись.Имя);
|
||||
Описание.Вставить("ИмяКоллекции", Запись.ИмяКоллекции);
|
||||
Описание.Вставить("Конструктор", Запись.Конструктор);
|
||||
Описание.Вставить("Группы", Запись.Группы = "+");
|
||||
Описание.Вставить("Ссылочный", Запись.Ссылочный = "+");
|
||||
Описание.Вставить("Реквизиты", Запись.Реквизиты = "+");
|
||||
Описание.Вставить("Измерения", Запись.Измерения = "+");
|
||||
Описание.Вставить("Ресурсы", Запись.Ресурсы = "+");
|
||||
Описание.Вставить("РеквизитыАдресации", Запись.РеквизитыАдресации = "+");
|
||||
Описание.Вставить("ТабличныеЧасти", Запись.ТабличныеЧасти = "+");
|
||||
|
||||
ТипыМетаданных.Вставить(Описание.Имя, Описание);
|
||||
ТипыМетаданных.Вставить(Описание.ИмяКоллекции, Описание);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ТипыМетаданных;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
@ -142,4 +261,25 @@
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Процедура ДобавитьОписанияРеквизитов(КоллекцияРеквизитов, КоллекцияОписаний)
|
||||
|
||||
Для Каждого Реквизит Из КоллекцияРеквизитов Цикл
|
||||
|
||||
КоллекцияОписаний.Вставить(Реквизит.Имя, ОписаниеРеквизита(Реквизит));
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ОписаниеРеквизита(Реквизит) Экспорт
|
||||
|
||||
Описание = Новый Структура();
|
||||
Описание.Вставить("Имя", Реквизит.Имя);
|
||||
Описание.Вставить("Тип", Реквизит.Тип);
|
||||
Описание.Вставить("Обязательный", Реквизит.ПроверкаЗаполнения = ПроверкаЗаполнения.ВыдаватьОшибку);
|
||||
|
||||
Возврат Описание;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -91,7 +91,7 @@
|
||||
КонецФункции
|
||||
|
||||
// Сформировать строку символов.
|
||||
// Формирует строку из заданого количества повторяемых символов
|
||||
// Формирует строку из заданного количества повторяемых символов
|
||||
// Параметры:
|
||||
// Символ - Строка - Повторяемый символ
|
||||
// Количество - Число - Количество повторений
|
||||
@ -803,6 +803,44 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ВычислитьБезопасно(Выражение) Экспорт
|
||||
|
||||
#Если НЕ ВебКлиент И НЕ ТонкийКлиент Тогда
|
||||
УстановитьБезопасныйРежим(Истина);
|
||||
Попытка
|
||||
Значение = Вычислить(Выражение);
|
||||
Исключение
|
||||
УстановитьБезопасныйРежим(Ложь);
|
||||
ВызватьИсключение;
|
||||
КонецПопытки;
|
||||
|
||||
УстановитьБезопасныйРежим(Ложь);
|
||||
#Иначе
|
||||
Значение = Вычислить(Выражение);
|
||||
#КонецЕсли
|
||||
|
||||
Возврат Значение;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Параметры записи объекта
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - Параметры записи:
|
||||
// * ОбменДаннымиЗагрузка - Булево
|
||||
// * ДополнительныеСвойства - Структура
|
||||
// * РежимЗаписи - РежимЗаписиДокумента
|
||||
Функция ПараметрыЗаписи() Экспорт
|
||||
|
||||
ПараметрыЗаписи = Новый Структура();
|
||||
ПараметрыЗаписи.Вставить("ОбменДаннымиЗагрузка", Ложь);
|
||||
ПараметрыЗаписи.Вставить("ДополнительныеСвойства", Новый Структура);
|
||||
ПараметрыЗаписи.Вставить("РежимЗаписи", РежимЗаписиДокумента.Запись);
|
||||
|
||||
Возврат ПараметрыЗаписи;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
@ -811,9 +849,13 @@
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
// Описание типов любая ссылка.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ОписаниеТипов - Описание типов любая ссылка
|
||||
Функция ОписаниеТиповЛюбаяСсылка() Экспорт
|
||||
|
||||
Возврат ЮТОбщийВызовСервера.ОписаниеТиповЛюбаяСсылка();
|
||||
Возврат ЮТПовторногоИспользования.ОписаниеТиповЛюбаяСсылка();
|
||||
|
||||
КонецФункции
|
||||
|
||||
@ -853,8 +895,13 @@
|
||||
|
||||
Функция Модуль(ИмяМодуля) Экспорт
|
||||
|
||||
//@skip-check server-execution-safe-mode
|
||||
Возврат Вычислить(ИмяМодуля);
|
||||
Возврат ВычислитьБезопасно(ИмяМодуля);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция Менеджер(Знач Менеджер) Экспорт
|
||||
|
||||
Возврат ЮТОбщийВызовСервера.Менеджер(Менеджер);
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
@ -48,6 +48,16 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция Менеджер(Знач Менеджер) Экспорт
|
||||
|
||||
Если ТипЗнч(Менеджер) = Тип("Строка") Тогда
|
||||
Менеджер = ЮТОбщий.ВычислитьБезопасно(Менеджер);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Менеджер;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -47,6 +47,12 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ОписаниеТиповЛюбаяСсылка() Экспорт
|
||||
|
||||
Возврат ЮТОбщийВызовСервера.ОписаниеТиповЛюбаяСсылка();
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -37,7 +37,7 @@
|
||||
|
||||
Функция ОбработчикиСобытий() Экспорт
|
||||
|
||||
Возврат ЮТМетаданныеСервер.МодулиПодсистемы("ЮТОбработчикиСобытий");
|
||||
Возврат ЮТМетаданные.МодулиПодсистемы("ЮТОбработчикиСобытий");
|
||||
|
||||
КонецФункции
|
||||
|
||||
@ -50,7 +50,7 @@
|
||||
|
||||
Функция МодулиПодсистемы(ИмяПодсистемы)
|
||||
|
||||
ИменаМодулей = ЮТМетаданныеСервер.МодулиПодсистемы(ИмяПодсистемы);
|
||||
ИменаМодулей = ЮТМетаданные.МодулиПодсистемы(ИмяПодсистемы);
|
||||
|
||||
Модули = Новый Массив();
|
||||
|
||||
|
@ -204,6 +204,12 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СлучайноеБулево() Экспорт
|
||||
|
||||
Возврат СлучайноеЧисло() %2 = 0;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция НовыйФайл(Содержимое = Неопределено, ТолькоЧтение = Ложь, Расширение = Неопределено) Экспорт
|
||||
|
||||
Результат = НовоеИмяВременногоФайла(Расширение);
|
||||
@ -234,21 +240,14 @@
|
||||
// Строка
|
||||
Функция НовоеИмяВременногоФайла(Расширение = Неопределено) Экспорт
|
||||
|
||||
#Если ВебКлиент Тогда
|
||||
ВызватьИсключение ЮТОбщий.МетодНеДоступен("ЮТТестовыеДанные.НовоеИмяВременногоФайла");
|
||||
#Иначе
|
||||
Результат = ПолучитьИмяВременногоФайла(Расширение);
|
||||
ЮТКонтекст.КонтекстТеста().ВременныеФайлы.Добавить(Результат);
|
||||
Возврат Результат;
|
||||
#КонецЕсли
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ТаблицаMarkDown(Строки) Экспорт
|
||||
|
||||
#Если ВебКлиент Тогда
|
||||
ВызватьИсключение ЮТОбщий.МетодНеДоступен("ЮТТестовыеДанные.ТаблицаMarkDown");
|
||||
#Иначе
|
||||
ЗагрузилиЗаголовок = Ложь;
|
||||
Результат = Новый Массив();
|
||||
Ключи = "";
|
||||
@ -307,7 +306,6 @@
|
||||
Поток.Закрыть();
|
||||
|
||||
Возврат Результат;
|
||||
#КонецЕсли
|
||||
|
||||
КонецФункции
|
||||
|
||||
@ -344,6 +342,33 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает конструктор создания тестовых данных
|
||||
//
|
||||
// Конструктор имеет ряд особенностей:
|
||||
//
|
||||
// * Нельзя использовать параллельно несколько конструкторов.
|
||||
// Например,
|
||||
// ```bsl
|
||||
// Пользователь = КонструкторОбъекта(Справочники.Пользователи);
|
||||
// Документ = КонструкторОбъекта(Документы.Приход);
|
||||
// ...
|
||||
// Пользователь.Записать();
|
||||
// Документ.Провести();
|
||||
// ```
|
||||
// * Создание объекта происходит при вызове методов `Записать` и `Провести`, а создание реквизитов происходит во время вызова методов установки.
|
||||
// * При использовании на клиенте все значения должны быть сериализуемыми.
|
||||
//
|
||||
// Параметры:
|
||||
// Менеджер - Строка - Имя менеджера. Примеры: Справочники.Товары, Документы.ПриходТоваров
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ОбщийМодуль - Конструктор
|
||||
Функция КонструкторОбъекта(Менеджер) Экспорт
|
||||
|
||||
Возврат ЮТКонструкторТестовыхДанных.Инициализировать(Менеджер);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Экспортные процедуры и функции для служебного использования внутри подсистемы
|
||||
|
@ -34,9 +34,7 @@
|
||||
// ЛюбаяСсылка - Ссылка на созданный объект
|
||||
Функция СоздатьЭлемент(Знач Менеджер, Знач Наименование = Неопределено, Знач Реквизиты = Неопределено) Экспорт
|
||||
|
||||
Если ТипЗнч(Менеджер) = Тип("Строка") Тогда
|
||||
Менеджер = Вычислить(Менеджер);
|
||||
КонецЕсли;
|
||||
Менеджер = ЮТОбщий.Менеджер(Менеджер);
|
||||
|
||||
Объект = Менеджер.СоздатьЭлемент();
|
||||
|
||||
@ -50,7 +48,11 @@
|
||||
ЗаполнитьЗначенияСвойств(Объект, Реквизиты);
|
||||
КонецЕсли;
|
||||
|
||||
Объект.Записать();
|
||||
Если Объект.Метаданные().ДлинаКода И НЕ ЗначениеЗаполнено(Объект.Код) Тогда
|
||||
Объект.УстановитьНовыйКод();
|
||||
КонецЕсли;
|
||||
|
||||
ЗаписатьОбъект(Объект);
|
||||
|
||||
Возврат Объект.Ссылка;
|
||||
|
||||
@ -68,9 +70,7 @@
|
||||
|
||||
РежимЗаписи = РежимЗаписиДокумента.Запись;
|
||||
|
||||
Если ТипЗнч(Менеджер) = Тип("Строка") Тогда
|
||||
Менеджер = Вычислить(Менеджер);
|
||||
КонецЕсли;
|
||||
Менеджер = ЮТОбщий.Менеджер(Менеджер);
|
||||
|
||||
Объект = Менеджер.СоздатьДокумент();
|
||||
Объект.Дата = ТекущаяДатаСеанса();
|
||||
@ -81,12 +81,68 @@
|
||||
РежимЗаписи = ЮТОбщий.ЗначениеСтруктуры(Реквизиты, "РежимЗаписи", РежимЗаписи);
|
||||
КонецЕсли;
|
||||
|
||||
Объект.Записать(РежимЗаписи);
|
||||
ЗаписатьОбъект(Объект, , РежимЗаписи);
|
||||
|
||||
Возврат Объект.Ссылка;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Создать запись.
|
||||
//
|
||||
// Параметры:
|
||||
// Менеджер - Произвольный
|
||||
// Данные - Структура - Данные заполнения объекта
|
||||
// ПараметрыЗаписи - см. ЮТОбщий.
|
||||
// ВернутьОбъект - Булево - Вернуть объект
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Произвольный - Создать запись
|
||||
Функция СоздатьЗапись(Знач Менеджер, Знач Данные, Знач ПараметрыЗаписи = Неопределено, Знач ВернутьОбъект = Ложь) Экспорт
|
||||
|
||||
Менеджер = ЮТОбщий.Менеджер(Менеджер);
|
||||
|
||||
ОписаниеОбъектаМетаданных = ЮТМетаданные.ОписаниеОбъектМетаданных(ТипЗнч(Менеджер));
|
||||
|
||||
Объект = СоздатьОбъект(Менеджер, ОписаниеОбъектаМетаданных.ОписаниеТипа);
|
||||
ЗаполнитьЗначенияСвойств(Объект, Данные);
|
||||
|
||||
Если ОписаниеОбъектаМетаданных.ОписаниеТипа.ТабличныеЧасти Тогда
|
||||
|
||||
Для Каждого ОписаниеТабличнойЧасти Из ОписаниеОбъектаМетаданных.ТабличныеЧасти Цикл
|
||||
|
||||
ИмяТабличнойЧасти = ОписаниеТабличнойЧасти.Ключ;
|
||||
Если НЕ Данные.Свойство(ИмяТабличнойЧасти) Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого Запись Из Данные[ИмяТабличнойЧасти] Цикл
|
||||
Строка = Объект[ИмяТабличнойЧасти].Добавить();
|
||||
ЗаполнитьЗначенияСвойств(Строка, Запись);
|
||||
КонецЦикла;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если ПараметрыЗаписи = Неопределено Тогда
|
||||
ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи();
|
||||
Иначе
|
||||
ПереданныеПараметрыЗаписи = ПараметрыЗаписи;
|
||||
ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи();
|
||||
ЗаполнитьЗначенияСвойств(ПараметрыЗаписи, ПереданныеПараметрыЗаписи);
|
||||
КонецЕсли;
|
||||
|
||||
ЗаполнитьБазовыеРеквизиты(Объект, ОписаниеОбъектаМетаданных);
|
||||
|
||||
ЮТОбщий.ОбъединитьВСтруктуру(Объект.ДополнительныеСвойства, ПараметрыЗаписи.ДополнительныеСвойства);
|
||||
|
||||
РежимЗаписи = ?(СтрСравнить(ОписаниеОбъектаМетаданных.ОписаниеТипа.Имя, "Документ") = 0, ПараметрыЗаписи.РежимЗаписи, Неопределено);
|
||||
ЗаписатьОбъект(Объект, ПараметрыЗаписи.ОбменДаннымиЗагрузка, РежимЗаписи);
|
||||
|
||||
Возврат ?(ВернутьОбъект, Объект, Объект.Ссылка);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Экспортные процедуры и функции для служебного использования внутри подсистемы
|
||||
@ -94,6 +150,39 @@
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
|
||||
Функция ФикцияЗначенияБазы(Знач ТипЗначения) Экспорт
|
||||
|
||||
ОбъектМетаданных = Метаданные.НайтиПоТипу(ТипЗначения);
|
||||
|
||||
Если ОбъектМетаданных = Неопределено Тогда
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
Если Метаданные.Перечисления.Содержит(ОбъектМетаданных) Тогда
|
||||
|
||||
Менеджер = Новый ("ПеречислениеМенеджер." + ОбъектМетаданных.Имя);
|
||||
НомерЗначения = ЮТТестовыеДанные.СлучайноеПоложительноеЧисло(Менеджер.Количество());
|
||||
Возврат Менеджер.Получить(НомерЗначения - 1);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ОписаниеОбъектаМетаданных = ЮТМетаданныеСервер.ОписаниеОбъектМетаданных(ОбъектМетаданных);
|
||||
ОписаниеТипа = ОписаниеОбъектаМетаданных.ОписаниеТипа;
|
||||
|
||||
ИмяТипаМенеджера = СтрШаблон("%1Менеджер.%2", ОписаниеТипа.Имя, ОбъектМетаданных.Имя);
|
||||
Менеджер = Новый (ИмяТипаМенеджера);
|
||||
|
||||
Объект = СоздатьОбъект(Менеджер, ОписаниеТипа);
|
||||
|
||||
ЗаполнитьБазовыеРеквизиты(Объект, ОписаниеОбъектаМетаданных);
|
||||
|
||||
ЗаписатьОбъект(Объект);
|
||||
|
||||
Возврат Объект.Ссылка;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
@ -102,4 +191,89 @@
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
// Создать объект.
|
||||
//
|
||||
// Параметры: ОписаниеМенеджера -
|
||||
// См. ОписаниеМенеджера
|
||||
// Менеджер - Произвольный - Менеджер
|
||||
// ОписаниеТипа - см. ЮТМетаданные.ОписаниеОбъектМетаданных
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Произвольный - Создать объект
|
||||
Функция СоздатьОбъект(Менеджер, ОписаниеТипа)
|
||||
|
||||
Если ОписаниеТипа.Конструктор = "СоздатьЭлемент" Тогда
|
||||
Результат = Менеджер.СоздатьЭлемент();
|
||||
ИначеЕсли ОписаниеТипа.Конструктор = "СоздатьДокумент" Тогда
|
||||
Результат = Менеджер.СоздатьДокумент();
|
||||
ИначеЕсли ОписаниеТипа.Конструктор = "СоздатьСчет" Тогда
|
||||
Результат = Менеджер.СоздатьСчет();
|
||||
ИначеЕсли ОписаниеТипа.Конструктор = "СоздатьВидРасчета" Тогда
|
||||
Результат = Менеджер.СоздатьВидРасчета();
|
||||
ИначеЕсли ОписаниеТипа.Конструктор = "СоздатьУзел" Тогда
|
||||
Результат = Менеджер.СоздатьУзел();
|
||||
ИначеЕсли ОписаниеТипа.Конструктор = "СоздатьНаборЗаписей" Тогда
|
||||
Результат = Менеджер.СоздатьНаборЗаписей();
|
||||
ИначеЕсли ОписаниеТипа.Конструктор = "СоздатьБизнесПроцесс" Тогда
|
||||
Результат = Менеджер.СоздатьБизнесПроцесс();
|
||||
ИначеЕсли ОписаниеТипа.Конструктор = "СоздатьЗадачу" Тогда
|
||||
Результат = Менеджер.СоздатьЗадачу();
|
||||
Иначе
|
||||
ВызватьИсключение СтрШаблон("Для %1 не поддерживается создание записей ИБ", ОписаниеТипа.Имя);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ЗаписатьОбъект(Объект, ОбменДаннымиЗагрузка = Ложь, РежимЗаписи = Неопределено)
|
||||
|
||||
Если ОбменДаннымиЗагрузка Тогда
|
||||
Объект.ОбменДанными.Загрузка = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Попытка
|
||||
|
||||
Если РежимЗаписи <> Неопределено Тогда
|
||||
Объект.Записать(РежимЗаписи);
|
||||
Иначе
|
||||
Объект.Записать();
|
||||
КонецЕсли;
|
||||
|
||||
Исключение
|
||||
|
||||
Сообщение = СтрШаблон("Не удалось записать объект `%1` (%2)
|
||||
|%3", Объект, ТипЗнч(Объект), ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
ВызватьИсключение Сообщение;
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЗаполнитьБазовыеРеквизиты(Объект, ОписаниеОбъектаМетаданных)
|
||||
|
||||
ОписаниеТипа = ОписаниеОбъектаМетаданных.ОписаниеТипа;
|
||||
Если ОписаниеТипа.Имя = "Документ" Тогда
|
||||
Если НЕ ЗначениеЗаполнено(Объект.Дата) Тогда
|
||||
Объект.Дата = ТекущаяДатаСеанса();
|
||||
КонецЕсли;
|
||||
Если НЕ ЗначениеЗаполнено(Объект.Номер) Тогда
|
||||
Объект.УстановитьНовыйНомер();
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если ОписаниеОбъектаМетаданных.Реквизиты.Свойство("Код")
|
||||
И ОписаниеОбъектаМетаданных.Реквизиты.Код.Обязательный
|
||||
И Не ЗначениеЗаполнено(Объект.Код) Тогда
|
||||
Объект.УстановитьНовыйКод();
|
||||
КонецЕсли;
|
||||
|
||||
Если ОписаниеОбъектаМетаданных.Реквизиты.Свойство("Наименование")
|
||||
И ОписаниеОбъектаМетаданных.Реквизиты.Наименование.Обязательный
|
||||
И Не ЗначениеЗаполнено(Объект.Наименование) Тогда
|
||||
Объект.Наименование = ЮТТестовыеДанные.СлучайнаяСтрока();
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -0,0 +1,138 @@
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
//
|
||||
// Copyright 2021-2022 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.
|
||||
//
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Экспортные процедуры и функции, предназначенные для использования другими
|
||||
// объектами конфигурации или другими программами
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
// Фикция.
|
||||
//
|
||||
// Параметры:
|
||||
// ОписаниеТипа - ОписаниеТипов
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
//
|
||||
Функция Фикция(ОписаниеТипа) Экспорт
|
||||
|
||||
Если ОписаниеТипа.Типы().Количество() > 1 Тогда
|
||||
НомерТипа = ЮТТестовыеДанные.СлучайноеПоложительноеЧисло(ОписаниеТипа.Типы().Количество());
|
||||
Тип = ОписаниеТипа.Типы()[НомерТипа - 1];
|
||||
Иначе
|
||||
Тип = ОписаниеТипа.Типы()[0];
|
||||
КонецЕсли;
|
||||
|
||||
Значение = Неопределено;
|
||||
|
||||
Если Тип = Тип("Число") Тогда
|
||||
|
||||
МаксимальноеЗначение = 4294967295;
|
||||
Если ОписаниеТипа.КвалификаторыЧисла.ДопустимыйЗнак = ДопустимыйЗнак.Неотрицательный ИЛИ ЮТТестовыеДанные.СлучайноеБулево() Тогда
|
||||
МаксимальноеЗначение = ОписаниеТипа.ПривестиЗначение(МаксимальноеЗначение);
|
||||
Значение = ЮТТестовыеДанные.СлучайноеПоложительноеЧисло(МаксимальноеЗначение, ОписаниеТипа.КвалификаторыЧисла.РазрядностьДробнойЧасти);
|
||||
Иначе
|
||||
МаксимальноеЗначение = ОписаниеТипа.ПривестиЗначение(МаксимальноеЗначение);
|
||||
Значение = ЮТТестовыеДанные.СлучайноеОтрицательноеЧисло(МаксимальноеЗначение, ОписаниеТипа.КвалификаторыЧисла.РазрядностьДробнойЧасти);
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли Тип = Тип("Строка") Тогда
|
||||
|
||||
Если ОписаниеТипа.КвалификаторыСтроки.Длина = 0 Тогда
|
||||
Значение = ЮТТестовыеДанные.СлучайнаяСтрока(ЮТТестовыеДанные.СлучайноеПоложительноеЧисло(100));
|
||||
Иначе
|
||||
Значение = ЮТТестовыеДанные.СлучайнаяСтрока(ОписаниеТипа.КвалификаторыСтроки.Длина);
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли Тип = Тип("Дата") Тогда
|
||||
|
||||
Значение = ЮТТестовыеДанные.СлучайнаяДата(ТекущаяДата() - 315360000, ТекущаяДата() + 315360000); // +/- 10 лет
|
||||
|
||||
ИначеЕсли Тип = Тип("Булево") Тогда
|
||||
|
||||
Значение = ЮТТестовыеДанные.СлучайноеБулево();
|
||||
|
||||
ИначеЕсли ЭтоСистемноеПеречисление(Тип) Тогда
|
||||
|
||||
Значение = СлучайноЗначениеСистемногоПеречисления(Тип);
|
||||
Иначе
|
||||
|
||||
Значение = ЮТТестовыеДанныеВызовСервера.ФикцияЗначенияБазы(Тип);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если Значение = Неопределено Тогда
|
||||
ВызватьИсключение СтрШаблон("Создание фейковых значений для `%1` не поддерживается", ОписаниеТипа);
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Возврат ОписаниеТипа.ПривестиЗначение(Значение);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция ЭтоСистемноеПеречисление(Тип)
|
||||
|
||||
Возврат ТипыСистемныхПеречислений().СодержитТип(Тип);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ТипыСистемныхПеречислений()
|
||||
|
||||
Возврат Новый ОписаниеТипов(
|
||||
"ВидДвиженияБухгалтерии,
|
||||
|ВидДвиженияНакопления,
|
||||
|ВидПериодаРегистраРасчета,
|
||||
|ВидСчета,
|
||||
|ВидТочкиМаршрутаБизнесПроцесса,
|
||||
|ИспользованиеГруппИЭлементов,
|
||||
|ИспользованиеСреза,
|
||||
|ИспользованиеРежимаПроведения,
|
||||
|РежимАвтоВремя,
|
||||
|РежимЗаписиДокумента,
|
||||
|РежимПроведенияДокумента,
|
||||
|ПериодичностьАгрегатаРегистраНакопления,
|
||||
|ИспользованиеАгрегатаРегистраНакопления");
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ИмяСистемногоПеречисления(Тип)
|
||||
|
||||
Возврат Строка(Тип);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СлучайноЗначениеСистемногоПеречисления(Тип)
|
||||
|
||||
Менеджер = ЮТОбщий.ВычислитьБезопасно(ИмяСистемногоПеречисления(Тип));
|
||||
|
||||
Значения = Новый Массив();
|
||||
|
||||
Для Каждого Значение Из Менеджер Цикл
|
||||
Значения.Добавить(Значение);
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ЮТТестовыеДанные.СлучайноеЗначениеИзСписка(Значения);
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
#КонецОбласти
|
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="0e0e823b-f621-4279-bca1-eb44b7399244">
|
||||
<name>ЮТТестовыеДанныеСлужебный</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Тестовые данные служебный</value>
|
||||
</synonym>
|
||||
<clientManagedApplication>true</clientManagedApplication>
|
||||
<server>true</server>
|
||||
<clientOrdinaryApplication>true</clientOrdinaryApplication>
|
||||
</mdclass:CommonModule>
|
@ -584,7 +584,7 @@
|
||||
// Проверяет установленное значение Контекста (или его свойство) на соответствие переданному типу.
|
||||
//
|
||||
// Параметры:
|
||||
// ОжидаемоеЗначение - Строка, Тип - Ожидается, что значение Контекста (или его свойство) имеет данный тип
|
||||
// ОжидаемоеЗначение - Строка, Тип, ОписаниеТипов - Ожидается, что значение Контекста (или его свойство) имеет данный тип
|
||||
// ОписаниеПроверки - Строка - Описание конкретной проверки
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
@ -601,7 +601,7 @@
|
||||
// Проверяет установленное значение Контекста (или его свойство) на несоответствие переданному типу.
|
||||
//
|
||||
// Параметры:
|
||||
// ОжидаемоеЗначение - Строка, Тип - Ожидается, что значение Контекста (или его свойство) НЕ имеет данный тип
|
||||
// ОжидаемоеЗначение - Строка, Тип, ОписаниеТипов - Ожидается, что значение Контекста (или его свойство) НЕ имеет данный тип
|
||||
// ОписаниеПроверки - Строка - Описание конкретной проверки
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
@ -1559,7 +1559,8 @@
|
||||
|
||||
Если ТипОжидаемогоТипа = Тип("ОписаниеТипов") Тогда
|
||||
// СодержитТип не подходит, всегда выдает истину если проверяем Тип("Неопределено")
|
||||
Соответствует = ОжидаемыйТип.Типы().Найти(ТипЗначения) <> Неопределено;
|
||||
Соответствует = ОжидаемыйТип.Типы().Найти(ТипЗначения) <> Неопределено
|
||||
И ОжидаемыйТип.ПривестиЗначение(Значение) = Значение;
|
||||
Иначе
|
||||
Соответствует = ТипЗначения = ОжидаемыйТип;
|
||||
КонецЕсли;
|
||||
|
@ -0,0 +1,16 @@
|
||||
# Описание свойств метаданных
|
||||
|
||||
| Имя | ИмяКоллекции | Конструктор | Группы | Ссылочный | Реквизиты | Измерения | Ресурсы | РеквизитыАдресации | ТабличныеЧасти |
|
||||
|------------------------|-------------------------|----------------------|--------|-----------|-----------|-----------|---------|--------------------|----------------|
|
||||
| Справочник | Справочники | СоздатьЭлемент | + | + | + | | | | + |
|
||||
| Документ | Документы | СоздатьДокумент | | + | + | | | | + |
|
||||
| ПланВидовХарактеристик | ПланыВидовХарактеристик | СоздатьЭлемент | + | + | + | | | | + |
|
||||
| ПланСчетов | ПланыСчетов | СоздатьСчет | | + | + | | | | + |
|
||||
| ПланВидовРасчета | ПланыВидовРасчета | СоздатьВидРасчета | | + | + | | | | + |
|
||||
| ПланОбмена | ПланыОбмена | СоздатьУзел | | + | + | | | | + |
|
||||
| РегистрСведений | РегистрыСведений | СоздатьНаборЗаписей | | | + | + | + | | |
|
||||
| РегистрНакопления | РегистрыНакопления | СоздатьНаборЗаписей | | | + | + | + | | |
|
||||
| РегистрБухгалтерии | РегистрыБухгалтерии | СоздатьНаборЗаписей | | | + | + | + | | |
|
||||
| РегистрРасчета | РегистрыРасчета | СоздатьНаборЗаписей | | | + | + | + | | |
|
||||
| БизнесПроцесс | БизнесПроцессы | СоздатьБизнесПроцесс | | + | + | | | | + |
|
||||
| Задача | Задачи | СоздатьЗадачу | | + | + | | | + | + |
|
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonTemplate xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="ff9a8a07-b110-4d3e-9f32-33bd3ee69988">
|
||||
<name>ЮТОписаниеМетаданных</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Описание метаданных</value>
|
||||
</synonym>
|
||||
<templateType>TextDocument</templateType>
|
||||
</mdclass:CommonTemplate>
|
@ -1,10 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:Configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" xmlns:mdclassExtension="http://g5.1c.ru/v8/dt/metadata/mdclass/extension" uuid="8ebe57d7-1182-4eea-bdda-375c1e0262e4">
|
||||
<name>YAXUNIT</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>YAXUNIT</value>
|
||||
</synonym>
|
||||
<objectBelonging>Adopted</objectBelonging>
|
||||
<extension xsi:type="mdclassExtension:ConfigurationExtension">
|
||||
<managedApplicationModule>Extended</managedApplicationModule>
|
||||
@ -37,6 +33,7 @@
|
||||
<commonPictures>CommonPicture.ЮТУпал</commonPictures>
|
||||
<commonPictures>CommonPicture.ЮТУспешно</commonPictures>
|
||||
<commonPictures>CommonPicture.ЮТЭлементыТестов</commonPictures>
|
||||
<commonTemplates>CommonTemplate.ЮТОписаниеМетаданных</commonTemplates>
|
||||
<commonModules>CommonModule.Мокито</commonModules>
|
||||
<commonModules>CommonModule.МокитоОбучение</commonModules>
|
||||
<commonModules>CommonModule.МокитоПроверки</commonModules>
|
||||
@ -45,12 +42,15 @@
|
||||
<commonModules>CommonModule.ЮТИсполнитель</commonModules>
|
||||
<commonModules>CommonModule.ЮТИсполнительСервер</commonModules>
|
||||
<commonModules>CommonModule.ЮТКонструкторВариантов</commonModules>
|
||||
<commonModules>CommonModule.ЮТКонструкторТестовыхДанных</commonModules>
|
||||
<commonModules>CommonModule.ЮТКонтекст</commonModules>
|
||||
<commonModules>CommonModule.ЮТКонтекстКлиент</commonModules>
|
||||
<commonModules>CommonModule.ЮТКонтекстСервер</commonModules>
|
||||
<commonModules>CommonModule.ЮТКонтекстТеста</commonModules>
|
||||
<commonModules>CommonModule.ЮТЛогирование</commonModules>
|
||||
<commonModules>CommonModule.ЮТЛогированиеВызовСервера</commonModules>
|
||||
<commonModules>CommonModule.ЮТМетаданные</commonModules>
|
||||
<commonModules>CommonModule.ЮТМетаданныеПовтИсп</commonModules>
|
||||
<commonModules>CommonModule.ЮТМетаданныеСервер</commonModules>
|
||||
<commonModules>CommonModule.ЮТОбщий</commonModules>
|
||||
<commonModules>CommonModule.ЮТОбщийВызовСервера</commonModules>
|
||||
@ -64,6 +64,7 @@
|
||||
<commonModules>CommonModule.ЮТСобытия</commonModules>
|
||||
<commonModules>CommonModule.ЮТТестовыеДанные</commonModules>
|
||||
<commonModules>CommonModule.ЮТТестовыеДанныеВызовСервера</commonModules>
|
||||
<commonModules>CommonModule.ЮТТестовыеДанныеСлужебный</commonModules>
|
||||
<commonModules>CommonModule.ЮТТесты</commonModules>
|
||||
<commonModules>CommonModule.ЮТУтверждения</commonModules>
|
||||
<commonModules>CommonModule.ЮТФабрика</commonModules>
|
||||
|
2
ТестыПример/.settings/com.e1c.v8codestyle.autosort.prefs
Normal file
2
ТестыПример/.settings/com.e1c.v8codestyle.autosort.prefs
Normal file
@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
topObjects=true
|
@ -1,6 +1,6 @@
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
//
|
||||
// Copyright 2021-2022 BIA-Technologies Limited Liability Company
|
||||
// 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.
|
||||
|
@ -1,6 +1,6 @@
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
//
|
||||
// Copyright 2021-2022 BIA-Technologies Limited Liability Company
|
||||
// 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.
|
||||
|
@ -1,6 +1,6 @@
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
//
|
||||
// Copyright 2021-2022 BIA-Technologies Limited Liability Company
|
||||
// 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.
|
||||
|
@ -1,6 +1,6 @@
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
//
|
||||
// Copyright 2021-2022 BIA-Technologies Limited Liability Company
|
||||
// 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.
|
||||
|
@ -0,0 +1,121 @@
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
//
|
||||
// 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.
|
||||
//
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Экспортные процедуры и функции, предназначенные для использования другими
|
||||
// объектами конфигурации или другими программами
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
Процедура ИсполняемыеСценарии() Экспорт
|
||||
|
||||
ЮТТесты.ВТранзакции()
|
||||
.ДобавитьТест("ЗаполнитьСправочник")
|
||||
.ДобавитьТест("ЗаполнитьДокумент")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЗаполнитьСправочник() Экспорт
|
||||
|
||||
#Если Сервер Тогда
|
||||
Конструктор = ЮТест.Данные().КонструкторОбъекта(Справочники.Товары);
|
||||
#Иначе
|
||||
Конструктор = ЮТест.Данные().КонструкторОбъекта("Справочники.Товары");
|
||||
#КонецЕсли
|
||||
|
||||
Конструктор
|
||||
.Фикция("Наименование")
|
||||
.Фикция("Артикул")
|
||||
.Фикция("Поставщик")
|
||||
.Фикция("Вид");
|
||||
|
||||
ДанныеОбъекта = Конструктор.ДанныеОбъекта();
|
||||
ЮТест.ОжидаетЧто(ДанныеОбъекта, "Данные создаваемого объекта")
|
||||
.Свойство("Наименование").Заполнено()
|
||||
.Свойство("Артикул").Заполнено()
|
||||
.Свойство("Поставщик").Заполнено()
|
||||
.Свойство("Вид").Заполнено();
|
||||
|
||||
Ссылка = Конструктор.Записать();
|
||||
#Если Сервер Тогда
|
||||
ЮТест.ОжидаетЧто(Ссылка, "Созданный объект")
|
||||
.Заполнено()
|
||||
.ИмеетТип("СправочникСсылка.Товары")
|
||||
.Свойство("Наименование").Заполнено().Равно(ДанныеОбъекта.Наименование)
|
||||
.Свойство("Артикул").Заполнено().Равно(ДанныеОбъекта.Артикул)
|
||||
.Свойство("Поставщик").Заполнено().Равно(ДанныеОбъекта.Поставщик)
|
||||
.Свойство("Вид").Заполнено().Равно(ДанныеОбъекта.Вид);
|
||||
#КонецЕсли
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЗаполнитьДокумент() Экспорт
|
||||
|
||||
#Если Сервер Тогда
|
||||
Конструктор = ЮТест.Данные().КонструкторОбъекта(Документы.ПриходТовара);
|
||||
#Иначе
|
||||
Конструктор = ЮТест.Данные().КонструкторОбъекта("Документы.ПриходТовара");
|
||||
#КонецЕсли
|
||||
|
||||
Ссылка = Конструктор
|
||||
.Фикция("Поставщик")
|
||||
.Фикция("Склад")
|
||||
.Фикция("Валюта")
|
||||
.Фикция("Организация")
|
||||
.ТабличнаяЧасть("Товары")
|
||||
.ДобавитьСтроку()
|
||||
.Фикция("Товар")
|
||||
.Установить("Цена", ЮТест.Данные().СлучайноеПоложительноеЧисло(9999, 2))
|
||||
.Установить("Количество", ЮТест.Данные().СлучайноеПоложительноеЧисло(20))
|
||||
.Установить("Сумма", Конструктор.ДанныеСтроки().Цена * Конструктор.ДанныеСтроки().Количество)
|
||||
.ДобавитьСтроку()
|
||||
.Фикция("Товар")
|
||||
.Установить("Цена", ЮТест.Данные().СлучайноеПоложительноеЧисло(9999, 2))
|
||||
.Установить("Количество", ЮТест.Данные().СлучайноеПоложительноеЧисло(20))
|
||||
.Установить("Сумма", Конструктор.ДанныеСтроки().Цена * Конструктор.ДанныеСтроки().Количество)
|
||||
.Провести();
|
||||
|
||||
#Если Сервер Тогда
|
||||
ЮТест.ОжидаетЧто(Ссылка, "Созданный объект")
|
||||
.Заполнено()
|
||||
.ИмеетТип("ДокументСсылка.ПриходТовара")
|
||||
.Свойство("Номер").Заполнено()
|
||||
.Свойство("Поставщик").Заполнено()
|
||||
.Свойство("Склад").Заполнено()
|
||||
.Свойство("Товары").ИмеетДлину(2)
|
||||
.Свойство("Товары[0].Товар").Заполнено()
|
||||
.Свойство("Товары[0].Цена").Заполнено()
|
||||
.Свойство("Товары[0].Количество").Заполнено()
|
||||
.Свойство("Товары[0].Сумма").Заполнено()
|
||||
.Свойство("Товары[1].Товар").Заполнено()
|
||||
.Свойство("Товары[1].Цена").Заполнено()
|
||||
.Свойство("Товары[1].Количество").Заполнено()
|
||||
.Свойство("Товары[1].Сумма").Заполнено()
|
||||
.Свойство("Проведен").ЭтоИстина()
|
||||
;
|
||||
#КонецЕсли
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
#КонецОбласти
|
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="c5d2b51c-f761-4761-9d38-fc428aea76ea">
|
||||
<name>ОМ_ЮТКонструкторТестовыхДанных</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>О м конструктор тестовых данных</value>
|
||||
</synonym>
|
||||
<clientManagedApplication>true</clientManagedApplication>
|
||||
<server>true</server>
|
||||
<clientOrdinaryApplication>true</clientOrdinaryApplication>
|
||||
</mdclass:CommonModule>
|
@ -0,0 +1,63 @@
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
//
|
||||
// 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.
|
||||
//
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
|
||||
// @strict-types
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Экспортные процедуры и функции, предназначенные для использования другими
|
||||
// объектами конфигурации или другими программами
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
Процедура ИсполняемыеСценарии() Экспорт
|
||||
|
||||
ЮТТесты
|
||||
.ДобавитьТест("Фикция")
|
||||
.СПараметрами(Новый ОписаниеТипов("Число"))
|
||||
.СПараметрами(Новый ОписаниеТипов("Строка"))
|
||||
.СПараметрами(Новый ОписаниеТипов("Дата"))
|
||||
.СПараметрами(Новый ОписаниеТипов("Булево"))
|
||||
.СПараметрами(Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(3, 2, ДопустимыйЗнак.Неотрицательный)))
|
||||
.СПараметрами(Новый ОписаниеТипов("Строка", , , , Новый КвалификаторыСтроки(3)))
|
||||
.СПараметрами(Новый ОписаниеТипов("Дата", , , , , Новый КвалификаторыДаты(ЧастиДаты.Время)))
|
||||
.СПараметрами(Новый ОписаниеТипов("СправочникСсылка.Банки"))
|
||||
.СПараметрами(Новый ОписаниеТипов("ДокументСсылка.Заказ"))
|
||||
.СПараметрами(Новый ОписаниеТипов("ПеречислениеСсылка.СостоянияЗаказов"))
|
||||
.СПараметрами(Новый ОписаниеТипов("ПланВидовХарактеристикСсылка.ВидыХарактеристик"))
|
||||
.СПараметрами(Новый ОписаниеТипов("ПланВидовХарактеристикСсылка.ВидыХарактеристик, СправочникСсылка.Банки, ПеречислениеСсылка.СостоянияЗаказов"))
|
||||
.СПараметрами(Новый ОписаниеТипов("ВидДвиженияНакопления"))
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Фикция(ОписаниеТипа) Экспорт
|
||||
|
||||
Результат = ЮТТестовыеДанныеСлужебный.Фикция(ОписаниеТипа);
|
||||
|
||||
ЮТест.ОжидаетЧто(Результат)
|
||||
.Заполнено()
|
||||
.ИмеетТип(ОписаниеТипа);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
#КонецОбласти
|
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="eaa6ba9e-277f-4177-b91d-45c2af718e02">
|
||||
<name>ОМ_ЮТТестовыеДанныеСлужебный</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>О м тестовые данные служебный</value>
|
||||
</synonym>
|
||||
<clientManagedApplication>true</clientManagedApplication>
|
||||
<server>true</server>
|
||||
<clientOrdinaryApplication>true</clientOrdinaryApplication>
|
||||
</mdclass:CommonModule>
|
@ -1,6 +1,6 @@
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
//
|
||||
// Copyright 2021-2022 BIA-Technologies Limited Liability Company
|
||||
// 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.
|
||||
|
@ -1,6 +1,6 @@
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
//
|
||||
// Copyright 2021-2022 BIA-Technologies Limited Liability Company
|
||||
// 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.
|
||||
|
@ -1,6 +1,6 @@
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
//
|
||||
// Copyright 2021-2022 BIA-Technologies Limited Liability Company
|
||||
// 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.
|
||||
@ -93,7 +93,7 @@
|
||||
|
||||
Наборы = ЮТЧитатель.ЗагрузитьТесты(ПараметрыЗапуска);
|
||||
ЮТест.ОжидаетЧто(Наборы, "Прочитанные наборы расширения tests")
|
||||
.ИмеетДлину(9);
|
||||
.ИмеетДлину(11);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
//
|
||||
// Copyright 2021-2022 BIA-Technologies Limited Liability Company
|
||||
// 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.
|
||||
|
@ -23,16 +23,18 @@
|
||||
</extension>
|
||||
<languageCode>ru</languageCode>
|
||||
</languages>
|
||||
<commonModules>CommonModule.Интеграция</commonModules>
|
||||
<commonModules>CommonModule.ОМ_Мокито</commonModules>
|
||||
<commonModules>CommonModule.ОМ_МокитоОбучение</commonModules>
|
||||
<commonModules>CommonModule.ОМ_Общий</commonModules>
|
||||
<commonModules>CommonModule.ОМ_ОшибкаЗагрузкиСценариев</commonModules>
|
||||
<commonModules>CommonModule.ОМ_ЮТест</commonModules>
|
||||
<commonModules>CommonModule.ОМ_ЮТКонструкторТестовыхДанных</commonModules>
|
||||
<commonModules>CommonModule.ОМ_ЮТТестовыеДанныеСлужебный</commonModules>
|
||||
<commonModules>CommonModule.ОМ_ЮТТесты</commonModules>
|
||||
<commonModules>CommonModule.ОМ_ЮТУтверждения</commonModules>
|
||||
<commonModules>CommonModule.ОМ_ЮТФильтрация</commonModules>
|
||||
<commonModules>CommonModule.ОМ_ЮТЧитатель</commonModules>
|
||||
<commonModules>CommonModule.Интеграция</commonModules>
|
||||
<catalogs>Catalog.Встречи</catalogs>
|
||||
<catalogs>Catalog.Товары</catalogs>
|
||||
<documents>Document.ПриходТовара</documents>
|
||||
|
Loading…
Reference in New Issue
Block a user