1
0
mirror of https://github.com/bia-technologies/yaxunit.git synced 2025-03-17 20:48:01 +02:00

Merge pull request #100 from bia-technologies/feature/90

Создание групп
This commit is contained in:
Koryakin Aleksey 2023-05-24 12:13:30 +03:00 committed by GitHub
commit 86ec7de6a8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 85 additions and 53 deletions

View File

@ -175,12 +175,11 @@
Функция ЗначениеСтруктуры(Знач ИсходнаяСтруктура, ИмяПоля, Знач ЗначениеПоУмолчанию = Неопределено, ПроверятьЗаполненность = Ложь) Экспорт
Если ПустаяСтрока(ИмяПоля) Тогда
Возврат ЗначениеПоУмолчанию;
КонецЕсли;
ЗначениеПоля = Неопределено;
Если ИсходнаяСтруктура.Свойство(ИмяПоля, ЗначениеПоля) Тогда
Если ПроверятьЗаполненность И ЗначениеЗаполнено(ЗначениеПоля) Или Не ПроверятьЗаполненность Тогда
Возврат ЗначениеПоля;

View File

@ -29,8 +29,19 @@
// ЛюбаяСсылка - Ссылка на созданный объект
Функция СоздатьЭлемент(Менеджер, Наименование = Неопределено, Реквизиты = Неопределено) Экспорт
Ссылка = ЮТТестовыеДанныеВызовСервера.СоздатьЭлемент(Менеджер, Наименование, Реквизиты);
Если Реквизиты <> Неопределено Тогда
Данные = Реквизиты;
Иначе
Данные = Новый Структура;
КонецЕсли;
Если ЗначениеЗаполнено(Наименование) Тогда
Данные.Вставить("Наименование", Наименование);
КонецЕсли;
Ссылка = ЮТТестовыеДанныеВызовСервера.СоздатьЗапись(Менеджер, Данные, Неопределено, Ложь);
ЮТТестовыеДанныеСлужебный.ДобавитьТестовуюЗапись(Ссылка);
Возврат Ссылка;
КонецФункции
@ -45,12 +56,48 @@
// ДокументСсылка - Ссылка на созданный объект
Функция СоздатьДокумент(Менеджер, Реквизиты = Неопределено) Экспорт
Ссылка = ЮТТестовыеДанныеВызовСервера.СоздатьДокумент(Менеджер, Реквизиты);
Если Реквизиты <> Неопределено Тогда
Данные = Реквизиты;
Иначе
Данные = Новый Структура;
КонецЕсли;
Если Данные.Свойство("РежимЗаписи") Тогда
ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи();
ПараметрыЗаписи.РежимЗаписи = Данные.РежимЗаписи;
Данные.Удалить("РежимЗаписи");
КонецЕсли;
Ссылка = ЮТТестовыеДанныеВызовСервера.СоздатьЗапись(Менеджер, Данные, ПараметрыЗаписи, Ложь);
ЮТТестовыеДанныеСлужебный.ДобавитьТестовуюЗапись(Ссылка);
Возврат Ссылка;
КонецФункции
// Создает новую группу
//
// Параметры:
// Менеджер - Произвольный - Менеджер справочника/ПВХ и тд.
// Наименование - Строка, Неопределено - Наименование элемента
// Реквизиты - Структура, Неопределено - Значения реквизитов элемента
//
// Возвращаемое значение:
// ЛюбаяСсылка - Ссылка на созданную группу
Функция СоздатьГруппу(Менеджер, Наименование = Неопределено, Реквизиты = Неопределено) Экспорт
Если Реквизиты <> Неопределено Тогда
Данные = Реквизиты;
Иначе
Данные = Новый Структура;
КонецЕсли;
Данные.Вставить("ЭтоГруппа", Истина);
Возврат СоздатьЭлемент(Менеджер, Наименование, Данные);
КонецФункции
// Генерирует и возвращает случайное число.
//
// Параметры:

View File

@ -18,49 +18,6 @@
#Область СлужебныйПрограммныйИнтерфейс
Функция СоздатьЭлемент(Знач Менеджер, Знач Наименование, Знач Реквизиты) Экспорт
Менеджер = ЮТОбщий.Менеджер(Менеджер);
Объект = Менеджер.СоздатьЭлемент();
Если ЗначениеЗаполнено(Наименование) Тогда
Объект.Наименование = Наименование;
ИначеЕсли Объект.Метаданные().ДлинаНаименования > 0 Тогда
Объект.Наименование = ЮТТестовыеДанные.УникальнаяСтрока();
КонецЕсли;
Если Реквизиты <> Неопределено Тогда
ЗаполнитьЗначенияСвойств(Объект, Реквизиты);
КонецЕсли;
Если Объект.Метаданные().ДлинаКода И НЕ ЗначениеЗаполнено(Объект.Код) Тогда
Объект.УстановитьНовыйКод();
КонецЕсли;
Возврат ЗаписатьОбъект(Объект);
КонецФункции
Функция СоздатьДокумент(Знач Менеджер, Знач Реквизиты) Экспорт
РежимЗаписи = РежимЗаписиДокумента.Запись;
Менеджер = ЮТОбщий.Менеджер(Менеджер);
Объект = Менеджер.СоздатьДокумент();
Объект.Дата = ТекущаяДатаСеанса();
Объект.УстановитьНовыйНомер();
Если Реквизиты <> Неопределено Тогда
ЗаполнитьЗначенияСвойств(Объект, Реквизиты);
РежимЗаписи = ЮТОбщий.ЗначениеСтруктуры(Реквизиты, "РежимЗаписи", РежимЗаписи);
КонецЕсли;
Возврат ЗаписатьОбъект(Объект, , РежимЗаписи);
КонецФункции
Функция СоздатьЗапись(Знач Менеджер, Знач Данные, Знач ПараметрыЗаписи, Знач ВернутьОбъект) Экспорт
Менеджер = ЮТОбщий.Менеджер(Менеджер);
@ -103,7 +60,7 @@
ОписаниеОбъектаМетаданных = ЮТМетаданные.ОписаниеОбъектМетаданных(ТипЗнч(Менеджер));
Объект = СоздатьОбъект(Менеджер, ОписаниеОбъектаМетаданных.ОписаниеТипа);
Объект = СоздатьОбъект(Менеджер, ОписаниеОбъектаМетаданных.ОписаниеТипа, Данные);
ЗаполнитьЗначенияСвойств(Объект, Данные);
Если ОписаниеОбъектаМетаданных.ОписаниеТипа.ТабличныеЧасти Тогда
@ -201,7 +158,7 @@
ИмяТипаМенеджера = СтрШаблон("%1Менеджер.%2", ОписаниеТипа.Имя, ОбъектМетаданных.Имя);
Менеджер = Новый (ИмяТипаМенеджера);
Объект = СоздатьОбъект(Менеджер, ОписаниеТипа);
Объект = СоздатьОбъект(Менеджер, ОписаниеТипа, РеквизитыЗаполнения);
Если ЗначениеЗаполнено(РеквизитыЗаполнения) Тогда
ЗаполнитьЗначенияСвойств(Объект, РеквизитыЗаполнения);
@ -223,13 +180,20 @@
// См. ОписаниеМенеджера
// Менеджер - Произвольный - Менеджер
// ОписаниеТипа - см. ЮТМетаданные.ОписаниеОбъектМетаданных
//
// Данные - Структура
// Возвращаемое значение:
// Произвольный - Создать объект
Функция СоздатьОбъект(Менеджер, ОписаниеТипа)
Функция СоздатьОбъект(Менеджер, ОписаниеТипа, Данные)
Если ОписаниеТипа.Конструктор = "СоздатьЭлемент" Тогда
Результат = Менеджер.СоздатьЭлемент();
ЭтоГруппа = ?(Данные = Неопределено, Ложь, ЮТОбщий.ЗначениеСтруктуры(Данные, "ЭтоГруппа", Ложь));
Если ЭтоГруппа Тогда
Результат = Менеджер.СоздатьГруппу();
Иначе
Результат = Менеджер.СоздатьЭлемент();
КонецЕсли;
ИначеЕсли ОписаниеТипа.Конструктор = "СоздатьДокумент" Тогда
Результат = Менеджер.СоздатьДокумент();
ИначеЕсли ОписаниеТипа.Конструктор = "СоздатьСчет" Тогда

View File

@ -25,6 +25,7 @@
.ДобавитьТест("ЗаполнитьДокумент")
.ДобавитьТест("Фикция")
.ДобавитьТест("ФикцияОбязательныхПолей")
.ДобавитьТест("СоздатьГруппу")
;
КонецПроцедуры
@ -183,4 +184,15 @@
.Свойство("Курс").Заполнено();
КонецПроцедуры
Процедура СоздатьГруппу() Экспорт
Группа = ЮТест.Данные().КонструкторОбъекта("Справочники.Товары")
.Установить("ЭтоГруппа", Истина)
.Записать();
ЭтоГруппа = ЮТЗапросы.ЗначениеРеквизита(Группа, "ЭтоГруппа");
ЮТест.ОжидаетЧто(ЭтоГруппа).ЭтоИстина();
КонецПроцедуры
#КонецОбласти

View File

@ -24,7 +24,8 @@
.ВТранзакции()
.УдалениеТестовыхДанных()
.ДобавитьТест("Удалить")
.ДобавитьТест("ВариантыПараметров");
.ДобавитьТест("ВариантыПараметров")
.ДобавитьТест("СоздатьГруппу")
;
КонецПроцедуры
@ -78,5 +79,14 @@
КонецПроцедуры
Процедура СоздатьГруппу() Экспорт
Группа = ЮТест.Данные().СоздатьГруппу("Справочники.Товары");
ЭтоГруппа = ЮТЗапросы.ЗначениеРеквизита(Группа, "ЭтоГруппа");
ЮТест.ОжидаетЧто(ЭтоГруппа).ЭтоИстина();
КонецПроцедуры
#КонецОбласти