diff --git a/exts/yaxunit/src/CommonModules/ЮТЗапросы/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТЗапросы/Module.bsl index c7b85639..65dc068c 100644 --- a/exts/yaxunit/src/CommonModules/ЮТЗапросы/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТЗапросы/Module.bsl @@ -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 @@ КонецФункции +Функция НовыйОписаниеЗапроса(ИмяТаблицы, ПредикатыУсловия, ВыбираемыеПоля) Экспорт + + Возврат ЮТЗапросыКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, ПредикатыУсловия, ВыбираемыеПоля); + +КонецФункции + // Возвращает коллекцию движений документа // // Параметры: diff --git a/exts/yaxunit/src/CommonModules/ЮТМетаданные/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТМетаданные/Module.bsl index 30cda169..b4e9ea16 100644 --- a/exts/yaxunit/src/CommonModules/ЮТМетаданные/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТМетаданные/Module.bsl @@ -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", Описание.ОписаниеТипа.Имя, Описание.Имя); + +КонецФункции + Функция ЭтоОписаниеОбъектаМетаданных(Параметры) Экспорт Возврат ЮТОбщий.ЭтаСтруктураИмеетТип(Параметры, "ОписаниеОбъектаМетаданных"); diff --git a/exts/yaxunit/src/CommonModules/ЮТОбщий/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТОбщий/Module.bsl index b50037b5..9232c484 100644 --- a/exts/yaxunit/src/CommonModules/ЮТОбщий/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТОбщий/Module.bsl @@ -863,7 +863,7 @@ Функция НеподдерживаемыйПараметрМетода(ИмяМетода, ЗначениеПараметра) Экспорт - Возврат СтрШаблон("Неподдерживаемый параметры метода `%1` `%2`(%3)", ИмяМетода, ЗначениеПараметра, ТипЗнч(ЗначениеПараметра)); + Возврат СтрШаблон("Неподдерживаемый параметр метода `%1` `%2`(%3)", ИмяМетода, ЗначениеПараметра, ТипЗнч(ЗначениеПараметра)); КонецФункции diff --git a/exts/yaxunit/src/CommonModules/ЮТПредикаты/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТПредикаты/Module.bsl index 7fb765c3..025636fb 100644 --- a/exts/yaxunit/src/CommonModules/ЮТПредикаты/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТПредикаты/Module.bsl @@ -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 @@ #Область СлужебныеПроцедурыИФункции // Инициализирует конструктор предиката +// Параметры: +// Условия - Структура, Соответствие из Произвольный - Набор условий, которыми инициализируется предикат +// Ключ - Строка - Имя реквизита +// Значение - Произвольный - Значение, которому должен быть равен реквизит +// // // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания -Функция Инициализировать() Экспорт +Функция Инициализировать(Условия = Неопределено) Экспорт ЮТКонтекст.УстановитьЗначениеКонтекста(КлючКонтекста(), НовыйКонтекст()); + + Если ЗначениеЗаполнено(Условия) Тогда + Для Каждого Элемент Из Условия Цикл + Реквизит(Элемент.Ключ).Равно(Элемент.Значение); + КонецЦикла; + КонецЕсли; + Возврат ЮТПредикаты; КонецФункции diff --git a/exts/yaxunit/src/CommonModules/ЮТТестовыеДанные/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТТестовыеДанные/Module.bsl index 11862d8f..97d9a2d3 100644 --- a/exts/yaxunit/src/CommonModules/ЮТТестовыеДанные/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТТестовыеДанные/Module.bsl @@ -309,6 +309,21 @@ КонецФункции +// Возвращает случайное предопреленное значения объекта конфигурации. +// +// Параметры: +// Менеджер - Строка - Имя менеджера. Примеры: "Справочники.ВидыЦен", "Справочник.ВидыЦен" +// - Произвольный - Менеджер объекта метаданных. Примеры: Справочники.ВидыЦен +// Отбор - Структура, Соответствие из Произвольный - Отбора поиска предопределенных значений (сравнение на равенство) +// +// Возвращаемое значение: +// ПеречислениеСсылка +Функция СлучайноеПредопределенноеЗначение(Менеджер, Отбор = Неопределено) Экспорт + + Возврат ЮТТестовыеДанныеВызовСервера.СлучайноеПредопределенноеЗначение(Менеджер, Отбор); + +КонецФункции + // Возвращает случайный номер телефона. // // Параметры: @@ -526,8 +541,8 @@ // * При использовании на клиенте все значения должны быть сериализуемыми. // // Параметры: -// Менеджер - Строка - Имя менеджера. Примеры: Справочники.Товары, Документы.ПриходТоваров -// +// Менеджер - Строка - Имя менеджера. Примеры: "Справочники.Товары", "Документы.ПриходТоваров" +// - Произвольный - Менеджер объекта метаданных. Примеры: Справочники.Товары, Документы.ПриходТоваров // Возвращаемое значение: // ОбработкаОбъект.ЮТКонструкторТестовыхДанных Функция КонструкторОбъекта(Менеджер) Экспорт diff --git a/exts/yaxunit/src/CommonModules/ЮТТестовыеДанныеВызовСервера/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТТестовыеДанныеВызовСервера/Module.bsl index f54c54ee..04717e6f 100644 --- a/exts/yaxunit/src/CommonModules/ЮТТестовыеДанныеВызовСервера/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТТестовыеДанныеВызовСервера/Module.bsl @@ -201,6 +201,29 @@ КонецФункции +Функция СлучайноеПредопределенноеЗначение(Менеджер, Отбор) Экспорт + + ИмяТаблицы = ЮТМетаданные.НормализованноеИмяТаблицы(Менеджер); + Условия = ЮТест.Предикат(Отбор) + .Реквизит("Предопределенный").Равно(Истина); + + ОписаниеЗапроса = ЮТЗапросыКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Условия, "Ссылка"); + + Данные = ЮТЗапросы.РезультатЗапроса(ОписаниеЗапроса); + + Если Данные.Количество() = 1 Тогда + Значение = Данные[0].Ссылка; + ИначеЕсли Данные.Количество() > 1 Тогда + Индекс = ЮТест.Данные().СлучайноеЧисло(0, Данные.Количество() - 1); + Значение = Данные[Индекс].Ссылка; + Иначе + Значение = Неопределено; + КонецЕсли; + + Возврат Значение; + +КонецФункции + Процедура УстановитьЗначенияРеквизитов(Знач Ссылка, Знач ЗначенияРеквизитов, Знач ПараметрыЗаписи = Неопределено) Экспорт Объект = Ссылка.ПолучитьОбъект(); diff --git a/exts/yaxunit/src/CommonModules/ЮТест/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТест/Module.bsl index 9d191f04..b67c7b47 100644 --- a/exts/yaxunit/src/CommonModules/ЮТест/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТест/Module.bsl @@ -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 для формирования предикатов/утверждений, которые могут быть использованы для проверки коллекций. // +// Параметры: +// Условия - Структура, Соответствие из Произвольный - Набор условий, которыми инициализируется предикат +// Ключ - Строка - Имя реквизита +// Значение - Произвольный - Значение, которому должен быть равен реквизит +// // Возвращаемое значение: -// ОбщийМодуль - см. ЮТПредикаты. -Функция Предикат() Экспорт +// ОбщийМодуль - См. ЮТПредикаты. +Функция Предикат(Условия = Неопределено) Экспорт - Возврат ЮТПредикаты.Инициализировать(); + Возврат ЮТПредикаты.Инициализировать(Условия); КонецФункции diff --git a/tests/src/CommonModules/ОМ_ЮТМетаданные/Module.bsl b/tests/src/CommonModules/ОМ_ЮТМетаданные/Module.bsl index 254755bc..4b994aea 100644 --- a/tests/src/CommonModules/ОМ_ЮТМетаданные/Module.bsl +++ b/tests/src/CommonModules/ОМ_ЮТМетаданные/Module.bsl @@ -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") + .ВыбрасываетИсключение("Неподдерживаемый параметр метода"); + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git a/tests/src/CommonModules/ОМ_ЮТТестовыеДанные/Module.bsl b/tests/src/CommonModules/ОМ_ЮТТестовыеДанные/Module.bsl index c6afcc16..b867b035 100644 --- a/tests/src/CommonModules/ОМ_ЮТТестовыеДанные/Module.bsl +++ b/tests/src/CommonModules/ОМ_ЮТТестовыеДанные/Module.bsl @@ -47,6 +47,7 @@ .СПараметрами(Новый ОписаниеТипов("СправочникСсылка.Банки")) .СПараметрами(Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(3, 1, ДопустимыйЗнак.Неотрицательный))) .СПараметрами(Новый ОписаниеТипов("СправочникСсылка.Банки, ДокументСсылка.Заказ")) + .ДобавитьТест("СлучайноеПредопределенноеЗначение") ; КонецПроцедуры @@ -516,4 +517,18 @@ КонецПроцедуры +Процедура СлучайноеПредопределенноеЗначение() Экспорт + + ОжидаемоеЗначение = ПредопределенноеЗначение("Справочник.ВидыЦен.Закупочная"); + Значение = ЮТест.Данные().СлучайноеПредопределенноеЗначение("Справочники.ВидыЦен"); + ЮТест.ОжидаетЧто(Значение).Равно(ОжидаемоеЗначение); + + Значение = ЮТест.Данные().СлучайноеПредопределенноеЗначение("Справочники.ВидыЦен", Новый Структура("ПометкаУдаления", Ложь)); + ЮТест.ОжидаетЧто(Значение).Равно(ОжидаемоеЗначение); + + Значение = ЮТест.Данные().СлучайноеПредопределенноеЗначение("Справочники.ВидыЦен", Новый Структура("ПометкаУдаления", Истина)); + ЮТест.ОжидаетЧто(Значение).Равно(Неопределено); + +КонецПроцедуры + #КонецОбласти