mirror of
https://github.com/bia-technologies/yaxunit.git
synced 2025-01-05 12:50:36 +02:00
Merge pull request #268 from bia-technologies/feature/246
#246 / Получение случайного предопределенного значения
This commit is contained in:
commit
38d6ad1072
@ -1,6 +1,6 @@
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
//
|
||||
// Copyright 2021-2023 BIA-Technologies Limited Liability Company
|
||||
// Copyright 2021-2024 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.
|
||||
@ -200,6 +200,12 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция НовыйОписаниеЗапроса(ИмяТаблицы, ПредикатыУсловия, ВыбираемыеПоля) Экспорт
|
||||
|
||||
Возврат ЮТЗапросыКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, ПредикатыУсловия, ВыбираемыеПоля);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает коллекцию движений документа
|
||||
//
|
||||
// Параметры:
|
||||
|
@ -1,6 +1,6 @@
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
//
|
||||
// Copyright 2021-2023 BIA-Technologies Limited Liability Company
|
||||
// Copyright 2021-2024 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.
|
||||
@ -52,6 +52,7 @@
|
||||
ТипЗначения = ТипЗнч(Значение);
|
||||
|
||||
Если ТипЗначения = Тип("Структура") И ЭтоОписаниеОбъектаМетаданных(Значение) Тогда
|
||||
//@skip-check constructor-function-return-section
|
||||
Возврат Значение;
|
||||
КонецЕсли;
|
||||
|
||||
@ -70,13 +71,23 @@
|
||||
|
||||
Если ТипЗначения = ТипТип Тогда
|
||||
ИдентификаторТипа = ЮТТипыДанныхСлужебный.ИдентификаторТипа(Значение); // Для работы кэширования
|
||||
//@skip-check constructor-function-return-section
|
||||
Возврат ЮТМетаданныеПовтИсп.ОписаниеОбъектаМетаданныхПоИдентификаторуТипа(ИдентификаторТипа);
|
||||
Иначе
|
||||
//@skip-check constructor-function-return-section
|
||||
Возврат ЮТМетаданныеПовтИсп.ОписаниеОбъектаМетаданных(Значение);
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция НормализованноеИмяТаблицы(Значение) Экспорт
|
||||
|
||||
Описание = ОписаниеОбъектаМетаданных(Значение);
|
||||
|
||||
Возврат СтрШаблон("%1.%2", Описание.ОписаниеТипа.Имя, Описание.Имя);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ЭтоОписаниеОбъектаМетаданных(Параметры) Экспорт
|
||||
|
||||
Возврат ЮТОбщий.ЭтаСтруктураИмеетТип(Параметры, "ОписаниеОбъектаМетаданных");
|
||||
|
@ -863,7 +863,7 @@
|
||||
|
||||
Функция НеподдерживаемыйПараметрМетода(ИмяМетода, ЗначениеПараметра) Экспорт
|
||||
|
||||
Возврат СтрШаблон("Неподдерживаемый параметры метода `%1` `%2`(%3)", ИмяМетода, ЗначениеПараметра, ТипЗнч(ЗначениеПараметра));
|
||||
Возврат СтрШаблон("Неподдерживаемый параметр метода `%1` `%2`(%3)", ИмяМетода, ЗначениеПараметра, ТипЗнч(ЗначениеПараметра));
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
//
|
||||
// Copyright 2021-2023 BIA-Technologies Limited Liability Company
|
||||
// Copyright 2021-2024 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.
|
||||
@ -315,12 +315,24 @@
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
// Инициализирует конструктор предиката
|
||||
// Параметры:
|
||||
// Условия - Структура, Соответствие из Произвольный - Набор условий, которыми инициализируется предикат
|
||||
// Ключ - Строка - Имя реквизита
|
||||
// Значение - Произвольный - Значение, которому должен быть равен реквизит
|
||||
//
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ОбщийМодуль - Этот модуль для замыкания
|
||||
Функция Инициализировать() Экспорт
|
||||
Функция Инициализировать(Условия = Неопределено) Экспорт
|
||||
|
||||
ЮТКонтекст.УстановитьЗначениеКонтекста(КлючКонтекста(), НовыйКонтекст());
|
||||
|
||||
Если ЗначениеЗаполнено(Условия) Тогда
|
||||
Для Каждого Элемент Из Условия Цикл
|
||||
Реквизит(Элемент.Ключ).Равно(Элемент.Значение);
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ЮТПредикаты;
|
||||
|
||||
КонецФункции
|
||||
|
@ -309,6 +309,21 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает случайное предопреленное значения объекта конфигурации.
|
||||
//
|
||||
// Параметры:
|
||||
// Менеджер - Строка - Имя менеджера. Примеры: "Справочники.ВидыЦен", "Справочник.ВидыЦен"
|
||||
// - Произвольный - Менеджер объекта метаданных. Примеры: Справочники.ВидыЦен
|
||||
// Отбор - Структура, Соответствие из Произвольный - Отбора поиска предопределенных значений (сравнение на равенство)
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ПеречислениеСсылка
|
||||
Функция СлучайноеПредопределенноеЗначение(Менеджер, Отбор = Неопределено) Экспорт
|
||||
|
||||
Возврат ЮТТестовыеДанныеВызовСервера.СлучайноеПредопределенноеЗначение(Менеджер, Отбор);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает случайный номер телефона.
|
||||
//
|
||||
// Параметры:
|
||||
@ -526,8 +541,8 @@
|
||||
// * При использовании на клиенте все значения должны быть сериализуемыми.
|
||||
//
|
||||
// Параметры:
|
||||
// Менеджер - Строка - Имя менеджера. Примеры: Справочники.Товары, Документы.ПриходТоваров
|
||||
//
|
||||
// Менеджер - Строка - Имя менеджера. Примеры: "Справочники.Товары", "Документы.ПриходТоваров"
|
||||
// - Произвольный - Менеджер объекта метаданных. Примеры: Справочники.Товары, Документы.ПриходТоваров
|
||||
// Возвращаемое значение:
|
||||
// ОбработкаОбъект.ЮТКонструкторТестовыхДанных
|
||||
Функция КонструкторОбъекта(Менеджер) Экспорт
|
||||
|
@ -201,6 +201,29 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СлучайноеПредопределенноеЗначение(Менеджер, Отбор) Экспорт
|
||||
|
||||
ИмяТаблицы = ЮТМетаданные.НормализованноеИмяТаблицы(Менеджер);
|
||||
Условия = ЮТест.Предикат(Отбор)
|
||||
.Реквизит("Предопределенный").Равно(Истина);
|
||||
|
||||
ОписаниеЗапроса = ЮТЗапросыКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Условия, "Ссылка");
|
||||
|
||||
Данные = ЮТЗапросы.РезультатЗапроса(ОписаниеЗапроса);
|
||||
|
||||
Если Данные.Количество() = 1 Тогда
|
||||
Значение = Данные[0].Ссылка;
|
||||
ИначеЕсли Данные.Количество() > 1 Тогда
|
||||
Индекс = ЮТест.Данные().СлучайноеЧисло(0, Данные.Количество() - 1);
|
||||
Значение = Данные[Индекс].Ссылка;
|
||||
Иначе
|
||||
Значение = Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Значение;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура УстановитьЗначенияРеквизитов(Знач Ссылка, Знач ЗначенияРеквизитов, Знач ПараметрыЗаписи = Неопределено) Экспорт
|
||||
|
||||
Объект = Ссылка.ПолучитьОбъект();
|
||||
|
@ -1,6 +1,6 @@
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
//
|
||||
// Copyright 2021-2023 BIA-Technologies Limited Liability Company
|
||||
// Copyright 2021-2024 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.
|
||||
@ -61,11 +61,16 @@
|
||||
|
||||
// Возвращает API для формирования предикатов/утверждений, которые могут быть использованы для проверки коллекций.
|
||||
//
|
||||
// Параметры:
|
||||
// Условия - Структура, Соответствие из Произвольный - Набор условий, которыми инициализируется предикат
|
||||
// Ключ - Строка - Имя реквизита
|
||||
// Значение - Произвольный - Значение, которому должен быть равен реквизит
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ОбщийМодуль - см. ЮТПредикаты.
|
||||
Функция Предикат() Экспорт
|
||||
// ОбщийМодуль - См. ЮТПредикаты.
|
||||
Функция Предикат(Условия = Неопределено) Экспорт
|
||||
|
||||
Возврат ЮТПредикаты.Инициализировать();
|
||||
Возврат ЮТПредикаты.Инициализировать(Условия);
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
//
|
||||
// Copyright 2021-2023 BIA-Technologies Limited Liability Company
|
||||
// Copyright 2021-2024 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,6 +23,7 @@
|
||||
ЮТТесты
|
||||
.ДобавитьТест("ОписаниеОбъектаМетаданных")
|
||||
.ДобавитьТест("РегистрыДвиженийДокумента")
|
||||
.ДобавитьТест("НормализованноеИмяТаблицы")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
@ -71,6 +72,30 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура НормализованноеИмяТаблицы() Экспорт
|
||||
|
||||
Варианты = ЮТОбщий.ЗначениеВМассиве("Справочник.Банки", "Справочники.Банки", ПредопределенноеЗначение("Справочник.Банки.ПустаяСсылка"));
|
||||
|
||||
#Если Сервер Тогда
|
||||
Варианты.Добавить(Справочники.Банки);
|
||||
Варианты.Добавить(Справочники.Банки.СоздатьЭлемент());
|
||||
#КонецЕсли
|
||||
|
||||
Для Каждого Вариант Из Варианты Цикл
|
||||
|
||||
Описание = СтрШаблон("%1 (%2)", Вариант, ТипЗнч(Вариант));
|
||||
ФактическоеЗначение = ЮТМетаданные.НормализованноеИмяТаблицы(Вариант);
|
||||
|
||||
ЮТест.ОжидаетЧто(ФактическоеЗначение, Описание).Равно("Справочник.Банки");
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
ЮТест.ОжидаетЧто(ЮТМетаданные)
|
||||
.Метод("НормализованноеИмяТаблицы").Параметр("123")
|
||||
.ВыбрасываетИсключение("Неподдерживаемый параметр метода");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
@ -47,6 +47,7 @@
|
||||
.СПараметрами(Новый ОписаниеТипов("СправочникСсылка.Банки"))
|
||||
.СПараметрами(Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(3, 1, ДопустимыйЗнак.Неотрицательный)))
|
||||
.СПараметрами(Новый ОписаниеТипов("СправочникСсылка.Банки, ДокументСсылка.Заказ"))
|
||||
.ДобавитьТест("СлучайноеПредопределенноеЗначение")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
@ -516,4 +517,18 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура СлучайноеПредопределенноеЗначение() Экспорт
|
||||
|
||||
ОжидаемоеЗначение = ПредопределенноеЗначение("Справочник.ВидыЦен.Закупочная");
|
||||
Значение = ЮТест.Данные().СлучайноеПредопределенноеЗначение("Справочники.ВидыЦен");
|
||||
ЮТест.ОжидаетЧто(Значение).Равно(ОжидаемоеЗначение);
|
||||
|
||||
Значение = ЮТест.Данные().СлучайноеПредопределенноеЗначение("Справочники.ВидыЦен", Новый Структура("ПометкаУдаления", Ложь));
|
||||
ЮТест.ОжидаетЧто(Значение).Равно(ОжидаемоеЗначение);
|
||||
|
||||
Значение = ЮТест.Данные().СлучайноеПредопределенноеЗначение("Справочники.ВидыЦен", Новый Структура("ПометкаУдаления", Истина));
|
||||
ЮТест.ОжидаетЧто(Значение).Равно(Неопределено);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
Loading…
Reference in New Issue
Block a user