1
0
mirror of https://github.com/bia-technologies/yaxunit.git synced 2024-11-27 08:31:11 +02:00

Merge pull request #280 from bia-technologies/feature/rebuild-api

Рефакторинг движка
This commit is contained in:
Koryakin Aleksey 2024-03-11 20:23:44 +03:00 committed by GitHub
commit c6f46b972b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
175 changed files with 3843 additions and 3254 deletions

View File

@ -149,7 +149,7 @@ tags: [Начало, Утверждения]
### Проверка сложного объекта
```bsl
Объект = ЮТОбщий.ЗначениеВМассиве("1", "2", "3");
Объект = ЮТКоллекции.ЗначениеВМассиве("1", "2", "3");
ЮТУтверждения.Что(Объект, "Проверка элементов массива")
.Содержит("1")
.НеСодержит(1)
@ -162,7 +162,7 @@ tags: [Начало, Утверждения]
.НетСвойства(3)
.НеИмеетСвойства("[3]");
Объект.Добавить(Новый Структура("Первый, Второй", 1, ЮТОбщий.ЗначениеВМассиве(2)));
Объект.Добавить(Новый Структура("Первый, Второй", 1, ЮТКоллекции.ЗначениеВМассиве(2)));
ЮТУтверждения.Что(Объект, "Проверка свойства элемента массива")
.Свойство("[3].Первый").Равно(1)
.Свойство("[3].Второй[-1]").Равно(2)
@ -173,14 +173,14 @@ tags: [Начало, Утверждения]
```bsl
ЮТУтверждения.Что(ОМ_ЮТУтверждения)
.Метод("МетодБезИсключение", ЮТОбщий.ЗначениеВМассиве("Исключение"))
.Метод("МетодБезИсключение", ЮТКоллекции.ЗначениеВМассиве("Исключение"))
.НеВыбрасываетИсключение()
.НеВыбрасываетИсключение("Ожидаемое исключение");
ЮТУтверждения.Что(ОМ_ЮТУтверждения)
.Метод("МетодИсключение", ЮТОбщий.ЗначениеВМассиве("Исключение", 2))
.Метод("МетодИсключение", ЮТКоллекции.ЗначениеВМассиве("Исключение", 2))
.ВыбрасываетИсключение("Слишком много фактических параметров");
ЮТУтверждения.Что(ОМ_ЮТУтверждения)
.Метод("МетодИсключение", ЮТОбщий.ЗначениеВМассиве("Исключение"))
.Метод("МетодИсключение", ЮТКоллекции.ЗначениеВМассиве("Исключение"))
.ВыбрасываетИсключение("Исключение");
ЮТУтверждения.Что(ОМ_ЮТУтверждения)
.Метод("МетодБезИсключение")
@ -196,7 +196,7 @@ tags: [Начало, Утверждения]
Объект.Вставить("Число", 1);
Объект.Вставить("Строка", "1");
Объект.Вставить("Дата", Дата);
Объект.Вставить("Массив", ЮТОбщий.ЗначениеВМассиве(1, "1"));
Объект.Вставить("Массив", ЮТКоллекции.ЗначениеВМассиве(1, "1"));
ПроверкаЧисла = ЮТест.Предикат().Реквизит("Число")
.ИмеетТип(Тип("Число"))

View File

@ -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.
@ -197,17 +197,17 @@
Параметр8 = "_!%*",
Параметр9 = "_!%*",
Параметр10 = "_!%*") Экспорт
Возврат ЮТОбщий.ЗначениеВМассиве(Параметр1,
Параметр2,
Параметр3,
Параметр4,
Параметр5,
Параметр6,
Параметр7,
Параметр8,
Параметр9,
Параметр10);
Возврат ЮТКоллекции.ЗначениеВМассиве(Параметр1,
Параметр2,
Параметр3,
Параметр4,
Параметр5,
Параметр6,
Параметр7,
Параметр8,
Параметр9,
Параметр10);
КонецФункции

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<suppress:SuppressGenericObject xmlns:suppress="http://g5.1c.ru/v8/dt/check/suppress/model" fqn="CommonModule.Мокито">
<suppressions key="com.e1c.v8codestyle.md:extension-md-object-prefix" value="true"/>
</suppress:SuppressGenericObject>

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<suppress:SuppressGenericObject xmlns:suppress="http://g5.1c.ru/v8/dt/check/suppress/model" fqn="CommonModule.МокитоОбучение">
<suppressions key="com.e1c.v8codestyle.md:extension-md-object-prefix" value="true"/>
</suppress:SuppressGenericObject>

View File

@ -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.
@ -244,7 +244,7 @@
СтруктураВызоваМетода = ПараметрыПроверки().СтруктураВызоваМетода;
Объект = СтруктураВызоваМетода.Объект;
ПредставлениеТипа = ЮТОбщий.ПредставлениеТипа(ТипЗнч(Объект));
ПредставлениеТипа = ЮТТипыДанныхСлужебный.ПредставлениеТипа(ТипЗнч(Объект));
Возврат СтрШаблон(" - вызовы метода `%1(%2).%3`,", Объект, ПредставлениеТипа, СтруктураВызоваМетода.ИмяМетода);
КонецФункции

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<suppress:SuppressGenericObject xmlns:suppress="http://g5.1c.ru/v8/dt/check/suppress/model" fqn="CommonModule.МокитоПроверки">
<suppressions key="com.e1c.v8codestyle.md:extension-md-object-prefix" value="true"/>
</suppress:SuppressGenericObject>

View File

@ -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.
@ -20,7 +20,7 @@
Функция Включен() Экспорт
ДанныеКонтекста = ЮТКонтекст.ДанныеКонтекста();
ДанныеКонтекста = ЮТКонтекстСлужебный.ДанныеКонтекста();
Настройки = Неопределено;
Возврат ДанныеКонтекста <> Неопределено И ДанныеКонтекста.Свойство(КлючНастроек(), Настройки) И Настройки <> Неопределено;
@ -40,7 +40,7 @@
// см. НовыеНастройки
Функция Настройки() Экспорт
Настройки = ЮТКонтекст.ЗначениеКонтекста(КлючНастроек());
Настройки = ЮТКонтекстСлужебный.ЗначениеКонтекста(КлючНастроек());
Если Настройки = Неопределено Тогда
ВызватьИсключение "Что-то пошло не так, настройки Мокито не инициализированы";
@ -206,7 +206,7 @@
ИначеЕсли Условие.Режим = ТипыУсловий.Значение Тогда
Совпадает = ЮТСравнениеКлиентСервер.ЗначенияРавны(Условие.Значение, Параметр);
Совпадает = ЮТСравнениеСлужебныйКлиентСервер.ЗначенияРавны(Условие.Значение, Параметр);
ИначеЕсли Условие.Режим = ТипыУсловий.Тип Тогда
@ -218,7 +218,7 @@
ИначеЕсли Условие.Режим = ТипыУсловий.Предикат Тогда
Результат = ЮТПредикатыКлиентСервер.ПроверитьПредикаты(Параметр, Условие.Предикат);
Результат = ЮТПредикатыСлужебныйКлиентСервер.ПроверитьПредикаты(Параметр, Условие.Предикат);
Совпадает = Результат.Успешно;
КонецЕсли;
@ -531,7 +531,7 @@
Процедура ИнициализироватьНастройки() Экспорт
ЮТКонтекст.УстановитьЗначениеКонтекста(КлючНастроек(), НовыеНастройки(), Истина);
ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(КлючНастроек(), НовыеНастройки(), Истина);
КонецПроцедуры
@ -568,7 +568,7 @@
Процедура ОчиститьНастройки() Экспорт
ЮТКонтекст.УстановитьЗначениеКонтекста(КлючНастроек(), Неопределено);
ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(КлючНастроек(), Неопределено);
КонецПроцедуры
@ -611,10 +611,10 @@
Условия.Добавить(Параметр);
ИначеЕсли ЮТПредикатыКлиентСервер.ЭтоПредикат(Параметр) Тогда
ИначеЕсли ЮТПредикатыСлужебныйКлиентСервер.ЭтоПредикат(Параметр) Тогда
Маска = ОписаниеМаскиПараметра(ТипыУсловий.Предикат, 90);
Маска.Вставить("Предикат", ЮТПредикатыКлиентСервер.НаборПредикатов(Параметр));
Маска.Вставить("Предикат", ЮТПредикатыСлужебныйКлиентСервер.НаборПредикатов(Параметр));
Условия.Добавить(Маска);
Иначе
@ -672,7 +672,7 @@
И Элемент.Ключ.Ссылка = Ссылка
И Элемент.Значение.Свойство(ИмяМетода);
Если ПодходящийЭлемент Тогда
ЮТОбщий.ДополнитьМассив(СтатистикаВызововМетода, Элемент.Значение[ИмяМетода]);
ЮТКоллекции.ДополнитьМассив(СтатистикаВызововМетода, Элемент.Значение[ИмяМетода]);
КонецЕсли;
КонецЦикла;
@ -700,7 +700,7 @@
ПодходящийЭлемент = ТипЗнч(Элемент.Ключ) = ТипОбъекта
И Элемент.Значение.Свойство(ИмяМетода);
Если ПодходящийЭлемент Тогда
ЮТОбщий.ДополнитьМассив(СтатистикаВызововМетода, Элемент.Значение[ИмяМетода]);
ЮТКоллекции.ДополнитьМассив(СтатистикаВызововМетода, Элемент.Значение[ИмяМетода]);
КонецЕсли;
КонецЦикла;

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<suppress:SuppressGenericObject xmlns:suppress="http://g5.1c.ru/v8/dt/check/suppress/model" fqn="CommonModule.МокитоСлужебный">
<suppressions key="com.e1c.v8codestyle.md:extension-md-object-prefix" value="true"/>
</suppress:SuppressGenericObject>

View File

@ -35,7 +35,7 @@
Функция ЗначенияРеквизитов(Ссылка, ИменаРеквизитов) Экспорт
//@skip-check constructor-function-return-section
Возврат ЮТЗапросыВызовСервера.ЗначенияРеквизитов(Ссылка, ИменаРеквизитов, Ложь);
Возврат ЮТЗапросыСлужебныйВызовСервера.ЗначенияРеквизитов(Ссылка, ИменаРеквизитов, Ложь);
КонецФункции
@ -49,7 +49,7 @@
// Произвольный - Значение реквизита ссылки
Функция ЗначениеРеквизита(Ссылка, ИмяРеквизита) Экспорт
Возврат ЮТЗапросыВызовСервера.ЗначенияРеквизитов(Ссылка, ИмяРеквизита, Истина);
Возврат ЮТЗапросыСлужебныйВызовСервера.ЗначенияРеквизитов(Ссылка, ИмяРеквизита, Истина);
КонецФункции
@ -65,9 +65,9 @@
// Структура, Неопределено - Содержит все данные записи, включая табличный части
Функция Запись(ИмяТаблицы, Предикат) Экспорт
ОписаниеЗапроса = ЮТЗапросыКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Предикат, "*");
ОписаниеЗапроса = ЮТЗапросыСлужебныйКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Предикат, "*");
//@skip-check constructor-function-return-section
Возврат ЮТЗапросыВызовСервера.Записи(ОписаниеЗапроса, Истина);
Возврат ЮТЗапросыСлужебныйВызовСервера.Записи(ОписаниеЗапроса, Истина);
КонецФункции
@ -83,8 +83,8 @@
// Массив из Структура - Найденные записи, включая табличный части
Функция Записи(ИмяТаблицы, Предикат) Экспорт
ОписаниеЗапроса = ЮТЗапросыКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Предикат, "*");
Возврат ЮТЗапросыВызовСервера.Записи(ОписаниеЗапроса, Ложь);
ОписаниеЗапроса = ЮТЗапросыСлужебныйКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Предикат, "*");
Возврат ЮТЗапросыСлужебныйВызовСервера.Записи(ОписаниеЗапроса, Ложь);
КонецФункции
@ -102,8 +102,8 @@
//
Функция ЗначенияРеквизитовЗаписи(ИмяТаблицы, Предикат, ИменаРеквизитов) Экспорт
ОписаниеЗапроса = ЮТЗапросыКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Предикат, ИменаРеквизитов);
Возврат ЮТЗапросыВызовСервера.ЗначенияРеквизитовЗаписи(ОписаниеЗапроса, Ложь);
ОписаниеЗапроса = ЮТЗапросыСлужебныйКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Предикат, ИменаРеквизитов);
Возврат ЮТЗапросыСлужебныйВызовСервера.ЗначенияРеквизитовЗаписи(ОписаниеЗапроса, Ложь);
КонецФункции
@ -121,9 +121,9 @@
//
Функция ЗначениеРеквизитаЗаписи(ИмяТаблицы, Предикат, ИмяРеквизита) Экспорт
ОписаниеЗапроса = ЮТЗапросыКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Предикат, ИмяРеквизита);
ОписаниеЗапроса = ЮТЗапросыСлужебныйКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Предикат, ИмяРеквизита);
//@skip-check constructor-function-return-section
Возврат ЮТЗапросыВызовСервера.ЗначенияРеквизитовЗаписи(ОписаниеЗапроса, Истина);
Возврат ЮТЗапросыСлужебныйВызовСервера.ЗначенияРеквизитовЗаписи(ОписаниеЗапроса, Истина);
КонецФункции
@ -139,7 +139,7 @@
// Булево - Таблица содержит записи
Функция ТаблицаСодержитЗаписи(ИмяТаблицы, Предикат = Неопределено) Экспорт
ОписаниеЗапроса = ЮТЗапросыКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Предикат);
ОписаниеЗапроса = ЮТЗапросыСлужебныйКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Предикат);
Возврат НЕ РезультатПустой(ОписаниеЗапроса);
КонецФункции
@ -155,9 +155,9 @@
Функция РезультатЗапроса(ОписаниеЗапроса) Экспорт
#Если Клиент Тогда
Возврат ЮТЗапросыВызовСервера.РезультатЗапроса(ОписаниеЗапроса, Истина);
Возврат ЮТЗапросыСлужебныйВызовСервера.РезультатЗапроса(ОписаниеЗапроса, Истина);
#Иначе
Возврат ЮТЗапросыВызовСервера.РезультатЗапроса(ОписаниеЗапроса, Ложь);
Возврат ЮТЗапросыСлужебныйВызовСервера.РезультатЗапроса(ОписаниеЗапроса, Ложь);
#КонецЕсли
КонецФункции
@ -171,7 +171,7 @@
// Булево - Результат пустой
Функция РезультатПустой(ОписаниеЗапроса) Экспорт
Возврат ЮТЗапросыВызовСервера.РезультатПустой(ОписаниеЗапроса);
Возврат ЮТЗапросыСлужебныйВызовСервера.РезультатПустой(ОписаниеЗапроса);
КонецФункции
@ -202,7 +202,7 @@
Функция НовыйОписаниеЗапроса(ИмяТаблицы, ПредикатыУсловия, ВыбираемыеПоля) Экспорт
Возврат ЮТЗапросыКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, ПредикатыУсловия, ВыбираемыеПоля);
Возврат ЮТЗапросыСлужебныйКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, ПредикатыУсловия, ВыбираемыеПоля);
КонецФункции
@ -228,10 +228,10 @@
КонецЕсли;
Предикат = ЮТест.Предикат().Реквизит("Регистратор").Равно(Документ);
ОписаниеЗапроса = ЮТЗапросыКлиентСервер.ОписаниеЗапроса(ИмяРегистра, Предикат, "*");
ОписаниеЗапроса = ЮТЗапросыСлужебныйКлиентСервер.ОписаниеЗапроса(ИмяРегистра, Предикат, "*");
ОписаниеЗапроса.Порядок.Добавить("НомерСтроки");
Возврат ЮТЗапросыВызовСервера.Записи(ОписаниеЗапроса, Ложь);
Возврат ЮТЗапросыСлужебныйВызовСервера.Записи(ОписаниеЗапроса, Ложь);
КонецФункции

View File

@ -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.
@ -156,7 +156,7 @@
Если ОписаниеЗапроса.ВыбираемыеПоля.Количество() Тогда
ВыбираемыеПоля = ОписаниеЗапроса.ВыбираемыеПоля;
Иначе
ВыбираемыеПоля = ЮТОбщий.ЗначениеВМассиве("1 КАК Поле");
ВыбираемыеПоля = ЮТКоллекции.ЗначениеВМассиве("1 КАК Поле");
КонецЕсли;
Строки.Добавить(СтрСоединить(ВыбираемыеПоля, "," + Символы.ПС));
@ -176,7 +176,7 @@
КонецЕсли;
Запрос.Текст = СтрСоединить(Строки, Символы.ПС);
ЮТОбщий.ОбъединитьВСтруктуру(Запрос.Параметры, ОписаниеЗапроса.ЗначенияПараметров);
ЮТКоллекции.ДополнитьСтруктуру(Запрос.Параметры, ОписаниеЗапроса.ЗначенияПараметров);
Возврат Запрос;
@ -276,9 +276,9 @@
Функция ШаблонУсловия(ВыражениеПредиката, ВыраженияПредикатов, ТипРеквизита)
Выражение = ВыражениеПредиката.ВидСравнения;
Отрицание = ЮТПредикатыКлиентСервер.ЭтоВыраженияОтрицания(Выражение);
Отрицание = ЮТПредикатыСлужебныйКлиентСервер.ЭтоВыраженияОтрицания(Выражение);
Если Отрицание Тогда
Выражение = ЮТПредикатыКлиентСервер.ВыраженияБезОтрицания(Выражение);
Выражение = ЮТПредикатыСлужебныйКлиентСервер.ВыраженияБезОтрицания(Выражение);
КонецЕсли;
Если Выражение = ВыраженияПредикатов.Равно Тогда
@ -323,7 +323,7 @@
ДлинаПсевдонима = СтрДлина(ПсевдонимТаблицы);
Для Каждого ВыражениеПредиката Из Предикаты Цикл
Если ЮТПредикатыКлиентСервер.ЭтоПредикат(ВыражениеПредиката) И ЗначениеЗаполнено(ВыражениеПредиката.ИмяРеквизита) Тогда
Если ЮТПредикатыСлужебныйКлиентСервер.ЭтоПредикат(ВыражениеПредиката) И ЗначениеЗаполнено(ВыражениеПредиката.ИмяРеквизита) Тогда
Реквизиты.Добавить(СтрШаблон("%1.%2 КАК _%3", ПсевдонимТаблицы, ВыражениеПредиката.ИмяРеквизита, Реквизиты.Количество()));
КонецЕсли;
КонецЦикла;
@ -337,7 +337,7 @@
Попытка
Схема.УстановитьТекстЗапроса(СтрШаблон("ВЫБРАТЬ %1 ИЗ %2 КАК %3", СтрСоединить(Реквизиты, ","), ИмяТаблицы, ПсевдонимТаблицы));
Исключение
ЮТРегистрацияОшибок.ДобавитьПояснениеОшибки("Не удалось получить типы реквизитов отбора.
ЮТРегистрацияОшибокСлужебный.ДобавитьПояснениеОшибки("Не удалось получить типы реквизитов отбора.
|Возможно имена реквизитов заданы неверно");
ВызватьИсключение;
КонецПопытки;
@ -372,7 +372,7 @@
Для Каждого Условие Из Условия Цикл
Если НЕ ЮТПредикатыКлиентСервер.ЭтоПредикат(Условие) Тогда
Если НЕ ЮТПредикатыСлужебныйКлиентСервер.ЭтоПредикат(Условие) Тогда
Результат.Добавить(Условие);
Продолжить;
КонецЕсли;

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="9115c1c4-e348-46da-820d-e61915f18fde">
<name>ЮТЗапросыВызовСервера</name>
<name>ЮТЗапросыСлужебныйВызовСервера</name>
<synonym>
<key>ru</key>
<value>Запросы вызов сервера</value>

View File

@ -29,7 +29,7 @@
КонецЕсли;
Если ПредикатыУсловия <> Неопределено Тогда
Описание.Условия = ЮТПредикатыКлиентСервер.НаборПредикатов(ПредикатыУсловия);
Описание.Условия = ЮТПредикатыСлужебныйКлиентСервер.НаборПредикатов(ПредикатыУсловия);
КонецЕсли;
Возврат Описание;
@ -45,7 +45,7 @@
ТипПараметра = ТипЗнч(ВыбираемыеПоля);
Если ТипПараметра = Тип("Строка") Тогда
ВыбираемыеПоля = ЮТОбщий.РазложитьСтрокуВМассивПодстрок(ВыбираемыеПоля, ",");
ВыбираемыеПоля = ЮТСтроки.РазделитьСтроку(ВыбираемыеПоля, ",");
ТипПараметра = Тип("Массив");
КонецЕсли;

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="6dfe96cd-f835-42f2-b5d7-561680929207">
<name>ЮТЗапросыКлиентСервер</name>
<name>ЮТЗапросыСлужебныйКлиентСервер</name>
<synonym>
<key>ru</key>
<value>Запросы клиент сервер</value>

View File

@ -16,21 +16,45 @@
//
//©///////////////////////////////////////////////////////////////////////////©//
#Область СлужебныйПрограммныйИнтерфейс
#Область ПрограммныйИнтерфейс
// Формирует текст исключения о некорректных параметрах вызова метода
//
// Параметры:
// ИмяМетода - Строка
// Пояснение - Строка
//
// Возвращаемое значение:
// Строка - Текст исключения
Функция НекорректныеПараметрыМетода(ИмяМетода, Пояснение = Неопределено) Экспорт
Сообщение = СтрШаблон("Некорректные параметры метода `%1`");
Возврат ЮТОбщий.ДобавитьСтроку(Сообщение, Пояснение, ", ");
Возврат ЮТСтроки.ДобавитьСтроку(Сообщение, Пояснение, ", ");
КонецФункции
// Формирует текст исключения о неподдерживаемом значении параметра вызова метода
//
// Параметры:
// ИмяМетода - Строка
// ЗначениеПараметра - Произвольный
//
// Возвращаемое значение:
// Строка - Текст исключения
Функция НеподдерживаемыйПараметрМетода(ИмяМетода, ЗначениеПараметра) Экспорт
Возврат СтрШаблон("Неподдерживаемый параметр метода `%1` `%2`(%3)", ИмяМетода, ЗначениеПараметра, ТипЗнч(ЗначениеПараметра));
КонецФункции
// Формирует текст исключения о недоступности метода в указанном контексте
//
// Параметры:
// ИмяМетода - Строка
// ИмяКонтекста - Строка
//
// Возвращаемое значение:
// Строка - Текст исключения
Функция МетодНеДоступен(ИмяМетода, ИмяКонтекста = "веб-клиенте") Экспорт
Возврат СтрШаблон("Метод `%1` не доступен в/на %2", ИмяМетода, ИмяКонтекста);

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<suppress:SuppressGenericObject xmlns:suppress="http://g5.1c.ru/v8/dt/check/suppress/model" fqn="CommonModule.ЮТИсполнительСервер">
<suppressions key="com.e1c.v8codestyle.md:common-module-name-server-call" value="true"/>
</suppress:SuppressGenericObject>

View File

@ -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.
@ -22,14 +22,14 @@
// Выполняет тесты наборов модуля. Возвращает результат прогона
// Это обертка для прогона на сервере
// Параметры:
// Наборы - Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов - Наборы исполняемых тестов, структуру набора см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов
// ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля
// Наборы - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов - Наборы исполняемых тестов, структуру набора см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов
// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля
//
// Возвращаемое значение:
// Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов - Результат прогона наборов тестов, структура набора см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов
// Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов - Результат прогона наборов тестов, структура набора см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов
Функция ВыполнитьГруппуНаборовТестов(Знач Наборы, Знач ТестовыйМодуль) Экспорт
Возврат ЮТИсполнительКлиентСервер.ВыполнитьГруппуНаборовТестов(Наборы, ТестовыйМодуль);
Возврат ЮТИсполнительСлужебныйКлиентСервер.ВыполнитьГруппуНаборовТестов(Наборы, ТестовыйМодуль);
КонецФункции

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="bc8637e0-b62c-49eb-9bea-bd06b7e690ae">
<name>ЮТИсполнительСервер</name>
<name>ЮТИсполнительСлужебныйВызовСервера</name>
<synonym>
<key>ru</key>
<value>Исполнитель тестов (сервер)</value>

View File

@ -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.
@ -20,7 +20,7 @@
Процедура ЮТВыполнитьМодульноеТестирование() Экспорт
ЮТИсполнительКлиент.ВыполнитьМодульноеТестирование();
ЮТИсполнительСлужебныйКлиент.ВыполнитьМодульноеТестирование();
КонецПроцедуры

View File

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="c71e5399-4012-43dd-8025-379f4211a16a">
<name>ЮТИсполнительГлобальный</name>
<name>ЮТИсполнительСлужебныйГлобальный</name>
<synonym>
<key>ru</key>
<value>Исполнитель клиент глоб</value>
<value>Исполнитель глобальный</value>
</synonym>
<global>true</global>
<clientManagedApplication>true</clientManagedApplication>

View File

@ -80,7 +80,7 @@
Продолжить;
КонецЕсли;
РежимИсполнения = ЮТФабрика.КонтекстИсполнения(Набор.Режим);
РежимИсполнения = ЮТФабрикаСлужебный.КонтекстИсполнения(Набор.Режим);
Если РежимИсполнения = КонтекстыИсполнения.Клиент Тогда
КлиентскиеНаборы.Добавить(Набор);
@ -92,20 +92,20 @@
КонецЦикла;
ТестовыйМодульОблегченный = ЮТОбщий.СкопироватьСтруктуру(ТестовыйМодуль);
ТестовыйМодульОблегченный = ЮТКоллекции.СкопироватьСтруктуру(ТестовыйМодуль);
ТестовыйМодульОблегченный.НаборыТестов = Новый Массив();
Если ЗначениеЗаполнено(КлиентскиеНаборы) Тогда
Результаты = ЮТИсполнительКлиентСервер.ВыполнитьГруппуНаборовТестов(КлиентскиеНаборы, ТестовыйМодульОблегченный);
Результаты = ЮТИсполнительСлужебныйКлиентСервер.ВыполнитьГруппуНаборовТестов(КлиентскиеНаборы, ТестовыйМодульОблегченный);
КонецЕсли;
Если ЗначениеЗаполнено(СерверныеНаборы) Тогда
Результат = ЮТИсполнительСервер.ВыполнитьГруппуНаборовТестов(СерверныеНаборы, ТестовыйМодульОблегченный);
ЮТЛогирование.ВывестиСерверныеСообщения();
ЮТОбщий.ДополнитьМассив(Результаты, Результат);
Результат = ЮТИсполнительСлужебныйВызовСервера.ВыполнитьГруппуНаборовТестов(СерверныеНаборы, ТестовыйМодульОблегченный);
ЮТЛогированиеСлужебный.ВывестиСерверныеСообщения();
ЮТКоллекции.ДополнитьМассив(Результаты, Результат);
КонецЕсли;
ЮТОбщий.ДополнитьМассив(Результаты, ПропущенныеНаборы);
ЮТКоллекции.ДополнитьМассив(Результаты, ПропущенныеНаборы);
ТестовыйМодульОблегченный.НаборыТестов = Результаты;
@ -117,6 +117,17 @@
ВызватьИсключение ТекстОшибки;
КонецПроцедуры
Процедура ВыполнитьИнициализацию(ПараметрыЗапуска) Экспорт
ЮТКонтекстСлужебный.ИнициализироватьКонтекст();
ЮТКонтекстСлужебный.УстановитьГлобальныеНастройкиВыполнения(ПараметрыЗапуска.settings);
// Повторно сохраним для передачи на сервер
ЮТКонтекстСлужебный.УстановитьГлобальныеНастройкиВыполнения(ЮТКонтекстСлужебный.ГлобальныеНастройкиВыполнения());
ЮТСобытияСлужебный.Инициализация(ПараметрыЗапуска);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@ -132,7 +143,7 @@
Процедура ОбработчикЗагрузитьПараметры(Результат, ДополнительныеПараметры) Экспорт
Обработчик = ЮТАсинхроннаяОбработкаСлужебныйКлиент.СледующийОбработчик(ДополнительныеПараметры);
ЮТПараметрыЗапуска.ПараметрыЗапуска(ДополнительныеПараметры.АргументыЗапуска, Обработчик);
ЮТПараметрыЗапускаСлужебный.ПараметрыЗапуска(ДополнительныеПараметры.АргументыЗапуска, Обработчик);
КонецПроцедуры
@ -150,18 +161,17 @@
Процедура ОбработчикИнициализация(Результат, ДополнительныеПараметры) Экспорт
ЮТСобытия.Инициализация(ДополнительныеПараметры.ПараметрыЗапуска);
ВыполнитьИнициализацию(ДополнительныеПараметры.ПараметрыЗапуска);
ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ДополнительныеПараметры);
КонецПроцедуры
Процедура ОбработчикЗагрузитьТесты(Результат, ДополнительныеПараметры) Экспорт
ЮТСобытия.ПередЧтениеСценариев();
ЮТСобытияСлужебный.ПередЧтениеСценариев();
ТестовыеМодули = ЮТЧитатель.ЗагрузитьТесты(ДополнительныеПараметры.ПараметрыЗапуска);
ЮТСобытия.ПослеЧтенияСценариев(ТестовыеМодули);
ТестовыеМодули = ЮТЧитательСлужебный.ЗагрузитьТесты(ДополнительныеПараметры.ПараметрыЗапуска);
ЮТСобытияСлужебный.ПослеЧтенияСценариев(ТестовыеМодули);
ИсполняемыеТестовыеМодули = Новый Массив();
@ -170,7 +180,7 @@
ИсполняемыеТестовыеМодули.Добавить(ИсполняемыйТестовыйМодуль);
КонецЦикла;
ЮТСобытия.ПослеФормированияИсполняемыхНаборовТестов(ИсполняемыеТестовыеМодули);
ЮТСобытияСлужебный.ПослеФормированияИсполняемыхНаборовТестов(ИсполняемыеТестовыеМодули);
ДополнительныеПараметры.ИсполняемыеТестовыеМодули = ИсполняемыеТестовыеМодули;
ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ДополнительныеПараметры, ИсполняемыеТестовыеМодули);
@ -179,7 +189,7 @@
Процедура ОбработчикВыполнитьТестирование(Результат, ДополнительныеПараметры) Экспорт
ЮТСобытия.ПередВыполнениемТестов(ДополнительныеПараметры.ИсполняемыеТестовыеМодули);
ЮТСобытияСлужебный.ПередВыполнениемТестов(ДополнительныеПараметры.ИсполняемыеТестовыеМодули);
РезультатыТестирования = Новый Массив();
@ -190,7 +200,7 @@
КонецЦикла;
ЮТСобытия.ПослеВыполненияТестов(РезультатыТестирования);
ЮТСобытияСлужебный.ПослеВыполненияТестов(РезультатыТестирования);
ДополнительныеПараметры.РезультатыТестирования = РезультатыТестирования;
ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ДополнительныеПараметры, РезультатыТестирования);
@ -201,7 +211,7 @@
Если ЗначениеЗаполнено(ДополнительныеПараметры.ПараметрыЗапуска.reportPath) Тогда
Обработчик = ЮТАсинхроннаяОбработкаСлужебныйКлиент.СледующийОбработчик(ДополнительныеПараметры);
ЮТОтчет.СформироватьОтчет(ДополнительныеПараметры.РезультатыТестирования, ДополнительныеПараметры.ПараметрыЗапуска, Обработчик);
ЮТОтчетСлужебный.СформироватьОтчет(ДополнительныеПараметры.РезультатыТестирования, ДополнительныеПараметры.ПараметрыЗапуска, Обработчик);
Иначе
ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ДополнительныеПараметры);
КонецЕсли;
@ -218,7 +228,7 @@
Процедура ОбработчикЗавершить(Результат, ДополнительныеПараметры) Экспорт
Параметры = ДополнительныеПараметры.ПараметрыЗапуска;
ЮТКонтекст.УдалитьКонтекст();
ЮТКонтекстСлужебный.УдалитьКонтекст();
Если Параметры.showReport Тогда
ПоказатьОтчет(ДополнительныеПараметры.РезультатыТестирования, Параметры);
@ -232,7 +242,7 @@
Если ДополнительныеПараметры.ПараметрыЗапуска.ПодключатьВнешниеКомпоненты Тогда
Обработчик = ЮТАсинхроннаяОбработкаСлужебныйКлиент.СледующийОбработчик(ДополнительныеПараметры);
ЮТКомпонентыКлиент.ТихаяУстановкаКомпонент(Обработчик);
ЮТКомпонентыСлужебныйКлиент.ТихаяУстановкаКомпонент(Обработчик);
Иначе
ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ДополнительныеПараметры);
КонецЕсли;
@ -243,18 +253,9 @@
#Область ОбработчикиСобытий
Процедура Инициализация(Параметры) Экспорт
ЮТКонтекст.ИнициализироватьКонтекст();
ЮТКонтекст.УстановитьГлобальныеНастройкиВыполнения(Параметры.settings);
// Повторно сохраним для передачи на сервер
ЮТКонтекст.УстановитьГлобальныеНастройкиВыполнения(ЮТКонтекст.ГлобальныеНастройкиВыполнения());
КонецПроцедуры
Процедура ПередВыполнениемТестов(ИсполняемыеМодули) Экспорт
ЮТКонтекст.УстановитьКонтекстИсполнения(ЮТФабрика.НовыйКонтекстИсполнения());
ЮТКонтекстСлужебный.УстановитьКонтекстИсполнения(ЮТФабрикаСлужебный.НовыйКонтекстИсполнения());
КонецПроцедуры
@ -269,17 +270,17 @@
Функция ИсполняемыйТестовыйМодуль(ТестовыйМодуль)
ИсполняемыйТестовыйМодуль = ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля(ТестовыйМодуль);
ИсполняемыйТестовыйМодуль = ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля(ТестовыйМодуль);
КонтекстыПриложения = ЮТФабрика.КонтекстыПриложения();
КонтекстыМодуля = ЮТФабрика.КонтекстыМодуля(ТестовыйМодуль.МетаданныеМодуля);
КонтекстыПриложения = ЮТФабрикаСлужебный.КонтекстыПриложения();
КонтекстыМодуля = ЮТФабрикаСлужебный.КонтекстыМодуля(ТестовыйМодуль.МетаданныеМодуля);
КонтекстыИсполнения = ЮТФабрика.КонтекстыИсполнения();
ИсполняемыйТестовыйМодуль.НаборыТестов = ИсполняемыеНаборыМодуля(ТестовыйМодуль);
Для Каждого Набор Из ИсполняемыйТестовыйМодуль.НаборыТестов Цикл
КонтекстИсполнения = ЮТФабрика.КонтекстИсполнения(Набор.Режим);
КонтекстИсполнения = ЮТФабрикаСлужебный.КонтекстИсполнения(Набор.Режим);
Если КонтекстыПриложения.Найти(Набор.Режим) = Неопределено Тогда
ОшибкаКонтекста = "Неподдерживаемый режим запуска";
@ -293,9 +294,9 @@
Если ОшибкаКонтекста <> Неопределено Тогда
Набор.Выполнять = Ложь;
ЮТРегистрацияОшибок.ЗарегистрироватьОшибкуРежимаВыполнения(Набор, ОшибкаКонтекста);
ЮТРегистрацияОшибокСлужебный.ЗарегистрироватьОшибкуРежимаВыполнения(Набор, ОшибкаКонтекста);
Для Каждого Тест Из Набор.Тесты Цикл
ЮТРегистрацияОшибок.ЗарегистрироватьОшибкуРежимаВыполнения(Тест, ОшибкаКонтекста);
ЮТРегистрацияОшибокСлужебный.ЗарегистрироватьОшибкуРежимаВыполнения(Тест, ОшибкаКонтекста);
КонецЦикла;
КонецЕсли;
@ -313,7 +314,7 @@
НаборыКонтекстов = Новый Структура;
ТестыНабора = ЮТОбщий.ЗначениеСтруктуры(ТестовыйНабор, "Тесты", Новый Массив());
ТестыНабора = ЮТКоллекции.ЗначениеСтруктуры(ТестовыйНабор, "Тесты", Новый Массив());
ОбработатьОшибкиЧтенияНабора(ТестовыйНабор, ТестовыйМодуль);
Для Каждого Тест Из ТестыНабора Цикл
@ -321,16 +322,16 @@
Для Каждого Контекст Из Тест.КонтекстВызова Цикл
Если НЕ НаборыКонтекстов.Свойство(Контекст) Тогда
ИсполняемыйНабор = ЮТФабрика.ОписаниеИсполняемогоНабораТестов(ТестовыйНабор, ТестовыйМодуль);
ИсполняемыйНабор = ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов(ТестовыйНабор, ТестовыйМодуль);
ИсполняемыйНабор.Режим = Контекст;
НаборыКонтекстов.Вставить(Контекст, ИсполняемыйНабор);
Иначе
ИсполняемыйНабор = НаборыКонтекстов[Контекст];
КонецЕсли;
ИсполняемыйТест = ЮТФабрика.ОписаниеИсполняемогоТеста(Тест, Контекст, ТестовыйМодуль);
ИсполняемыйТест = ЮТФабрикаСлужебный.ОписаниеИсполняемогоТеста(Тест, Контекст, ТестовыйМодуль);
Если Тест.Свойство("Ошибки") И Тест.Ошибки.Количество() > 0 Тогда
ИсполняемыйТест.Ошибки = ЮТОбщий.СкопироватьМассив(Тест.Ошибки);
ИсполняемыйТест.Ошибки = ЮТКоллекции.СкопироватьМассив(Тест.Ошибки);
КонецЕсли;
ИсполняемыйНабор.Тесты.Добавить(ИсполняемыйТест);
@ -353,15 +354,15 @@
КонецФункции
Процедура ОбработатьОшибкиЧтенияНабора(Набор, Модуль)
ТестыНабора = ЮТОбщий.ЗначениеСтруктуры(Набор, "Тесты", Новый Массив());
Ошибки = ЮТОбщий.ЗначениеСтруктуры(Набор, "Ошибки", Новый Массив());
ТестыНабора = ЮТКоллекции.ЗначениеСтруктуры(Набор, "Тесты", Новый Массив());
Ошибки = ЮТКоллекции.ЗначениеСтруктуры(Набор, "Ошибки", Новый Массив());
Если Ошибки.Количество() > 0 Тогда
Для Каждого Ошибка Из Ошибки Цикл
Если Ошибка.ТипОшибки = ЮТФабрика.ТипыОшибок().ЧтенияТестов Тогда
Если Ошибка.ТипОшибки = ЮТФабрикаСлужебный.ТипыОшибок().ЧтенияТестов Тогда
Тест = ОписаниеТестаСОшибкойЧтения(Модуль, Ошибка);
ТестыНабора.Добавить(Тест);
Прервать;
КонецЕсли;
КонецЦикла;
@ -369,10 +370,10 @@
КонецПроцедуры
Функция ОписаниеТестаСОшибкойЧтения(Модуль, Ошибка)
Контексты = ЮТФабрика.КонтекстыМодуля(Модуль.МетаданныеМодуля);
Тест = ЮТФабрика.ОписаниеТеста("ИсполняемыеСценарии", "ИсполняемыеСценарии", Контексты);
Контексты = ЮТФабрикаСлужебный.КонтекстыМодуля(Модуль.МетаданныеМодуля);
Тест = ЮТФабрикаСлужебный.ОписаниеТеста("ИсполняемыеСценарии", "ИсполняемыеСценарии", Контексты);
Тест.Вставить("Ошибки", Новый Массив);
Тест.Ошибки.Добавить(ЮТОбщий.СкопироватьСтруктуру(Ошибка));
Тест.Ошибки.Добавить(ЮТКоллекции.СкопироватьСтруктуру(Ошибка));
Возврат Тест;
КонецФункции
@ -389,7 +390,7 @@
// Записать код возврата.
//
// Параметры:
// РезультатыТестирования - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля
// РезультатыТестирования - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля
// Параметры - см. ЮТФабрика.ПараметрыЗапуска
Процедура ЗаписатьКодВозврата(РезультатыТестирования, Параметры)
@ -446,7 +447,7 @@
Возврат Результат;
КонецЕсли;
ТипОшибкиПропущен = ЮТФабрика.ТипыОшибок().Пропущен;
ТипОшибкиПропущен = ЮТФабрикаСлужебный.ТипыОшибок().Пропущен;
Для Каждого ОписаниеОшибки Из Тест.Ошибки Цикл
Если ОписаниеОшибки.ТипОшибки <> ТипОшибкиПропущен Тогда
Результат = Истина;

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="c9bf0e7a-6503-44eb-bef0-b37e1d3c6e22">
<name>ЮТИсполнительКлиент</name>
<name>ЮТИсполнительСлужебныйКлиент</name>
<synonym>
<key>ru</key>
<value>Исполнитель клиент</value>

View File

@ -20,18 +20,18 @@
// Выполняет тесты группы наборов, соответствующих одному режиму выполнения (клиент/сервер)
// Параметры:
// Наборы - Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов - Наборы тестов модуля
// ТестовыйМодуль - см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля
// Наборы - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов - Наборы тестов модуля
// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля
//
// Возвращаемое значение:
// Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов - Результат прогона наборов тестов с заполненной информацией о выполнении
// Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов - Результат прогона наборов тестов с заполненной информацией о выполнении
Функция ВыполнитьГруппуНаборовТестов(Наборы, ТестовыйМодуль) Экспорт
Если Наборы.Количество() = 0 Тогда
Возврат Наборы;
КонецЕсли;
ЮТСобытия.ПередВсемиТестамиМодуля(ТестовыйМодуль);
ЮТСобытияСлужебный.ПередВсемиТестамиМодуля(ТестовыйМодуль);
Если ЕстьОшибки(ТестовыйМодуль) Тогда
СкопироватьОшибкиВ(Наборы, ТестовыйМодуль.Ошибки);
@ -48,7 +48,7 @@
КонецЦикла;
ЮТСобытия.ПослеВсехТестовМодуля(ТестовыйМодуль);
ЮТСобытияСлужебный.ПослеВсехТестовМодуля(ТестовыйМодуль);
Если ЕстьОшибки(ТестовыйМодуль) Тогда
СкопироватьОшибкиВ(Наборы, ТестовыйМодуль.Ошибки);
@ -67,7 +67,7 @@
Функция ВыполнитьНаборТестов(Набор, ТестовыйМодуль)
Набор.ДатаСтарта = ТекущаяУниверсальнаяДатаВМиллисекундах();
ЮТСобытия.ПередТестовымНабором(ТестовыйМодуль, Набор);
ЮТСобытияСлужебный.ПередТестовымНабором(ТестовыйМодуль, Набор);
Если ЕстьОшибки(Набор) Тогда
Возврат Неопределено;
@ -86,12 +86,12 @@
ПослеКаждогоТеста(ТестовыйМодуль, Набор, Тест, ВТранзакции);
Тест.Статус = ЮТРегистрацияОшибок.СтатусВыполненияТеста(Тест);
Тест.Статус = ЮТРегистрацияОшибокСлужебный.СтатусВыполненияТеста(Тест);
Результаты.Добавить(Тест);
КонецЦикла;
ЮТСобытия.ПослеТестовогоНабора(ТестовыйМодуль, Набор);
ЮТСобытияСлужебный.ПослеТестовогоНабора(ТестовыйМодуль, Набор);
Набор.Длительность = ТекущаяУниверсальнаяДатаВМиллисекундах() - Набор.ДатаСтарта;
@ -101,7 +101,7 @@
Процедура ПередКаждымТестом(ТестовыйМодуль, Набор, Тест, ВТранзакции)
ЮТСобытия.УстановитьКонтекстИсполнения(ТестовыйМодуль, Набор, Тест);
ЮТСобытияСлужебный.УстановитьКонтекстИсполнения(ТестовыйМодуль, Набор, Тест);
#Если Сервер ИЛИ ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда
ВТранзакции = ЮТНастройкиВыполнения.ВТранзакции();
Если ВТранзакции Тогда
@ -109,18 +109,18 @@
КонецЕсли;
#КонецЕсли
ЮТСобытия.ПередКаждымТестом(ТестовыйМодуль, Набор, Тест);
ЮТСобытияСлужебный.ПередКаждымТестом(ТестовыйМодуль, Набор, Тест);
КонецПроцедуры
Процедура ПослеКаждогоТеста(ТестовыйМодуль, Набор, Тест, ВТранзакции)
Если ЮТКонтекст.ДанныеКонтекста() = Неопределено Тогда // Сломан контекст
Если ЮТКонтекстСлужебный.ДанныеКонтекста() = Неопределено Тогда // Сломан контекст
ОбновитьПовторноИспользуемыеЗначения();
ОтменитьТранзакциюТеста(Тест, ВТранзакции);
ЮТСобытия.ПослеКаждогоТеста(ТестовыйМодуль, Набор, Тест);
ЮТСобытияСлужебный.ПослеКаждогоТеста(ТестовыйМодуль, Набор, Тест);
Иначе
ЮТСобытия.ПослеКаждогоТеста(ТестовыйМодуль, Набор, Тест);
ЮТСобытияСлужебный.ПослеКаждогоТеста(ТестовыйМодуль, Набор, Тест);
ОтменитьТранзакциюТеста(Тест, ВТранзакции);
КонецЕсли;
@ -133,13 +133,13 @@
Если ТранзакцияАктивна() Тогда
ОтменитьТранзакцию();
Иначе
ЮТРегистрацияОшибок.ЗарегистрироватьПростуюОшибкуВыполнения(Тест, "Обнаружено лишне закрытие транзакции");
ЮТРегистрацияОшибокСлужебный.ЗарегистрироватьПростуюОшибкуВыполнения(Тест, "Обнаружено лишне закрытие транзакции");
КонецЕсли;
КонецЕсли;
Пока ТранзакцияАктивна() Цикл
ОтменитьТранзакцию();
ЮТРегистрацияОшибок.ЗарегистрироватьПростуюОшибкуВыполнения(Тест, "Обнаружена незакрытая транзакция");
ЮТРегистрацияОшибокСлужебный.ЗарегистрироватьПростуюОшибкуВыполнения(Тест, "Обнаружена незакрытая транзакция");
КонецЦикла;
#КонецЕсли
@ -160,10 +160,10 @@
СтатусыИсполненияТеста = ЮТФабрика.СтатусыИсполненияТеста();
Тест.Статус = СтатусыИсполненияТеста.Исполнение;
Ошибка = ЮТОбщий.ВыполнитьМетод(Тест.ПолноеИмяМетода, Тест.Параметры);
Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(Тест.ПолноеИмяМетода, Тест.Параметры);
Если Ошибка <> Неопределено Тогда
ЮТРегистрацияОшибок.ЗарегистрироватьОшибкуВыполненияТеста(Тест, Ошибка);
ЮТРегистрацияОшибокСлужебный.ЗарегистрироватьОшибкуВыполненияТеста(Тест, Ошибка);
КонецЕсли;
КонецПроцедуры
@ -172,7 +172,7 @@
Для Каждого Объект Из Объекты Цикл
ЮТОбщий.ДополнитьМассив(Объект.Ошибки, Ошибки);
ЮТКоллекции.ДополнитьМассив(Объект.Ошибки, Ошибки);
Если Объект.Свойство("Статус") Тогда
Объект.Статус = ЮТФабрика.СтатусыИсполненияТеста().Сломан;

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="24d9c1de-23c0-4d03-b2bf-9437c0985453">
<name>ЮТИсполнительКлиентСервер</name>
<name>ЮТИсполнительСлужебныйКлиентСервер</name>
<synonym>
<key>ru</key>
<value>Исполнитель тестов</value>

View File

@ -0,0 +1,395 @@
//©///////////////////////////////////////////////////////////////////////////©//
//
// 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.
// 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 По Размер - 1 Цикл
Результат[Инд] = СкопироватьРекурсивно(Источник[Инд]);
КонецЦикла;
Возврат Результат;
КонецФункции
// Создает копию списка значений
//
// Параметры:
// Источник - СписокЗначений Из Произвольный
//
// Возвращаемое значение:
// СписокЗначений Из Произвольный
//
Функция СкопироватьСписокЗначений(Источник) Экспорт
Результат = Новый СписокЗначений;
Для Каждого ЭлементСписка Из Источник Цикл
НовоеЗначение = СкопироватьРекурсивно(ЭлементСписка.Значение);
Результат.Добавить(НовоеЗначение, ЭлементСписка.Представление, ЭлементСписка.Пометка, ЭлементСписка.Картинка);
КонецЦикла;
Возврат Результат;
КонецФункции
// Выгружает значения "колонки" коллекции элементов.
//
// Параметры:
// Коллекция - Произвольный - Итерируемая коллекция
// ИмяРеквизита - Строка - Имя реквизата элементов коллекции
//
// Возвращаемое значение:
// Массив из Произвольный
Функция ВыгрузитьЗначения(Коллекция, ИмяРеквизита) Экспорт
Результат = Новый Массив();
Для Каждого ЭлементКоллекции Из Коллекция Цикл
Результат.Добавить(ЭлементКоллекции[ИмяРеквизита]);
КонецЦикла;
Возврат Результат;
КонецФункции
// Вычисляет двух массивов, коллекцию содержащую общие элементы.
//
// Параметры:
// Коллекция1 - Массив из Произвольный
// Коллекция2 - Массив из Произвольный
//
// Возвращаемое значение:
// Массив из Произвольный - Пересечение массивов
Функция ПересечениеМассивов(Коллекция1, Коллекция2) Экспорт
Результат = Новый Массив;
Для Каждого Элемент Из Коллекция1 Цикл
Если Коллекция2.Найти(Элемент) <> Неопределено Тогда
Результат.Добавить(Элемент);
КонецЕсли;
КонецЦикла;
Возврат Результат;
КонецФункции
// Создает массив с переданными значениями
//
// Параметры:
// Значение - Произвольный
// Значение2 - Произвольный
// Значение3 - Произвольный
// Значение4 - Произвольный
// Значение5 - Произвольный
// Значение6 - Произвольный
// Значение7 - Произвольный
// Значение8 - Произвольный
// Значение9 - Произвольный
// Значение10 - Произвольный
//
// Возвращаемое значение:
// Массив из Произвольный
//@skip-check method-too-many-params
Функция ЗначениеВМассиве(Значение,
Значение2 = "_!%*",
Значение3 = "_!%*",
Значение4 = "_!%*",
Значение5 = "_!%*",
Значение6 = "_!%*",
Значение7 = "_!%*",
Значение8 = "_!%*",
Значение9 = "_!%*",
Значение10 = "_!%*") Экспорт
Значения = Новый Массив;
Если Не ДобавитьНеПоследнее(Значения, Значение) Тогда
Возврат Значения;
КонецЕсли;
Если Не ДобавитьНеПоследнее(Значения, Значение2) Тогда
Возврат Значения;
КонецЕсли;
Если Не ДобавитьНеПоследнее(Значения, Значение3) Тогда
Возврат Значения;
КонецЕсли;
Если Не ДобавитьНеПоследнее(Значения, Значение4) Тогда
Возврат Значения;
КонецЕсли;
Если Не ДобавитьНеПоследнее(Значения, Значение5) Тогда
Возврат Значения;
КонецЕсли;
Если Не ДобавитьНеПоследнее(Значения, Значение6) Тогда
Возврат Значения;
КонецЕсли;
Если Не ДобавитьНеПоследнее(Значения, Значение7) Тогда
Возврат Значения;
КонецЕсли;
Если Не ДобавитьНеПоследнее(Значения, Значение8) Тогда
Возврат Значения;
КонецЕсли;
Если Не ДобавитьНеПоследнее(Значения, Значение9) Тогда
Возврат Значения;
КонецЕсли;
Если Не ДобавитьНеПоследнее(Значения, Значение10) Тогда
Возврат Значения;
КонецЕсли;
Возврат Значения;
КонецФункции
// Возвращает соответствие элементов переданной коллекции, в качестве ключей выступают значения указанного поля элементов коллекции.
//
// Параметры:
// Коллекция - Произвольный - значение, для которого определен итератор, и возможно обращение к полям элементов через квадратные скобки.
// ИмяПоляКлюча - Строка - имя поля элемента коллекции, которое будет ключом соответствия.
// ИмяПоляЗначения - Строка - если указан, значениями результата будут не элементы, а значения соответствующих полей элементов коллекции.
// Возвращаемое значение:
// Соответствие Из Произвольный - полученное соответствие.
Функция ВСоответствие(Коллекция, ИмяПоляКлюча, ИмяПоляЗначения = Неопределено) Экспорт
Результат = Новый Соответствие();
Для Каждого ЭлементКоллекции Из Коллекция Цикл
Значение = ?(ИмяПоляЗначения = Неопределено, ЭлементКоллекции, ЭлементКоллекции[ИмяПоляЗначения]);
Результат.Вставить(ЭлементКоллекции[ИмяПоляКлюча], Значение);
КонецЦикла;
Возврат Результат;
КонецФункции
// Возвращает структуру элементов переданной коллекции, в качестве ключей выступают значения указанного поля элементов коллекции.
//
// Параметры:
// Коллекция - Произвольный - значение, для которого определен итератор, и возможно обращение к полям элементов через квадратные скобки.
// ИмяПоляКлюча - Строка - имя поля элемента коллекции, которое будет ключом соответствия.
// ИмяПоляЗначения - Строка - если указан, значениями результата будут не элементы, а значения соответствующих полей элементов коллекции.
// Возвращаемое значение:
// Структура Из Произвольный - полученная структура.
Функция ВСтруктуру(Коллекция, ИмяПоляКлюча, ИмяПоляЗначения = Неопределено) Экспорт
Результат = Новый Структура();
Для Каждого ЭлементКоллекции Из Коллекция Цикл
Значение = ?(ИмяПоляЗначения = Неопределено, ЭлементКоллекции, ЭлементКоллекции[ИмяПоляЗначения]);
Результат.Вставить(ЭлементКоллекции[ИмяПоляКлюча], Значение);
КонецЦикла;
Возврат Результат;
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция ДобавитьНеПоследнее(Значения, Значение, ФлагОкончания = "_!%*")
Если Значение <> ФлагОкончания Тогда
Значения.Добавить(Значение);
Возврат Истина;
КонецЕсли;
Возврат Ложь;
КонецФункции
#КонецОбласти

View 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="fddfda12-489c-430c-9c70-a05037d03fa2">
<name>ЮТКоллекции</name>
<synonym>
<key>ru</key>
<value>Коллекции</value>
</synonym>
<clientManagedApplication>true</clientManagedApplication>
<server>true</server>
<clientOrdinaryApplication>true</clientOrdinaryApplication>
</mdclass:CommonModule>

View File

@ -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.
@ -20,7 +20,7 @@
Функция ФайлКомпоненты(Знач ИмяМакета, Знач ОперационнаяСистема, Знач Архитектура) Экспорт
Данные = ЮТОбщийВызовСервера.Макет(ИмяМакета);
Данные = ЮТОбщийСлужебныйВызовСервера.Макет(ИмяМакета);
ЧтениеАрхива = Новый ЧтениеZipФайла();
ЧтениеАрхива.Открыть(Данные.ОткрытьПотокДляЧтения());

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="20617de9-dab7-4587-a43a-4330e51bbc64">
<name>ЮТКомпонентыВызовСервера</name>
<name>ЮТКомпонентыСлужебныйВызовСервера</name>
<synonym>
<key>ru</key>
<value>Компоненты вызов сервера</value>

View File

@ -106,7 +106,7 @@
ОперационнаяСистема = MacOS;
Архитектура = x64;
Иначе
ЮТИсполнительКлиент.ОбработкаОшибки("Неподдерживаемый тип платформы");
ЮТИсполнительСлужебныйКлиент.ОбработкаОшибки("Неподдерживаемый тип платформы");
КонецЕсли;
ПараметрыТихойУстановки.ОперационнаяСистема = ОперационнаяСистема;
@ -118,7 +118,7 @@
Процедура ПрочитатьФайлRegistry(ПараметрыТихойУстановки) Экспорт
#Если ВебКлиент Тогда
ЮТИсполнительКлиент.ОбработкаОшибки(ЮТИсключения.МетодНеДоступен("ЮТКомпонентыКлиент.ПрочитатьФайлRegistry"));
ЮТИсполнительСлужебныйКлиент.ОбработкаОшибки(ЮТИсключения.МетодНеДоступен("ЮТКомпонентыКлиент.ПрочитатьФайлRegistry"));
Возврат;
#Иначе
ФайлРеестра = ЮТФайлы.ОбъединитьПути(ПараметрыТихойУстановки.РабочийКаталог, "registry.xml");
@ -134,7 +134,7 @@
Процедура ЗаписатьФайлRegistry(ПараметрыТихойУстановки) Экспорт
#Если ВебКлиент Тогда
ЮТИсполнительКлиент.ОбработкаОшибки(ЮТИсключения.МетодНеДоступен("ЮТКомпонентыКлиент.ЗаписатьФайлRegistry"));
ЮТИсполнительСлужебныйКлиент.ОбработкаОшибки(ЮТИсключения.МетодНеДоступен("ЮТКомпонентыКлиент.ЗаписатьФайлRegistry"));
Возврат;
#Иначе
Если ПараметрыТихойУстановки.ИзмененРеестр Тогда
@ -188,7 +188,7 @@
Процедура ТихаяУстановкаВнешнейКомпоненты(Компонента, Параметры)
ДанныеФайла = ЮТКомпонентыВызовСервера.ФайлКомпоненты(Компонента.ИмяМакета, Параметры.ОперационнаяСистема, Параметры.Архитектура);
ДанныеФайла = ЮТКомпонентыСлужебныйВызовСервера.ФайлКомпоненты(Компонента.ИмяМакета, Параметры.ОперационнаяСистема, Параметры.Архитектура);
Если ЗаписатьВРеестр(Параметры.ДанныеРеестра, ДанныеФайла.ИмяФайла) Тогда
Параметры.ИзмененРеестр = Истина;

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="fde2e089-b73c-4596-b283-959c570ff45d">
<name>ЮТКомпонентыКлиент</name>
<name>ЮТКомпонентыСлужебныйКлиент</name>
<synonym>
<key>ru</key>
<value>Компоненты клиент</value>

View File

@ -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.
@ -31,7 +31,7 @@
Вариант = Новый Структура(Реквизиты);
Варианты.КоличествоРеквизитов = Вариант.Количество();
ЮТКонтекст.УстановитьЗначениеКонтекста(КлючКонтекста(), Варианты);
ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(КлючКонтекста(), Варианты);
Возврат ЮТКонструкторВариантов;
@ -60,7 +60,7 @@
Параметр7 = Неопределено) Экспорт
// BSLLS:MagicNumber-off
// BSLLS:NumberOfValuesInStructureConstructor-off
Варианты = ЮТКонтекст.ЗначениеКонтекста(КлючКонтекста());
Варианты = ЮТКонтекстСлужебный.ЗначениеКонтекста(КлючКонтекста());
Если Варианты.КоличествоРеквизитов = 1 Тогда
Вариант = Новый Структура(Варианты.Реквизиты, Параметр1);
@ -91,7 +91,7 @@
// Массив из Структура
Функция СписокВариантов() Экспорт
Возврат ЮТКонтекст.ЗначениеКонтекста(КлючКонтекста()).Варианты;
Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(КлючКонтекста()).Варианты;
КонецФункции

View File

@ -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.
@ -43,7 +43,7 @@
КонецЕсли;
Если ОграничениеТипа <> Неопределено Тогда
ПолноеИмяРеквизита = ЮТОбщий.ДобавитьСтроку(Контекст.ТекущаяТабличнаяЧасть, ИмяРеквизита, ".");
ПолноеИмяРеквизита = ЮТСтроки.ДобавитьСтроку(Контекст.ТекущаяТабличнаяЧасть, ИмяРеквизита, ".");
ТипЗначения = ПересечениеТипов(ОписаниеРеквизита.Тип, ОграничениеТипа, ПолноеИмяРеквизита);
Иначе
ТипЗначения = ОписаниеРеквизита.Тип;
@ -103,7 +103,7 @@
ПараметрыЗаписи.ДополнительныеСвойства = Контекст.ДополнительныеСвойства;
ПараметрыЗаписи.ОбменДаннымиЗагрузка = ОбменДаннымиЗагрузка;
Ссылка = ЮТТестовыеДанныеВызовСервера.СоздатьЗапись(Контекст.Менеджер, Контекст.Данные, ПараметрыЗаписи, ВернутьОбъект);
Ссылка = ЮТТестовыеДанныеСлужебныйВызовСервера.СоздатьЗапись(Контекст.Менеджер, Контекст.Данные, ПараметрыЗаписи, ВернутьОбъект);
ЮТТестовыеДанныеСлужебный.ДобавитьТестовуюЗапись(Ссылка);
@ -113,7 +113,7 @@
Функция НовыйОбъект(Контекст) Экспорт
Возврат ЮТТестовыеДанныеВызовСервера.НовыйОбъект(Контекст.Менеджер, Контекст.Данные, Контекст.ДополнительныеСвойства);
Возврат ЮТТестовыеДанныеСлужебныйВызовСервера.НовыйОбъект(Контекст.Менеджер, Контекст.Данные, Контекст.ДополнительныеСвойства);
КонецФункции
@ -123,7 +123,7 @@
ПараметрыЗаписи.ДополнительныеСвойства = Контекст.ДополнительныеСвойства;
ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.Проведение;
Ссылка = ЮТТестовыеДанныеВызовСервера.СоздатьЗапись(Контекст.Менеджер, Контекст.Данные, ПараметрыЗаписи, ВернутьОбъект);
Ссылка = ЮТТестовыеДанныеСлужебныйВызовСервера.СоздатьЗапись(Контекст.Менеджер, Контекст.Данные, ПараметрыЗаписи, ВернутьОбъект);
ЮТТестовыеДанныеСлужебный.ДобавитьТестовуюЗапись(Ссылка);
@ -222,9 +222,9 @@
КонецЕсли;
Если ТипОграничения = Тип("Тип") И ОписаниеТипов.СодержитТип(ОграничениеТипов) И ОграничениеТипов <> Тип("Неопределено") Тогда
Результат = ЮТОбщий.ЗначениеВМассиве(ОграничениеТипов);
Результат = ЮТКоллекции.ЗначениеВМассиве(ОграничениеТипов);
ИначеЕсли ТипОграничения = Тип("ОписаниеТипов") Тогда
Результат = ЮТОбщий.ПересечениеМассивов(ОписаниеТипов.Типы(), ОграничениеТипов.Типы());
Результат = ЮТКоллекции.ПересечениеМассивов(ОписаниеТипов.Типы(), ОграничениеТипов.Типы());
Иначе
Результат = Неопределено;
КонецЕсли;

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<suppress:SuppressGenericObject xmlns:suppress="http://g5.1c.ru/v8/dt/check/suppress/model" fqn="CommonModule.ЮТКонтекстСервер">
<suppressions key="com.e1c.v8codestyle.md:common-module-name-server-call" value="true"/>
</suppress:SuppressGenericObject>

View File

@ -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.
@ -25,8 +25,8 @@
#Если НЕ Клиент Тогда
ВызватьИсключение "Метод `ИнициализироватьКонтекст` должен вызываться только с клиента";
#Иначе
ЮТКонтекстКлиент.ИнициализироватьКонтекст();
ЮТКонтекстСервер.ИнициализироватьКонтекст();
ЮТКонтекстСлужебныйКлиент.ИнициализироватьКонтекст();
ЮТКонтекстСлужебныйВызовСервера.ИнициализироватьКонтекст();
ОбновитьПовторноИспользуемыеЗначения();
#КонецЕсли
@ -40,10 +40,10 @@
Функция ДанныеКонтекста() Экспорт
#Если Клиент Тогда
Возврат ЮТКонтекстКлиент.ДанныеКонтекста();
Возврат ЮТКонтекстСлужебныйКлиент.ДанныеКонтекста();
#Иначе
//@skip-check constructor-function-return-section
Возврат ЮТКонтекстСервер.ДанныеКонтекста();
Возврат ЮТКонтекстСлужебныйВызовСервера.ДанныеКонтекста();
#КонецЕсли
КонецФункции
@ -60,7 +60,8 @@
#Если Клиент Тогда
Если ПолучитьССервера Тогда
Возврат ЮТКонтекстСервер.ЗначениеКонтекста(ИмяРеквизита);
//@skip-check constructor-function-return-section
Возврат ЮТКонтекстСлужебныйВызовСервера.ЗначениеКонтекста(ИмяРеквизита);
КонецЕсли;
#КонецЕсли
@ -76,7 +77,7 @@
КонецЦикла;
//@skip-check constructor-function-return-section
Возврат ЮТОбщий.ЗначениеСтруктуры(Объект, Ключи[Ключи.ВГраница()]);
Возврат ЮТКоллекции.ЗначениеСтруктуры(Объект, Ключи[Ключи.ВГраница()]);
КонецФункции
@ -101,7 +102,7 @@
#Если НЕ Сервер Тогда
Если УстановитьНаСервер Тогда
ЮТКонтекстСервер.УстановитьЗначениеКонтекста(ИмяРеквизита, Значение);
ЮТКонтекстСлужебныйВызовСервера.УстановитьЗначениеКонтекста(ИмяРеквизита, Значение);
КонецЕсли;
#КонецЕсли
@ -165,7 +166,7 @@
// Возвращает служебный контекст, содержит дополнительные детали ошибки теста
//
// Возвращаемое значение:
// Неопределено, Структура - Контекст ошибки, см. ЮТФабрика.ОписаниеКонтекстаОшибки
// Неопределено, Структура - Контекст ошибки, см. ЮТФабрикаСлужебный.ОписаниеКонтекстаОшибки
Функция КонтекстОшибки() Экспорт
//@skip-check constructor-function-return-section
@ -198,7 +199,7 @@
// КонтекстЧитателя
// Возвращает служебный контекста, данные используемые исполнителем тестов
// Возвращаемое значение:
// см. ЮТФабрика.НовыйКонтекстИсполнения
// см. ЮТФабрикаСлужебный.НовыйКонтекстИсполнения
Функция КонтекстИсполнения() Экспорт
//@skip-check constructor-function-return-section
@ -210,9 +211,9 @@
//
// Возвращаемое значение:
// - Неопределено
// - См. ЮТФабрика.ОписаниеТестовогоМодуля
// - См. ЮТФабрика.ОписаниеИсполняемогоНабораТестов
// - См. ЮТФабрика.ОписаниеИсполняемогоТеста
// - См. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля
// - См. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов
// - См. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТеста
Функция КонтекстИсполненияТекущегоУровня() Экспорт
Уровни = ЮТФабрика.УровниИсполнения();
@ -262,7 +263,7 @@
Процедура УстановитьКонтекстОшибки() Экспорт
ДанныеОшибки = ЮТФабрика.ОписаниеКонтекстаОшибки();
ДанныеОшибки = ЮТФабрикаСлужебный.ОписаниеКонтекстаОшибки();
УстановитьЗначениеКонтекста(ИмяКонтекстаОшибки(), ДанныеОшибки);
КонецПроцедуры
@ -318,9 +319,9 @@
Процедура УдалитьКонтекст() Экспорт
#Если Клиент Тогда
ЮТКонтекстКлиент.УдалитьКонтекст();
ЮТКонтекстСлужебныйКлиент.УдалитьКонтекст();
#КонецЕсли
ЮТКонтекстСервер.УдалитьКонтекст();
ЮТКонтекстСлужебныйВызовСервера.УдалитьКонтекст();
КонецПроцедуры

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="63f51e4d-3cf0-4109-b044-988cc723e206">
<name>ЮТКонтекст</name>
<name>ЮТКонтекстСлужебный</name>
<synonym>
<key>ru</key>
<value>Контекст тестового движка</value>

View File

@ -20,7 +20,7 @@
Процедура ИнициализироватьКонтекст() Экспорт
Контекст = ЮТКонтекст.ОписаниеКонтекста();
Контекст = ЮТКонтекстСлужебный.ОписаниеКонтекста();
АдресХранилища = ПоместитьВоВременноеХранилище(Контекст, Новый УникальныйИдентификатор());
ХранилищеОбщихНастроек.Сохранить(КлючНастроекКонтекста(), "АдресХранилища", АдресХранилища);
@ -48,13 +48,13 @@
// Значение - Произвольный - Новое значение реквизита/вложенного контекста
Процедура УстановитьЗначениеКонтекста(Знач ИмяРеквизита, Знач Значение) Экспорт
ЮТКонтекст.УстановитьЗначениеКонтекста(ИмяРеквизита, Значение);
ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяРеквизита, Значение);
КонецПроцедуры
Функция ЗначениеКонтекста(Знач ИмяРеквизита) Экспорт
Возврат ЮТКонтекст.ЗначениеКонтекста(ИмяРеквизита);
Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяРеквизита);
КонецФункции

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="d635e5c4-fe62-4953-8dcc-00d329307dcf">
<name>ЮТКонтекстСервер</name>
<name>ЮТКонтекстСлужебныйВызовСервера</name>
<synonym>
<key>ru</key>
<value>Контекст (сервер)</value>

View File

@ -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.
@ -20,7 +20,7 @@
Процедура ИнициализироватьКонтекст() Экспорт
ЮТДанныеКонтекста = ЮТКонтекст.ОписаниеКонтекста(); // BSLLS:UnusedLocalVariable-off
ЮТДанныеКонтекста = ЮТКонтекстСлужебный.ОписаниеКонтекста(); // BSLLS:UnusedLocalVariable-off
КонецПроцедуры

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="b6fb384e-e98a-47d4-a070-7e4d57a301d2">
<name>ЮТКонтекстКлиент</name>
<name>ЮТКонтекстСлужебныйКлиент</name>
<synonym>
<key>ru</key>
<value>Контекст (клиент)</value>

View File

@ -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.
@ -27,17 +27,17 @@
// Произвольный - Сохраненное в контексте значение
Функция Значение(ИмяЗначения) Экспорт
Уровень = ЮТКонтекст.КонтекстИсполнения().Уровень;
Уровень = ЮТКонтекстСлужебный.КонтекстИсполнения().Уровень;
Уровни = ЮТФабрика.УровниИсполнения();
КонтекстТеста = ЮТКонтекст.КонтекстТеста();
КонтекстТеста = ЮТКонтекстСлужебный.КонтекстТеста();
Если Уровень = Уровни.Тест И КонтекстТеста <> Неопределено И КонтекстТеста.Свойство(ИмяЗначения) Тогда
Возврат КонтекстТеста[ИмяЗначения];
КонецЕсли;
КонтекстНабора = ЮТКонтекст.КонтекстНабора();
КонтекстНабора = ЮТКонтекстСлужебный.КонтекстНабора();
Если (Уровень = Уровни.НаборТестов ИЛИ Уровень = Уровни.Тест)
И КонтекстНабора <> Неопределено И КонтекстНабора.Свойство(ИмяЗначения) Тогда
@ -45,7 +45,7 @@
КонецЕсли;
КонтекстМодуля = ЮТКонтекст.КонтекстМодуля();
КонтекстМодуля = ЮТКонтекстСлужебный.КонтекстМодуля();
Если (Уровень = Уровни.Модуль ИЛИ Уровень = Уровни.Тест ИЛИ Уровень = Уровни.НаборТестов)
И КонтекстМодуля <> Неопределено И КонтекстМодуля.Свойство(ИмяЗначения) Тогда
@ -67,7 +67,7 @@
// Значение - Произвольный
Процедура УстановитьЗначение(ИмяЗначения, Значение) Экспорт
Уровень = ЮТКонтекст.КонтекстИсполнения().Уровень;
Уровень = ЮТКонтекстСлужебный.КонтекстИсполнения().Уровень;
Уровни = ЮТФабрика.УровниИсполнения();
Контекст = ТекущийКонтекст();
@ -75,11 +75,11 @@
Если Контекст = Неопределено Тогда
Если Уровень = Уровни.Тест Тогда
ЮТКонтекст.УстановитьКонтекстТеста();
ЮТКонтекстСлужебный.УстановитьКонтекстТеста();
ИначеЕсли Уровень = Уровни.НаборТестов Тогда
ЮТКонтекст.УстановитьКонтекстНабораТестов();
ЮТКонтекстСлужебный.УстановитьКонтекстНабораТестов();
ИначеЕсли Уровень = Уровни.Модуль Тогда
ЮТКонтекст.УстановитьКонтекстМодуля();
ЮТКонтекстСлужебный.УстановитьКонтекстМодуля();
Иначе
ВызватьИсключение СтрШаблон("Неизвестный уровень исполнения `%1`", Уровень);
КонецЕсли;
@ -98,20 +98,20 @@
// Неопределено, Структура, Произвольный - Текущий контекст
Функция ТекущийКонтекст() Экспорт
Уровень = ЮТКонтекст.КонтекстИсполнения().Уровень;
Уровень = ЮТКонтекстСлужебный.КонтекстИсполнения().Уровень;
Уровни = ЮТФабрика.УровниИсполнения();
Если Уровень = Уровни.Тест Тогда
Контекст = ЮТКонтекст.КонтекстТеста();
Контекст = ЮТКонтекстСлужебный.КонтекстТеста();
ИначеЕсли Уровень = Уровни.НаборТестов Тогда
Контекст = ЮТКонтекст.КонтекстНабора();
Контекст = ЮТКонтекстСлужебный.КонтекстНабора();
ИначеЕсли Уровень = Уровни.Модуль Тогда
Контекст = ЮТКонтекст.КонтекстМодуля();
Контекст = ЮТКонтекстСлужебный.КонтекстМодуля();
Иначе

View File

@ -19,32 +19,32 @@
#Область ПрограммныйИнтерфейс
// Выводит отладочное сообщение
//
//
// Параметры:
// Сообщение - Строка - Сообщение
Процедура Отладка(Сообщение) Экспорт
Записать("DBG", Сообщение, 0);
ЮТЛогированиеСлужебный.Записать("DBG", Сообщение, 0);
КонецПроцедуры
// Выводит информационное сообщение
//
//
// Параметры:
// Сообщение - Строка - Сообщение
Процедура Информация(Сообщение) Экспорт
Записать("INF", Сообщение, 1);
ЮТЛогированиеСлужебный.Записать("INF", Сообщение, 1);
КонецПроцедуры
// Выводит сообщение об ошибке
//
//
// Параметры:
// Сообщение - Строка - Сообщение
Процедура Ошибка(Сообщение) Экспорт
Записать("ERR", Сообщение, 2);
ЮТЛогированиеСлужебный.Записать("ERR", Сообщение, 2);
КонецПроцедуры
@ -58,379 +58,4 @@
КонецФункции
Процедура ВывестиСерверныеСообщения() Экспорт
#Если Клиент Тогда
Контекст = Контекст();
Если Контекст = Неопределено ИЛИ НЕ Контекст.Включено ИЛИ Контекст.ФайлЛогаДоступенНаСервере Тогда
Возврат;
КонецЕсли;
Сообщения = ЮТЛогированиеВызовСервера.НакопленныеСообщенияЛогирования(Истина);
ЗаписатьСообщения(Контекст, Сообщения);
#Иначе
ВызватьИсключение ЮТИсключения.МетодНеДоступен("ВывестиСерверныеСообщения");
#КонецЕсли
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#Область ОбработчикиСобытий
// Инициализация.
//
// Параметры:
// ПараметрыЗапуска - см. ЮТФабрика.ПараметрыЗапуска
Процедура Инициализация(ПараметрыЗапуска) Экспорт
УровниЛога = УровниЛога();
ДанныеКонтекста = НовыйДанныеКонтекста();
ДанныеКонтекста.ФайлЛога = ЮТОбщий.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "file");
ДанныеКонтекста.ВыводВКонсоль = ЮТОбщий.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "console", Ложь);
ДанныеКонтекста.Включено = ЮТОбщий.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "enable", Неопределено);
УровеньЛога = ЮТОбщий.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "level", УровниЛога.Отладка);
Если ДанныеКонтекста.Включено = Неопределено Тогда
ДанныеКонтекста.Включено = ДанныеКонтекста.ВыводВКонсоль ИЛИ ЗначениеЗаполнено(ДанныеКонтекста.ФайлЛога);
КонецЕсли;
Если НЕ ДанныеКонтекста.Включено Тогда
ЮТКонтекст.УстановитьЗначениеКонтекста(ИмяКонтекстаЛогирования(), ДанныеКонтекста, Истина);
Возврат;
КонецЕсли;
Если СтрСравнить(УровеньЛога, УровниЛога.Ошибка) = 0 Тогда
ДанныеКонтекста.УровеньЛога = 2;
ИначеЕсли СтрСравнить(УровеньЛога, УровниЛога.Информация) = 0 Тогда
ДанныеКонтекста.УровеньЛога = 1;
Иначе
ДанныеКонтекста.УровеньЛога = 0;
КонецЕсли;
ЗначениеПроверки = Строка(Новый УникальныйИдентификатор());
ЗаписатьСообщения(ДанныеКонтекста, ЮТОбщий.ЗначениеВМассиве(ЗначениеПроверки), Ложь);
ДанныеКонтекста.ФайлЛогаДоступенНаСервере = ЮТЛогированиеВызовСервера.ФайлЛогаДоступенНаСервере(ДанныеКонтекста.ФайлЛога, ЗначениеПроверки);
ЮТКонтекст.УстановитьЗначениеКонтекста(ИмяКонтекстаЛогирования(), ДанныеКонтекста, Истина);
Разделитель = "------------------------------------------------------";
ЗаписатьСообщения(ДанныеКонтекста, ЮТОбщий.ЗначениеВМассиве(Разделитель), Ложь);
Информация("Старт");
КонецПроцедуры
// Обработка события "ПередЧтениеСценариев"
Процедура ПередЧтениеСценариев() Экспорт
Информация("Загрузка сценариев");
КонецПроцедуры
// Перед чтением сценариев модуля.
//
// Параметры:
// МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля
// ИсполняемыеСценарии - см. ЮТТесты.СценарииМодуля
Процедура ПередЧтениемСценариевМодуля(МетаданныеМодуля, ИсполняемыеСценарии) Экспорт
Информация(СтрШаблон("Загрузка сценариев модуля `%1`", МетаданныеМодуля.Имя));
КонецПроцедуры
// Перед чтением сценариев модуля.
//
// Параметры:
// МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля
// ИсполняемыеСценарии - см. ЮТТесты.СценарииМодуля
Процедура ПослеЧтенияСценариевМодуля(МетаданныеМодуля, ИсполняемыеСценарии) Экспорт
Информация(СтрШаблон("Загрузка сценариев модуля завершена `%1`", МетаданныеМодуля.Имя));
КонецПроцедуры
// Обработка события "ПослеЧтенияСценариев"
// Параметры:
// Сценарии - Массив из см. ЮТФабрика.ОписаниеТестовогоМодуля - Набор описаний тестовых модулей, которые содержат информацию о запускаемых тестах
Процедура ПослеЧтенияСценариев(Сценарии) Экспорт
Информация("Загрузка сценариев завершена.");
КонецПроцедуры
// Обработка события "ПослеФормированияИсполняемыхНаборовТестов"
// Параметры:
// ИсполняемыеТестовыеМодули - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля - Набор исполняемых наборов
Процедура ПослеФормированияИсполняемыхНаборовТестов(ИсполняемыеТестовыеМодули) Экспорт
Количество = 0;
Для Каждого ТестовыйМодуль Из ИсполняемыеТестовыеМодули Цикл
Для Каждого Набор Из ТестовыйМодуль.НаборыТестов Цикл
Если Набор.Выполнять Тогда
ЮТОбщий.Инкремент(Количество, Набор.Тесты.Количество());
КонецЕсли;
КонецЦикла;
КонецЦикла;
ЮТКонтекст.УстановитьЗначениеКонтекста(ИмяКонтекстаЛогирования() + ".ОбщееКоличествоТестов", Количество, Истина);
КонецПроцедуры
// Перед всеми тестами.
//
// Параметры:
// ОписаниеСобытия - см. ЮТФабрика.ОписаниеСобытияИсполненияТестов
Процедура ПередВсемиТестами(ОписаниеСобытия) Экспорт
#Если Клиент Тогда
ПрогрессКлиент = Контекст().КоличествоВыполненныхТестов;
ПрогрессСервер = ЮТКонтекст.ЗначениеКонтекста(ИмяКонтекстаЛогирования() + ".КоличествоВыполненныхТестов", Истина);
Если ПрогрессКлиент < ПрогрессСервер Тогда
Контекст().КоличествоВыполненныхТестов = ПрогрессСервер;
КонецЕсли;
#КонецЕсли
Информация(СтрШаблон("Запуск тестов модуля `%1`", ОписаниеСобытия.Модуль.МетаданныеМодуля.ПолноеИмя));
КонецПроцедуры
// Перед тестовым набором.
//
// Параметры:
// ОписаниеСобытия - см. ЮТФабрика.ОписаниеСобытияИсполненияТестов
Процедура ПередТестовымНабором(ОписаниеСобытия) Экспорт
Информация(СтрШаблон("Запуск тестов набора `%1`", ОписаниеСобытия.Набор.Имя));
КонецПроцедуры
// Перед каждым тестом.
//
// Параметры:
// ОписаниеСобытия - см. ЮТФабрика.ОписаниеСобытияИсполненияТестов
Процедура ПередКаждымТестом(ОписаниеСобытия) Экспорт
Информация(СтрШаблон("Запуск теста `%1`", ОписаниеСобытия.Тест.Имя));
КонецПроцедуры
// Перед каждым тестом.
//
// Параметры:
// ОписаниеСобытия - см. ЮТФабрика.ОписаниеСобытияИсполненияТестов
Процедура ПослеКаждогоТеста(ОписаниеСобытия) Экспорт
Контекст = Контекст();
Если НЕ ЛогированиеВключено(Контекст) Тогда
Возврат;
КонецЕсли;
ЮТОбщий.Инкремент(Контекст.КоличествоВыполненныхТестов);
Информация(СтрШаблон("%1 Завершен тест `%2`", Прогресс(), ОписаниеСобытия.Тест.Имя));
КонецПроцедуры
// Перед каждым тестом.
//
// Параметры:
// ОписаниеСобытия - см. ЮТФабрика.ОписаниеСобытияИсполненияТестов
Процедура ПослеТестовогоНабора(ОписаниеСобытия) Экспорт
Информация(СтрШаблон("Завершен тестовый набор `%1`", ОписаниеСобытия.Набор.Имя));
КонецПроцедуры
// Перед каждым тестом.
//
// Параметры:
// ОписаниеСобытия - см. ЮТФабрика.ОписаниеСобытияИсполненияТестов
Процедура ПослеВсехТестов(ОписаниеСобытия) Экспорт
Контекст = Контекст();
Если НЕ ЛогированиеВключено(Контекст) Тогда
Возврат;
КонецЕсли;
#Если Клиент Тогда
ЮТКонтекст.УстановитьЗначениеКонтекста(ИмяКонтекстаЛогирования() + ".КоличествоВыполненныхТестов", Контекст.КоличествоВыполненныхТестов, Истина);
#КонецЕсли
Информация(СтрШаблон("Завершен модуль `%1`", ОписаниеСобытия.Модуль.МетаданныеМодуля.ПолноеИмя));
КонецПроцедуры
#КонецОбласти
#Область Контекст
// Контекст.
//
// Возвращаемое значение:
// см. НовыйДанныеКонтекста
Функция Контекст()
Возврат ЮТКонтекст.ЗначениеКонтекста(ИмяКонтекстаЛогирования());
КонецФункции
Функция ИмяКонтекстаЛогирования()
Возврат "КонтекстЛогирования";
КонецФункции
// Новый данные контекста.
//
// Возвращаемое значение:
// Структура - Новый данные контекста:
// * Включено - Булево - Логирование включено
// * ФайлЛога - Неопределено - Файл вывода лога
// * ВыводВКонсоль- Булево - Вывод лога в консоль
// * ФайлЛогаДоступенНаСервере - Булево - Файл лога доступен на сервере
// * НакопленныеЗаписи - Массив из Строка - Буфер для серверных сообщений
// * ОбщееКоличествоТестов - Число
// * КоличествоВыполненныхТестов - Число
// * УровеньЛога - Число - Уровень логирования
Функция НовыйДанныеКонтекста()
ДанныеКонтекста = Новый Структура();
ДанныеКонтекста.Вставить("Включено", Ложь);
ДанныеКонтекста.Вставить("ФайлЛога", Неопределено);
ДанныеКонтекста.Вставить("ВыводВКонсоль", Ложь);
ДанныеКонтекста.Вставить("ФайлЛогаДоступенНаСервере", Ложь);
ДанныеКонтекста.Вставить("НакопленныеЗаписи", Новый Массив());
ДанныеКонтекста.Вставить("ОбщееКоличествоТестов", 0);
ДанныеКонтекста.Вставить("КоличествоВыполненныхТестов", 0);
ДанныеКонтекста.Вставить("УровеньЛога", 0);
Возврат ДанныеКонтекста;
КонецФункции
#КонецОбласти
#Область Запись
Функция ЛогированиеВключено(Знач Контекст = Неопределено, Приоритет = Неопределено)
Если Контекст = Неопределено Тогда
Контекст = Контекст();
КонецЕсли;
Возврат Контекст <> Неопределено И Контекст.Включено И (Приоритет = Неопределено ИЛИ Контекст.УровеньЛога <= Приоритет);
КонецФункции
Функция НакопленныеСообщенияЛогирования(Очистить = Ложь) Экспорт
Контекст = Контекст();
Сообщения = Контекст.НакопленныеЗаписи;
Если Очистить Тогда
Контекст.НакопленныеЗаписи = Новый Массив();
КонецЕсли;
Возврат Сообщения;
КонецФункции
Процедура Записать(УровеньЛога, Сообщение, Приоритет)
Контекст = Контекст();
Если НЕ ЛогированиеВключено(Контекст, Приоритет) Тогда
Возврат;
КонецЕсли;
#Если Клиент Тогда
КонтекстИсполнения = "Клиент";
#Иначе
КонтекстИсполнения = "Сервер";
#КонецЕсли
Текст = СтрШаблон("%1 [%2][%3]: %4", ЮТОбщий.ПредставлениеУниверсальнойДата(), КонтекстИсполнения, УровеньЛога, Сообщение);
#Если Клиент Тогда
ЗаписатьСообщения(Контекст, ЮТОбщий.ЗначениеВМассиве(Текст));
#Иначе
Если Контекст.ФайлЛогаДоступенНаСервере Тогда
ЗаписатьСообщения(Контекст, ЮТОбщий.ЗначениеВМассиве(Текст));
Иначе
Контекст.НакопленныеЗаписи.Добавить(Текст);
КонецЕсли;
#КонецЕсли
КонецПроцедуры
Процедура ЗаписатьСообщения(Контекст, Сообщения, Дописывать = Истина)
#Если ВебКлиент Тогда
ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЗаписатьСообщения");
#Иначе
Если Контекст.ВыводВКонсоль Тогда
ЗаписатьЛогВКонсоль(Сообщения);
КонецЕсли;
Если ЗначениеЗаполнено(Контекст.ФайлЛога) Тогда
ЗаписатьЛогВФайл(Контекст.ФайлЛога, Сообщения, Дописывать);
КонецЕсли;
#КонецЕсли
КонецПроцедуры
Процедура ЗаписатьЛогВФайл(ФайлЛога, Сообщения, Дописывать = Истина)
#Если ВебКлиент Тогда
ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЗаписатьЛогВФайл");
#Иначе
Запись = Новый ЗаписьТекста(ФайлЛога, КодировкаТекста.UTF8, , Дописывать);
Для Каждого Сообщение Из Сообщения Цикл
Запись.ЗаписатьСтроку(Сообщение);
КонецЦикла;
Запись.Закрыть();
#КонецЕсли
КонецПроцедуры
Процедура ЗаписатьЛогВКонсоль(Сообщения)
#Если ВебКлиент Тогда
ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЗаписатьЛогВКонсоль");
#Иначе
//@skip-check empty-except-statement
Попытка
Для Каждого Сообщение Из Сообщения Цикл
ЮТОбщий.ВывестиВКонсоль(Сообщение);
КонецЦикла;
Исключение
// Игнорируем ошибку
КонецПопытки;
#КонецЕсли
КонецПроцедуры
Функция Прогресс()
Контекст = Контекст();
Прогресс = Окр(100 * Контекст.КоличествоВыполненныхТестов / Контекст.ОбщееКоличествоТестов, 0);
Возврат СтрШаблон("%1%% (%2/%3)", Прогресс, Контекст.КоличествоВыполненныхТестов, Контекст.ОбщееКоличествоТестов);
КонецФункции
#КонецОбласти
#КонецОбласти

View File

@ -0,0 +1,393 @@
//©///////////////////////////////////////////////////////////////////////////©//
//
// 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.
// 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 [%2][%3]: %4", ЮТОбщий.ПредставлениеУниверсальнойДата(), КонтекстИсполнения, УровеньЛога, Сообщение);
#Если Клиент Тогда
ЗаписатьСообщения(Контекст, ЮТКоллекции.ЗначениеВМассиве(Текст));
#Иначе
Если Контекст.ФайлЛогаДоступенНаСервере Тогда
ЗаписатьСообщения(Контекст, ЮТКоллекции.ЗначениеВМассиве(Текст));
Иначе
Контекст.НакопленныеЗаписи.Добавить(Текст);
КонецЕсли;
#КонецЕсли
КонецПроцедуры
Процедура ВывестиСерверныеСообщения() Экспорт
#Если Клиент Тогда
Контекст = Контекст();
Если Контекст = Неопределено ИЛИ НЕ Контекст.Включено ИЛИ Контекст.ФайлЛогаДоступенНаСервере Тогда
Возврат;
КонецЕсли;
Сообщения = ЮТЛогированиеСлужебныйВызовСервера.НакопленныеСообщенияЛогирования(Истина);
ЗаписатьСообщения(Контекст, Сообщения);
#Иначе
ВызватьИсключение ЮТИсключения.МетодНеДоступен("ВывестиСерверныеСообщения");
#КонецЕсли
КонецПроцедуры
Функция НакопленныеСообщенияЛогирования(Очистить = Ложь) Экспорт
Контекст = Контекст();
Сообщения = Контекст.НакопленныеЗаписи;
Если Очистить Тогда
Контекст.НакопленныеЗаписи = Новый Массив();
КонецЕсли;
Возврат Сообщения;
КонецФункции
#Область ОбработчикиСобытий
// Инициализация.
//
// Параметры:
// ПараметрыЗапуска - см. ЮТФабрика.ПараметрыЗапуска
Процедура Инициализация(ПараметрыЗапуска) Экспорт
УровниЛога = ЮТЛогирование.УровниЛога();
ДанныеКонтекста = НовыйДанныеКонтекста();
ДанныеКонтекста.ФайлЛога = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "file");
ДанныеКонтекста.ВыводВКонсоль = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "console", Ложь);
ДанныеКонтекста.Включено = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "enable", Неопределено);
УровеньЛога = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "level", УровниЛога.Отладка);
Если ДанныеКонтекста.Включено = Неопределено Тогда
ДанныеКонтекста.Включено = ДанныеКонтекста.ВыводВКонсоль ИЛИ ЗначениеЗаполнено(ДанныеКонтекста.ФайлЛога);
КонецЕсли;
Если НЕ ДанныеКонтекста.Включено Тогда
ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекстаЛогирования(), ДанныеКонтекста, Истина);
Возврат;
КонецЕсли;
Если СтрСравнить(УровеньЛога, УровниЛога.Ошибка) = 0 Тогда
ДанныеКонтекста.УровеньЛога = 2;
ИначеЕсли СтрСравнить(УровеньЛога, УровниЛога.Информация) = 0 Тогда
ДанныеКонтекста.УровеньЛога = 1;
Иначе
ДанныеКонтекста.УровеньЛога = 0;
КонецЕсли;
ЗначениеПроверки = Строка(Новый УникальныйИдентификатор());
ЗаписатьСообщения(ДанныеКонтекста, ЮТКоллекции.ЗначениеВМассиве(ЗначениеПроверки), Ложь);
ДанныеКонтекста.ФайлЛогаДоступенНаСервере = ЮТЛогированиеСлужебныйВызовСервера.ФайлЛогаДоступенНаСервере(ДанныеКонтекста.ФайлЛога, ЗначениеПроверки);
ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекстаЛогирования(), ДанныеКонтекста, Истина);
Разделитель = "------------------------------------------------------";
ЗаписатьСообщения(ДанныеКонтекста, ЮТКоллекции.ЗначениеВМассиве(Разделитель), Ложь);
ЮТЛогирование.Информация("Старт");
КонецПроцедуры
// Обработка события "ПередЧтениеСценариев"
Процедура ПередЧтениеСценариев() Экспорт
ЮТЛогирование.Информация("Загрузка сценариев");
КонецПроцедуры
// Перед чтением сценариев модуля.
//
// Параметры:
// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля
// ИсполняемыеСценарии - см. ЮТТесты.СценарииМодуля
Процедура ПередЧтениемСценариевМодуля(МетаданныеМодуля, ИсполняемыеСценарии) Экспорт
ЮТЛогирование.Информация(СтрШаблон("Загрузка сценариев модуля `%1`", МетаданныеМодуля.Имя));
КонецПроцедуры
// Перед чтением сценариев модуля.
//
// Параметры:
// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля
// ИсполняемыеСценарии - см. ЮТТесты.СценарииМодуля
Процедура ПослеЧтенияСценариевМодуля(МетаданныеМодуля, ИсполняемыеСценарии) Экспорт
ЮТЛогирование.Информация(СтрШаблон("Загрузка сценариев модуля завершена `%1`", МетаданныеМодуля.Имя));
КонецПроцедуры
// Обработка события "ПослеЧтенияСценариев"
// Параметры:
// Сценарии - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля - Набор описаний тестовых модулей, которые содержат информацию о запускаемых тестах
Процедура ПослеЧтенияСценариев(Сценарии) Экспорт
ЮТЛогирование.Информация("Загрузка сценариев завершена.");
КонецПроцедуры
// Обработка события "ПослеФормированияИсполняемыхНаборовТестов"
// Параметры:
// ИсполняемыеТестовыеМодули - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля - Набор исполняемых наборов
Процедура ПослеФормированияИсполняемыхНаборовТестов(ИсполняемыеТестовыеМодули) Экспорт
Количество = 0;
Для Каждого ТестовыйМодуль Из ИсполняемыеТестовыеМодули Цикл
Для Каждого Набор Из ТестовыйМодуль.НаборыТестов Цикл
Если Набор.Выполнять Тогда
ЮТОбщий.Инкремент(Количество, Набор.Тесты.Количество());
КонецЕсли;
КонецЦикла;
КонецЦикла;
ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекстаЛогирования() + ".ОбщееКоличествоТестов", Количество, Истина);
КонецПроцедуры
// Перед всеми тестами.
//
// Параметры:
// ОписаниеСобытия - см. ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов
Процедура ПередВсемиТестами(ОписаниеСобытия) Экспорт
#Если Клиент Тогда
Контекст = Контекст();
ПрогрессКлиент = Контекст.КоличествоВыполненныхТестов;
ПрогрессСервер = ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекстаЛогирования() + ".КоличествоВыполненныхТестов", Истина);
Если ПрогрессКлиент < ПрогрессСервер Тогда
Контекст.КоличествоВыполненныхТестов = ПрогрессСервер;
КонецЕсли;
#КонецЕсли
ЮТЛогирование.Информация(СтрШаблон("Запуск тестов модуля `%1`", ОписаниеСобытия.Модуль.МетаданныеМодуля.ПолноеИмя));
КонецПроцедуры
// Перед тестовым набором.
//
// Параметры:
// ОписаниеСобытия - см. ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов
Процедура ПередТестовымНабором(ОписаниеСобытия) Экспорт
ЮТЛогирование.Информация(СтрШаблон("Запуск тестов набора `%1`", ОписаниеСобытия.Набор.Имя));
КонецПроцедуры
// Перед каждым тестом.
//
// Параметры:
// ОписаниеСобытия - см. ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов
Процедура ПередКаждымТестом(ОписаниеСобытия) Экспорт
ЮТЛогирование.Информация(СтрШаблон("Запуск теста `%1`", ОписаниеСобытия.Тест.Имя));
КонецПроцедуры
// Перед каждым тестом.
//
// Параметры:
// ОписаниеСобытия - см. ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов
Процедура ПослеКаждогоТеста(ОписаниеСобытия) Экспорт
Контекст = Контекст();
Если НЕ ЛогированиеВключено(Контекст) Тогда
Возврат;
КонецЕсли;
ЮТОбщий.Инкремент(Контекст.КоличествоВыполненныхТестов);
ЮТЛогирование.Информация(СтрШаблон("%1 Завершен тест `%2`", Прогресс(), ОписаниеСобытия.Тест.Имя));
КонецПроцедуры
// Перед каждым тестом.
//
// Параметры:
// ОписаниеСобытия - см. ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов
Процедура ПослеТестовогоНабора(ОписаниеСобытия) Экспорт
ЮТЛогирование.Информация(СтрШаблон("Завершен тестовый набор `%1`", ОписаниеСобытия.Набор.Имя));
КонецПроцедуры
// Перед каждым тестом.
//
// Параметры:
// ОписаниеСобытия - см. ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов
Процедура ПослеВсехТестов(ОписаниеСобытия) Экспорт
Контекст = Контекст();
Если НЕ ЛогированиеВключено(Контекст) Тогда
Возврат;
КонецЕсли;
#Если Клиент Тогда
ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекстаЛогирования() + ".КоличествоВыполненныхТестов", Контекст.КоличествоВыполненныхТестов, Истина);
#КонецЕсли
ЮТЛогирование.Информация(СтрШаблон("Завершен модуль `%1`", ОписаниеСобытия.Модуль.МетаданныеМодуля.ПолноеИмя));
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#Область Запись
Функция ЛогированиеВключено(Знач Контекст = Неопределено, Приоритет = Неопределено)
Если Контекст = Неопределено Тогда
Контекст = Контекст();
КонецЕсли;
Возврат Контекст <> Неопределено И Контекст.Включено И (Приоритет = Неопределено ИЛИ Контекст.УровеньЛога <= Приоритет);
КонецФункции
Процедура ЗаписатьСообщения(Контекст, Сообщения, Дописывать = Истина)
#Если ВебКлиент Тогда
ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЗаписатьСообщения");
#Иначе
Если Контекст.ВыводВКонсоль Тогда
ЗаписатьЛогВКонсоль(Сообщения);
КонецЕсли;
Если ЗначениеЗаполнено(Контекст.ФайлЛога) Тогда
ЗаписатьЛогВФайл(Контекст.ФайлЛога, Сообщения, Дописывать);
КонецЕсли;
#КонецЕсли
КонецПроцедуры
Процедура ЗаписатьЛогВФайл(ФайлЛога, Сообщения, Дописывать = Истина)
#Если ВебКлиент Тогда
ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЗаписатьЛогВФайл");
#Иначе
Запись = Новый ЗаписьТекста(ФайлЛога, КодировкаТекста.UTF8, , Дописывать);
Для Каждого Сообщение Из Сообщения Цикл
Запись.ЗаписатьСтроку(Сообщение);
КонецЦикла;
Запись.Закрыть();
#КонецЕсли
КонецПроцедуры
Процедура ЗаписатьЛогВКонсоль(Сообщения)
#Если ВебКлиент Тогда
ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЗаписатьЛогВКонсоль");
#Иначе
//@skip-check empty-except-statement
Попытка
Для Каждого Сообщение Из Сообщения Цикл
ЮТОбщий.ВывестиВКонсоль(Сообщение);
КонецЦикла;
Исключение
// Игнорируем ошибку
КонецПопытки;
#КонецЕсли
КонецПроцедуры
Функция Прогресс()
Контекст = Контекст();
Прогресс = Окр(100 * Контекст.КоличествоВыполненныхТестов / Контекст.ОбщееКоличествоТестов, 0);
Возврат СтрШаблон("%1%% (%2/%3)", Прогресс, Контекст.КоличествоВыполненныхТестов, Контекст.ОбщееКоличествоТестов);
КонецФункции
#КонецОбласти
#Область Контекст
// Контекст.
//
// Возвращаемое значение:
// см. НовыйДанныеКонтекста
Функция Контекст()
Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекстаЛогирования());
КонецФункции
Функция ИмяКонтекстаЛогирования()
Возврат "КонтекстЛогирования";
КонецФункции
// Новый данные контекста.
//
// Возвращаемое значение:
// Структура - Новый данные контекста:
// * Включено - Булево - Логирование включено
// * ФайлЛога - Неопределено - Файл вывода лога
// * ВыводВКонсоль- Булево - Вывод лога в консоль
// * ФайлЛогаДоступенНаСервере - Булево - Файл лога доступен на сервере
// * НакопленныеЗаписи - Массив из Строка - Буфер для серверных сообщений
// * ОбщееКоличествоТестов - Число
// * КоличествоВыполненныхТестов - Число
// * УровеньЛога - Число - Уровень логирования
Функция НовыйДанныеКонтекста()
ДанныеКонтекста = Новый Структура();
ДанныеКонтекста.Вставить("Включено", Ложь);
ДанныеКонтекста.Вставить("ФайлЛога", Неопределено);
ДанныеКонтекста.Вставить("ВыводВКонсоль", Ложь);
ДанныеКонтекста.Вставить("ФайлЛогаДоступенНаСервере", Ложь);
ДанныеКонтекста.Вставить("НакопленныеЗаписи", Новый Массив());
ДанныеКонтекста.Вставить("ОбщееКоличествоТестов", 0);
ДанныеКонтекста.Вставить("КоличествоВыполненныхТестов", 0);
ДанныеКонтекста.Вставить("УровеньЛога", 0);
Возврат ДанныеКонтекста;
КонецФункции
#КонецОбласти
#КонецОбласти

View 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="5b4dec7c-1651-401d-86d7-27a06b0e218f">
<name>ЮТЛогированиеСлужебный</name>
<synonym>
<key>ru</key>
<value>Логирование служебный</value>
</synonym>
<clientManagedApplication>true</clientManagedApplication>
<server>true</server>
<clientOrdinaryApplication>true</clientOrdinaryApplication>
</mdclass:CommonModule>

View File

@ -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.
@ -20,7 +20,7 @@
Функция НакопленныеСообщенияЛогирования(Знач Очистить = Ложь) Экспорт
Возврат ЮТЛогирование.НакопленныеСообщенияЛогирования(Очистить);
Возврат ЮТЛогированиеСлужебный.НакопленныеСообщенияЛогирования(Очистить);
КонецФункции

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="26bf7a99-a09f-44c9-9aad-12eb45a8f186">
<name>ЮТЛогированиеВызовСервера</name>
<name>ЮТЛогированиеСлужебныйВызовСервера</name>
<synonym>
<key>ru</key>
<value>Логирование (вызов сервера)</value>

View File

@ -16,7 +16,7 @@
//
//©///////////////////////////////////////////////////////////////////////////©//
#Область СлужебныйПрограммныйИнтерфейс
#Область ПрограммныйИнтерфейс
// Модули подсистемы.
// Возвращает список модулей подсистемы
@ -29,7 +29,7 @@
// Массив из Строка - Имена модулей входящих в подсистему
Функция МодулиПодсистемы(ИмяПодсистемы, Серверные = Истина, Клиентские = Истина) Экспорт
Возврат ЮТМетаданныеПовтИсп.МодулиПодсистемы(ИмяПодсистемы, Серверные, Клиентские);
Возврат ЮТМетаданныеСлужебныйПовтИсп.МодулиПодсистемы(ИмяПодсистемы, Серверные, Клиентские);
КонецФункции
@ -43,15 +43,12 @@
// - Произвольный - Объект информационной базы
//
// Возвращаемое значение:
// Структура - Описание менеджера:
// * ОписаниеТипа - см. ЮТМетаданныеСервер.ОписаниеТипаМетаданных
// * Реквизиты - Структура из см. ЮТФабрика.ОписаниеРеквизита
// * ТабличныеЧасти - Структура из Структура -
// см. СтруктураОписанияОбъектаМетаданных
Функция ОписаниеОбъектаМетаданных(Знач Значение) Экспорт
ТипЗначения = ТипЗнч(Значение);
Если ТипЗначения = Тип("Структура") И ЭтоОписаниеОбъектаМетаданных(Значение) Тогда
Если ЮТТипыДанныхСлужебный.ЭтоСтруктура(ТипЗначения) И ЭтоОписаниеОбъектаМетаданных(Значение) Тогда
//@skip-check constructor-function-return-section
Возврат Значение;
КонецЕсли;
@ -72,10 +69,10 @@
Если ТипЗначения = ТипТип Тогда
ИдентификаторТипа = ЮТТипыДанныхСлужебный.ИдентификаторТипа(Значение); // Для работы кэширования
//@skip-check constructor-function-return-section
Возврат ЮТМетаданныеПовтИсп.ОписаниеОбъектаМетаданныхПоИдентификаторуТипа(ИдентификаторТипа);
Возврат ЮТМетаданныеСлужебныйПовтИсп.ОписаниеОбъектаМетаданныхПоИдентификаторуТипа(ИдентификаторТипа);
Иначе
//@skip-check constructor-function-return-section
Возврат ЮТМетаданныеПовтИсп.ОписаниеОбъектаМетаданных(Значение);
Возврат ЮТМетаданныеСлужебныйПовтИсп.ОписаниеОбъектаМетаданных(Значение);
КонецЕсли;
КонецФункции
@ -96,7 +93,7 @@
Функция ТипыМетаданных() Экспорт
Возврат ЮТМетаданныеПовтИсп.ТипыМетаданных();
Возврат ЮТМетаданныеСлужебныйПовтИсп.ТипыМетаданных();
КонецФункции
@ -110,7 +107,7 @@
Функция РазрешеныСинхронныеВызовы() Экспорт
Возврат ЮТМетаданныеПовтИсп.РазрешеныСинхронныеВызовы();
Возврат ЮТМетаданныеСлужебныйПовтИсп.РазрешеныСинхронныеВызовы();
КонецФункции
@ -132,7 +129,96 @@
ПолноеИмя = СтрШаблон("%1.%2", ОписаниеОбъектаМетаданных.ОписаниеТипа.ИмяКоллекции, ОписаниеОбъектаМетаданных.Имя);
Возврат ЮТМетаданныеПовтИсп.РегистрыДвиженийДокумента(ПолноеИмя);
Возврат ЮТМетаданныеСлужебныйПовтИсп.РегистрыДвиженийДокумента(ПолноеИмя);
КонецФункции
// Возвращает текущую версию тестового движка (YAxUnit)
//
// Возвращаемое значение:
// Строка - Версия движка
Функция ВерсияДвижка() Экспорт
Возврат ЮТМетаданныеСлужебныйПовтИсп.ВерсияДвижка();
КонецФункции
// Описание типа объекта метаданных.
//
// Возвращаемое значение:
// Структура - Описание типа метаданных:
// * Имя - Строка
// * ИмяКоллекции - Строка
// * Конструктор - Строка
// * Группы - Булево
// * Ссылочный - Булево
// * Регистр - Булево
// * ОбработкаОтчет - Булево
// * СтандартныеРеквизиты - Булево
// * Реквизиты - Булево
// * Измерения - Булево
// * Ресурсы - Булево
// * РеквизитыАдресации - Булево
// * ТабличныеЧасти - Булево
Функция ОписаниеТипаМетаданных() Экспорт
Описание = Новый Структура();
Описание.Вставить("Имя", "");
Описание.Вставить("ИмяКоллекции", "");
Описание.Вставить("Конструктор", "");
Описание.Вставить("Группы", Ложь);
Описание.Вставить("Ссылочный", Ложь);
Описание.Вставить("Регистр", Ложь);
Описание.Вставить("ОбработкаОтчет", Ложь);
Описание.Вставить("СтандартныеРеквизиты", Ложь);
Описание.Вставить("Реквизиты", Ложь);
Описание.Вставить("Измерения", Ложь);
Описание.Вставить("Ресурсы", Ложь);
Описание.Вставить("РеквизитыАдресации", Ложь);
Описание.Вставить("ТабличныеЧасти", Ложь);
Возврат Описание;
КонецФункции
// Описание объекта метаданных.
//
// Возвращаемое значение:
// Структура - Описание объекта метаданных:
// * Имя - Строка
// * ОписаниеТипа - см. ОписаниеТипаМетаданных
// * Реквизиты - Структура
// * ТабличныеЧасти - Структура
Функция СтруктураОписанияОбъектаМетаданных() Экспорт
Описание = Новый Структура;
Описание.Вставить("Имя", "");
Описание.Вставить("ОписаниеТипа", Неопределено);
Описание.Вставить("Реквизиты", Новый Структура());
Описание.Вставить("ТабличныеЧасти", Новый Структура());
//@skip-check constructor-function-return-section
Возврат Описание;
КонецФункции
// Описание реквизита объекта метаданных
//
// Возвращаемое значение:
// Структура - Описание реквизита:
// * Имя - Строка
// * Тип - ОписаниеТипов
// * Обязательный - Булево
// * ЭтоКлюч - Булево
Функция ОписаниеРеквизита() Экспорт
Описание = Новый Структура();
Описание.Вставить("Имя", "");
Описание.Вставить("Тип", Новый ОписаниеТипов("Неопределено"));
Описание.Вставить("Обязательный", Ложь);
Описание.Вставить("ЭтоКлюч", Ложь);
Возврат Описание;
КонецФункции

View File

@ -22,7 +22,7 @@
// Выполняет чтение метаданных общих модулей, которые предположительно могут являться тестами
//
// Возвращаемое значение:
// Массив из см. ЮТФабрика.ОписаниеМодуля - Коллекция описаний моделей, структуру элемента см. ЮТФабрика.ОписаниеМодуля
// Массив из см. ЮТФабрикаСлужебный.ОписаниеМодуля - Коллекция описаний моделей, структуру элемента см. ЮТФабрикаСлужебный.ОписаниеМодуля
Функция МодулиРасширений() Экспорт
УстановитьПривилегированныйРежим(Истина);
@ -98,7 +98,7 @@
КонецЕсли;
КонецЕсли;
Описание = ЮТФабрика.ОписаниеМодуля();
Описание = ЮТФабрикаСлужебный.ОписаниеМодуля();
Описание.Имя = Модуль.Имя;
Описание.КлиентУправляемоеПриложение = Модуль.КлиентУправляемоеПриложение;
Описание.КлиентОбычноеПриложение = Модуль.КлиентОбычноеПриложение;
@ -117,11 +117,9 @@
МетаданныеОбъекта = ОбъектМетаданных(Значение);
ОписаниеТипа = ОписаниеТипаМетаданных(МетаданныеОбъекта);
ОписаниеОбъект = Новый Структура;
ОписаниеОбъект.Вставить("Имя", МетаданныеОбъекта.Имя);
ОписаниеОбъект.Вставить("ОписаниеТипа", ОписаниеТипа);
ОписаниеОбъект.Вставить("Реквизиты", Новый Структура());
ОписаниеОбъект.Вставить("ТабличныеЧасти", Новый Структура());
ОписаниеОбъект = ЮТМетаданные.СтруктураОписанияОбъектаМетаданных();
ОписаниеОбъект.Имя = МетаданныеОбъекта.Имя;
ОписаниеОбъект.ОписаниеТипа = ОписаниеТипа;
ЮТОбщий.УказатьТипСтруктуры(ОписаниеОбъект, "ОписаниеОбъектаМетаданных");
Если НЕ ЗаполнятьРеквизиты Тогда
@ -159,7 +157,7 @@
КонецЕсли;
Возврат ОписаниеОбъект;
Возврат Новый ФиксированнаяСтруктура(ОписаниеОбъект);
КонецФункции
@ -169,20 +167,7 @@
// МетаданныеОбъекта - Тип, ОбъектМетаданных - Тип
//
// Возвращаемое значение:
// Структура - Описание типа метаданных:
// * Имя - Строка
// * ИмяКоллекции - Строка
// * Конструктор - Строка
// * Группы - Булево
// * Ссылочный - Булево
// * Регистр - Булево
// * ОбработкаОтчет - Булево
// * СтандартныеРеквизиты - Булево
// * Реквизиты - Булево
// * Измерения - Булево
// * Ресурсы - Булево
// * РеквизитыАдресации - Булево
// * ТабличныеЧасти - Булево
// см. ЮТМетаданные.ОписаниеТипаМетаданных
Функция ОписаниеТипаМетаданных(Знач МетаданныеОбъекта) Экспорт
Если ТипЗнч(МетаданныеОбъекта) = Тип("Тип") Тогда
@ -193,13 +178,16 @@
ЧастиИмени = СтрРазделить(ПолноеИмя, ".");
Типы = ЮТМетаданные.ТипыМетаданных();
Если Типы.Свойство(ЧастиИмени[0]) Тогда
Возврат Типы[ЧастиИмени[0]];
Иначе
Если НЕ Типы.Свойство(ЧастиИмени[0]) Тогда
Сообщение = СтрШаблон("Получение описания для '%1' не поддерживается, либо не реализовано", ЧастиИмени[0]);
ВызватьИсключение Сообщение;
КонецЕсли;
Описание = ЮТМетаданные.ОписаниеТипаМетаданных();
ЗаполнитьЗначенияСвойств(Описание, Типы[ЧастиИмени[0]]);
//@skip-check constructor-function-return-section
Возврат Новый ФиксированнаяСтруктура(Описание);
КонецФункции
Функция ТипыМетаданных() Экспорт
@ -288,7 +276,7 @@
ОбъектМетаданных = ОбъектМетаданныхИзСтроки(Значение);
ИначеЕсли ТипЗначение = Тип("Структура") И Значение.Свойство("ОписаниеТипа") И Значение.Свойство("Имя") Тогда
ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоСтруктура(ТипЗначение) И Значение.Свойство("ОписаниеТипа") И Значение.Свойство("Имя") Тогда
ОбъектМетаданных = Метаданные[Значение.ОписаниеТипа.ИмяКоллекции][Значение.Имя];
@ -299,7 +287,7 @@
КонецЕсли;
Если ОбъектМетаданных = Неопределено Тогда
Сообщение = ЮТИсключения.НеподдерживаемыйПараметрМетода("ЮТМетаданныеСервер.ОбъектМетаданных", Значение);
Сообщение = ЮТИсключения.НеподдерживаемыйПараметрМетода("ЮТМетаданныеСлужебныйВызовСервера.ОбъектМетаданных", Значение);
ВызватьИсключение Сообщение;
КонецЕсли;
@ -342,10 +330,28 @@
ЭтоКлюч = ИменаКлючевыхПолей.Найти(Реквизит.Имя) <> Неопределено;
КонецЕсли;
КоллекцияОписаний.Вставить(Реквизит.Имя, ЮТФабрика.ОписаниеРеквизита(Реквизит, ЭтоКлюч));
КоллекцияОписаний.Вставить(Реквизит.Имя, НовоеОписаниеРеквизита(Реквизит, ЭтоКлюч));
КонецЦикла;
КонецПроцедуры
Функция НовоеОписаниеРеквизита(Реквизит, ЭтоКлюч)
Описание = ЮТМетаданные.ОписаниеРеквизита();
Описание.Имя = Реквизит.Имя;
Описание.Тип = Реквизит.Тип;
Описание.Обязательный = Реквизит.ПроверкаЗаполнения = ПроверкаЗаполнения.ВыдаватьОшибку;
Описание.ЭтоКлюч = ЭтоКлюч;
Возврат Описание;
КонецФункции
Функция ВерсияДвижка() Экспорт
Возврат Метаданные.ОбщиеМодули.ЮТМетаданныеСлужебныйВызовСервера.РасширениеКонфигурации().Версия;
КонецФункции
#КонецОбласти

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="42510142-f01c-4ab2-b615-8970bdcc7a1b">
<name>ЮТМетаданныеСервер</name>
<name>ЮТМетаданныеСлужебныйВызовСервера</name>
<synonym>
<key>ru</key>
<value>Метаданные (сервер)</value>

View File

@ -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.
@ -20,45 +20,51 @@
Функция МодулиПодсистемы(ИмяПодсистемы, Серверные, Клиентские) Экспорт
Возврат ЮТМетаданныеСервер.МодулиПодсистемы(ИмяПодсистемы, Серверные, Клиентские);
Возврат ЮТМетаданныеСлужебныйВызовСервера.МодулиПодсистемы(ИмяПодсистемы, Серверные, Клиентские);
КонецФункции
Функция ОписаниеОбъектаМетаданных(Знач Менеджер) Экспорт
Возврат ЮТМетаданныеСервер.ОписаниеОбъектаМетаданных(Менеджер);
Возврат ЮТМетаданныеСлужебныйВызовСервера.ОписаниеОбъектаМетаданных(Менеджер);
КонецФункции
Функция ОписаниеОбъектаМетаданныхПоИдентификаторуТипа(Знач ИдентификаторТипа) Экспорт
Тип = ЮТТипыДанныхСлужебный.ТипПоИдентификатору(ИдентификаторТипа);
Возврат ЮТМетаданныеСервер.ОписаниеОбъектаМетаданных(Тип);
Возврат ЮТМетаданныеСлужебныйВызовСервера.ОписаниеОбъектаМетаданных(Тип);
КонецФункции
Функция ТипыМетаданных() Экспорт
Возврат ЮТМетаданныеСервер.ТипыМетаданных();
Возврат ЮТМетаданныеСлужебныйВызовСервера.ТипыМетаданных();
КонецФункции
Функция РазрешеныСинхронныеВызовы() Экспорт
Возврат ЮТМетаданныеСервер.РазрешеныСинхронныеВызовы();
Возврат ЮТМетаданныеСлужебныйВызовСервера.РазрешеныСинхронныеВызовы();
КонецФункции
Функция РегистрыДвиженийДокумента(ПолноеИмя) Экспорт
Возврат ЮТМетаданныеСервер.РегистрыДвиженийДокумента(ПолноеИмя);
Возврат ЮТМетаданныеСлужебныйВызовСервера.РегистрыДвиженийДокумента(ПолноеИмя);
КонецФункции
Функция ВариантВстроенногоЯзыка() Экспорт
Возврат ЮТМетаданныеСервер.ВариантВстроенногоЯзыка();
Возврат ЮТМетаданныеСлужебныйВызовСервера.ВариантВстроенногоЯзыка();
КонецФункции
Функция ВерсияДвижка() Экспорт
Возврат ЮТМетаданныеСлужебныйВызовСервера.ВерсияДвижка();
КонецФункции
#КонецОбласти

View File

@ -1,6 +1,6 @@
<?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>
<name>ЮТМетаданныеСлужебныйПовтИсп</name>
<synonym>
<key>ru</key>
<value>Метаданные (повторного использования)</value>

View File

@ -0,0 +1,183 @@
//©///////////////////////////////////////////////////////////////////////////©//
//
// 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.
// 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. Рекомендуется использовать '%2'", Сообщение, РекомендуемыйМетод);
КонецЕсли;
Если ЮТСтроки.СравнитьВерсии(Версия, ВерсияЗапретаИспользованияУстаревших()) <= 0 Тогда
ВызватьИсключение Сообщение;
Иначе
ЮТОбщий.СообщитьПользователю(Сообщение);
КонецЕсли;
КонецПроцедуры
#Область ПроверкаМетодов
// МетодМодуляСуществует
// Проверяет существование публичного (экспортного) метода у модуля
//
// Параметры:
// ИмяМодуля - Строка - Имя модуля, метод которого нужно поискать
// ИмяМетода - Строка - Имя метода, который ищем
// Кешировать - Булево - Признак кеширования результата проверки
//
// Возвращаемое значение:
// Булево - Метод найден
Функция МетодМодуляСуществует(ИмяМодуля, ИмяМетода, Кешировать = Истина) Экспорт
ЮТПроверкиСлужебный.ПроверитьТипПараметра(ИмяМодуля, Тип("Строка"), "ЮТОбщий.МетодМодуляСуществует", "ИмяМодуля");
ЮТПроверкиСлужебный.ПроверитьТипПараметра(ИмяМетода, Тип("Строка"), "ЮТОбщий.МетодМодуляСуществует", "ИмяМетода");
Если Кешировать Тогда
Возврат ЮТСлужебныйПовторногоИспользования.МетодМодуляСуществует(ИмяМодуля, ИмяМетода);
КонецЕсли;
ПолноеИмяМетода = СтрШаблон("%1.%2", ИмяМодуля, ИмяМетода);
Алгоритм = ПолноеИмяМетода + "(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)";
Ошибка = ВыполнитьМетод(Алгоритм);
ТипОшибки = ЮТРегистрацияОшибокСлужебный.ТипОшибки(Ошибка, ПолноеИмяМетода);
Возврат ТипОшибки = ЮТФабрикаСлужебный.ТипыОшибок().МногоПараметров;
КонецФункции
// Проверяет существование публичного (экспортного) метода у объекта
//
// Параметры:
// Объект - Произвольный - Объект, метод которого нужно поискать
// ИмяМетода - Строка - Имя метода, который ищем
//
// Возвращаемое значение:
// Булево - Метод найден
Функция МетодОбъектаСуществует(Объект, ИмяМетода) Экспорт
#Если ВебКлиент Тогда
ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТОбщий.МетодОбъектаСуществует");
#Иначе
ЮТПроверкиСлужебный.ПроверитьТипПараметра(ИмяМетода, Тип("Строка"), "ЮТОбщий.МетодМодуляСуществует", "ИмяМетода");
ПолноеИмяМетода = СтрШаблон("Объект.%1", ИмяМетода);
Алгоритм = ПолноеИмяМетода + "(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)";
Ошибка = ВыполнитьМетод(Алгоритм, , Объект);
ТипОшибки = ЮТРегистрацияОшибокСлужебный.ТипОшибки(Ошибка, ПолноеИмяМетода);
Возврат ТипОшибки = ЮТФабрикаСлужебный.ТипыОшибок().МногоПараметров;
#КонецЕсли
КонецФункции
#КонецОбласти
#Область ВызовМетодов
Функция ВыполнитьМетод(ПолноеИмяМетода, Параметры = Неопределено, Объект = Неопределено) Экспорт
#Если ВебКлиент Тогда
ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТОбщий.ВыполнитьМетод");
#Иначе
Если СтрЗаканчиваетсяНа(ПолноеИмяМетода, ")") Тогда
Алгоритм = ПолноеИмяМетода;
ИначеЕсли НЕ ЗначениеЗаполнено(Параметры) Тогда
Алгоритм = ПолноеИмяМетода + "()";
ИначеЕсли ТипЗнч(Параметры) = Тип("Массив") Тогда
Алгоритм = СтрШаблон("%1(%2)", ПолноеИмяМетода, СтрокаПараметровМетода(Параметры, "Параметры"));
Иначе
ВызватьИсключение СтрШаблон("Не верный тип параметров `%1` для вызова метода, должен быть массив", ТипЗнч(Параметры));
КонецЕсли;
Попытка
//@skip-check server-execution-safe-mode
Выполнить(Алгоритм);
Исключение
Возврат ИнформацияОбОшибке();
КонецПопытки;
Возврат Неопределено;
#КонецЕсли
КонецФункции
Функция ВычислитьБезопасно(Выражение) Экспорт
#Если НЕ ВебКлиент И НЕ ТонкийКлиент Тогда
УстановитьБезопасныйРежим(Истина);
Попытка
Значение = Вычислить(Выражение);
Исключение
УстановитьБезопасныйРежим(Ложь);
ВызватьИсключение;
КонецПопытки;
УстановитьБезопасныйРежим(Ложь);
#Иначе
Значение = Вычислить(Выражение);
#КонецЕсли
Возврат Значение;
КонецФункции
#КонецОбласти
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция ВерсияЗапретаИспользованияУстаревших()
Возврат "23.01";
КонецФункции
Функция СтрокаПараметровМетода(Параметры, ИмяПеременнойСПараметрами)
СписокПараметров = Новый Массив();
Для Инд = 0 По Параметры.ВГраница() Цикл
Если Параметры[Инд] = Мокито.ПараметрПоУмолчанию() Тогда
СписокПараметров.Добавить("");
Иначе
СписокПараметров.Добавить(СтрШаблон("%1[%2]", ИмяПеременнойСПараметрами, Инд));
КонецЕсли;
КонецЦикла;
Возврат СтрСоединить(СписокПараметров, ", ");
КонецФункции
#КонецОбласти

View 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="b659407b-3123-4400-828c-c0f247b4dcd5">
<name>ЮТМетодыСлужебный</name>
<synonym>
<key>ru</key>
<value>Общий служебный</value>
</synonym>
<clientManagedApplication>true</clientManagedApplication>
<server>true</server>
<clientOrdinaryApplication>true</clientOrdinaryApplication>
</mdclass:CommonModule>

View File

@ -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.
@ -16,8 +16,12 @@
//
//©///////////////////////////////////////////////////////////////////////////©//
#Область СлужебныйПрограммныйИнтерфейс
#Область ПрограммныйИнтерфейс
// Возвращает значение настройки "ВТранзакции" для текущего исполняемого объекта (тест, набор, модуль)
//
// Возвращаемое значение:
// Булево
Функция ВТранзакции() Экспорт
ИмяПараметра = ЮТФабрика.ПараметрыИсполненияТеста().ВТранзакции;
@ -26,6 +30,10 @@
КонецФункции
// Возвращает значение настройки "УдалениеТестовыхДанных" для текущего исполняемого объекта (тест, набор, модуль)
//
// Возвращаемое значение:
// Булево
Функция УдалениеТестовыхДанных() Экспорт
ИмяПараметра = ЮТФабрика.ПараметрыИсполненияТеста().УдалениеТестовыхДанных;
@ -34,6 +42,11 @@
КонецФункции
// Возвращает значение настройки "Перед" для текущего исполняемого объекта (тест, набор, модуль)
// Возвращает имя назначенного обработчика события (имя метода) "Перед".
//
// Возвращаемое значение:
// Строка
Функция Перед() Экспорт
ИмяПараметра = ЮТФабрика.ПараметрыИсполненияТеста().Перед;
@ -42,6 +55,11 @@
КонецФункции
// Возвращает значение настройки "После" для текущего исполняемого объекта (тест, набор, модуль)
// Возвращает имя назначенного обработчика события (имя метода) "После".
//
// Возвращаемое значение:
// Строка
Функция После() Экспорт
ИмяПараметра = ЮТФабрика.ПараметрыИсполненияТеста().После;
@ -50,17 +68,28 @@
КонецФункции
// Возвращает значение произвольной настройки для текущего исполняемого объекта (тест, набор, модуль)
//
// Параметры:
// ИмяНастройки - Строка - Имя настройки, см. ЮТФабрика.ПараметрыИсполненияТеста
// ЗначениеПоУмолчанию - Произвольный - Значение по умолчанию
// СтрогийУровеньИсполнения - Булево - Признак, стоит ли проверять наличие настройки у родительских элементов.
// Ложь - По умолчанию, будет выполнен поиск и получение значения для родетелей (набор, модуль), если значения для текущего элемента не установлено.
// Истина - Получение настройки только для текущего элемента.
//
// Возвращаемое значение:
// Произвольный, Неопределено, Булево, Строка - Значение настройки теста
Функция ЗначениеНастройкиТеста(ИмяНастройки, ЗначениеПоУмолчанию, СтрогийУровеньИсполнения = Ложь) Экспорт
Значение = ЗначениеПоУмолчанию;
КонтекстИсполнения = ЮТКонтекст.КонтекстИсполнения();
КонтекстИсполнения = ЮТКонтекстСлужебный.КонтекстИсполнения();
Если СтрогийУровеньИсполнения Тогда
ТекущийКонтекстИсполнения = ЮТКонтекст.КонтекстИсполненияТекущегоУровня();
ТекущийКонтекстИсполнения = ЮТКонтекстСлужебный.КонтекстИсполненияТекущегоУровня();
Если ТекущийКонтекстИсполнения <> Неопределено Тогда
Значение = ЮТОбщий.ЗначениеСтруктуры(ТекущийКонтекстИсполнения.НастройкиВыполнения, ИмяНастройки, ЗначениеПоУмолчанию);
Значение = ЮТКоллекции.ЗначениеСтруктуры(ТекущийКонтекстИсполнения.НастройкиВыполнения, ИмяНастройки, ЗначениеПоУмолчанию);
КонецЕсли;
ИначеЕсли КонтекстИсполнения.Тест <> Неопределено И КонтекстИсполнения.Тест.НастройкиВыполнения.Свойство(ИмяНастройки) Тогда
@ -77,7 +106,7 @@
Иначе
ГлобальныеНастройки = ЮТКонтекст.ГлобальныеНастройкиВыполнения();
ГлобальныеНастройки = ЮТКонтекстСлужебный.ГлобальныеНастройкиВыполнения();
Если ГлобальныеНастройки.Свойство(ИмяНастройки) Тогда
Значение = ГлобальныеНастройки[ИмяНастройки];

File diff suppressed because it is too large Load Diff

View File

@ -106,13 +106,13 @@
Функция ЭтоАнглийскийВстроенныйЯзык() Экспорт
Возврат ЮТМетаданныеПовтИсп.ВариантВстроенногоЯзыка() = "English";
Возврат ЮТМетаданныеСлужебныйПовтИсп.ВариантВстроенногоЯзыка() = "English";
КонецФункции
Функция ЭтоРусскийВстроенныйЯзык() Экспорт
Возврат ЮТМетаданныеПовтИсп.ВариантВстроенногоЯзыка() = "Русский";
Возврат ЮТМетаданныеСлужебныйПовтИсп.ВариантВстроенногоЯзыка() = "Русский";
КонецФункции

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="b201e731-51e5-44cd-808a-b51b4fed556f">
<name>ЮТОбщийВызовСервера</name>
<name>ЮТОбщийСлужебныйВызовСервера</name>
<synonym>
<key>ru</key>
<value>Общий (вызов сервера)</value>

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<suppress:SuppressGenericObject xmlns:suppress="http://g5.1c.ru/v8/dt/check/suppress/model" fqn="CommonModule.ЮТОтчет">
<suppressions key="com.e1c.v8codestyle.md:common-module-name-client" value="true"/>
</suppress:SuppressGenericObject>

View File

@ -20,9 +20,9 @@
Функция ПараметрыГенерацииОтчета() Экспорт
Параметры = ЮТФабрика.ПараметрыГенератораОтчета();
Параметры = ЮТФабрикаСлужебный.ПараметрыГенератораОтчета();
ОписаниеФормата = ЮТФабрика.ОписаниеФорматаОтчета("allure", "Allure 2 (json)");
ОписаниеФормата = ЮТФабрикаСлужебный.ОписаниеФорматаОтчета("allure", "Allure 2 (json)");
ОписаниеФормата.ЗаписьВКаталог = Истина;
ОписаниеФормата.СамостоятельнаяЗаписьОтчета = Истина;
Параметры.Форматы.Вставить(ОписаниеФормата.Идентификатор, ОписаниеФормата);
@ -130,8 +130,8 @@
Для Каждого ОписаниеОшибки Из РезультатТеста.Ошибки Цикл
Описание.statusDetails.message = ЮТОбщий.ДобавитьСтроку(Описание.statusDetails.message, ОписаниеОшибки.Сообщение, Символы.ПС);
Описание.statusDetails.trace = ЮТОбщий.ДобавитьСтроку(Описание.statusDetails.trace, ОписаниеОшибки.Стек, Символы.ПС);
Описание.statusDetails.message = ЮТСтроки.ДобавитьСтроку(Описание.statusDetails.message, ОписаниеОшибки.Сообщение, Символы.ПС);
Описание.statusDetails.trace = ЮТСтроки.ДобавитьСтроку(Описание.statusDetails.trace, ОписаниеОшибки.Стек, Символы.ПС);
КонецЦикла;

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="7126a7d9-4afd-4a54-8e1b-191773cfc65b">
<name>ЮТОтчетAllure</name>
<name>ЮТОтчетAllureСлужебный</name>
<synonym>
<key>ru</key>
<value>Отчет allure</value>

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<suppress:SuppressGenericObject xmlns:suppress="http://g5.1c.ru/v8/dt/check/suppress/model" fqn="CommonModule.ЮТОтчетJSON">
<suppressions key="com.e1c.v8codestyle.md:common-module-name-client" value="true"/>
</suppress:SuppressGenericObject>

View File

@ -20,9 +20,9 @@
Функция ПараметрыГенерацииОтчета() Экспорт
Параметры = ЮТФабрика.ПараметрыГенератораОтчета();
Параметры = ЮТФабрикаСлужебный.ПараметрыГенератораОтчета();
ОписаниеФормата = ЮТФабрика.ОписаниеФорматаОтчета("dumpjson", "Дамп результата тестирования в json");
ОписаниеФормата = ЮТФабрикаСлужебный.ОписаниеФорматаОтчета("dumpjson", "Дамп результата тестирования в json");
ОписаниеФормата.ИмяФайлаПоУмолчанию = "report.json";
ОписаниеФормата.ФильтрВыбораФайла = "Дамп результата тестирования (*.json)|*.json";
Параметры.Форматы.Вставить(ОписаниеФормата.Идентификатор, ОписаниеФормата);
@ -34,8 +34,8 @@
// Формирует отчет в формате JSON
//
// Параметры:
// РезультатВыполнения - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля
// Формат - см. ЮТФабрика.ОписаниеФорматаОтчета
// РезультатВыполнения - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля
// Формат - см. ЮТФабрикаСлужебный.ОписаниеФорматаОтчета
// Возвращаемое значение:
// ДвоичныеДанные - Данные отчета
Функция ДанныеОтчета(РезультатВыполнения, Формат) Экспорт

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="f477925a-39e1-4150-a0c4-897bbaee9433">
<name>ЮТОтчетJSON</name>
<name>ЮТОтчетJSONСлужебный</name>
<synonym>
<key>ru</key>
<value>Отчет JSON</value>

View File

@ -20,9 +20,9 @@
Функция ПараметрыГенерацииОтчета() Экспорт
Параметры = ЮТФабрика.ПараметрыГенератораОтчета();
Параметры = ЮТФабрикаСлужебный.ПараметрыГенератораОтчета();
ОписаниеФормата = ЮТФабрика.ОписаниеФорматаОтчета("jUnit", "JUnit");
ОписаниеФормата = ЮТФабрикаСлужебный.ОписаниеФорматаОтчета("jUnit", "JUnit");
ОписаниеФормата.ИмяФайлаПоУмолчанию = "junit.xml";
ОписаниеФормата.ФильтрВыбораФайла = "jUnit(*.xml)|*.xml";
Параметры.Форматы.Вставить(ОписаниеФормата.Идентификатор, ОписаниеФормата);
@ -34,8 +34,8 @@
// Формирует отчет в формате jUnit
//
// Параметры:
// РезультатВыполнения - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля
// Формат - см. ЮТФабрика.ОписаниеФорматаОтчета
// РезультатВыполнения - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля
// Формат - см. ЮТФабрикаСлужебный.ОписаниеФорматаОтчета
//
// Возвращаемое значение:
// ДвоичныеДанные - Данные отчета
@ -53,7 +53,7 @@
// Формирует отчет (xml-файл) и возвращает его в виде двоичных данных
//
// Параметры:
// РезультатТестирования - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля
// РезультатТестирования - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля
// Возвращаемое значение:
// ДвоичныеДанные - полученный отчет
Функция СформироватьОтчетОТестировании(РезультатТестирования)
@ -104,7 +104,7 @@
Для Каждого ОписаниеОшибки Из РезультатТеста.Ошибки Цикл
Статус = ЮТРегистрацияОшибок.СтатусОшибки(ОписаниеОшибки.ТипОшибки);
Статус = ЮТРегистрацияОшибокСлужебный.СтатусОшибки(ОписаниеОшибки.ТипОшибки);
ИмяУзла = Неопределено;
ЗаписатьЗначения = Ложь;

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="44860213-5b5a-4765-960c-07c8d1ca6f08">
<name>ЮТОтчетJUnit</name>
<name>ЮТОтчетJUnitСлужебный</name>
<synonym>
<key>ru</key>
<value>Отчет jUnit</value>

View File

@ -21,7 +21,7 @@
// СформироватьОтчет
// Формирует отчет о результатах тестирования по заданным параметрам
// Параметры:
// РезультатВыполнения - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля
// РезультатВыполнения - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля
// ПараметрыЗапуска - Структура - Параметры запуска, см. ЮТФабрика.ПараметрыЗапуска
// Обработчик - ОписаниеОповещения
Процедура СформироватьОтчет(РезультатВыполнения, ПараметрыЗапуска, Обработчик) Экспорт
@ -56,16 +56,16 @@
// Возвращаемое значение:
// Структура - Поддерживаемые форматы отчетов
// + Ключ - Идентификатор формата
// + Значение - см. ЮТФабрика.ОписаниеФорматаОтчета
// + Значение - см. ЮТФабрикаСлужебный.ОписаниеФорматаОтчета
Функция ПоддерживаемыеФорматыОтчетов() Экспорт
Модули = ЮТРасширения.ГенераторыОтчетов();
Модули = ЮТРасширенияСлужебный.ГенераторыОтчетов();
Форматы = Новый Структура;
Для Каждого Модуль Из Модули Цикл
Параметры = Модуль.ПараметрыГенерацииОтчета();
ЮТОбщий.ОбъединитьВСтруктуру(Форматы, Параметры.Форматы);
ЮТКоллекции.ДополнитьСтруктуру(Форматы, Параметры.Форматы);
КонецЦикла;
@ -106,7 +106,7 @@
Функция МодульФормирования(Формат)
Модули = ЮТРасширения.ГенераторыОтчетов();
Модули = ЮТРасширенияСлужебный.ГенераторыОтчетов();
Для Каждого Модуль Из Модули Цикл

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="335b2e32-96e1-49dd-ace4-5b2eb8478c12">
<name>ЮТОтчет</name>
<name>ЮТОтчетСлужебный</name>
<synonym>
<key>ru</key>
<value>Отчет</value>

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<suppress:SuppressGenericObject xmlns:suppress="http://g5.1c.ru/v8/dt/check/suppress/model" fqn="CommonModule.ЮТПараметрыЗапуска">
<suppressions key="com.e1c.v8codestyle.md:common-module-name-client" value="true"/>
</suppress:SuppressGenericObject>

View File

@ -34,7 +34,7 @@
Исключение
ЮТРегистрацияОшибок.ЗарегистрироватьОшибкуИнициализацииДвижка(ИнформацияОбОшибке(), "Ошибка чтения параметров запуска");
ЮТРегистрацияОшибокСлужебный.ЗарегистрироватьОшибкуИнициализацииДвижка(ИнформацияОбОшибке(), "Ошибка чтения параметров запуска");
Параметры = ЮТФабрика.ПараметрыЗапуска();
КонецПопытки;
@ -73,7 +73,7 @@
Возврат Параметры;
КонецЕсли;
ПарыКлючЗначение = ЮТОбщий.РазложитьСтрокуВМассивПодстрок(ПараметрыЗапускаСтрокой, ";");
ПарыКлючЗначение = ЮТСтроки.РазделитьСтроку(ПараметрыЗапускаСтрокой, ";");
ПараметрыЗапуска = Новый Структура;
@ -83,7 +83,7 @@
Продолжить;
КонецЕсли;
КлючЗначение = ЮТОбщий.РазложитьСтрокуВМассивПодстрок(Пара, "=");
КлючЗначение = ЮТСтроки.РазделитьСтроку(Пара, "=");
Если КлючЗначение.Количество() = 1 Тогда
ПараметрыЗапуска.Вставить(КлючЗначение[0], Истина);
@ -93,7 +93,7 @@
КонецЦикла;
ЗначениеКлючаЗапуска = ЮТОбщий.ЗначениеСтруктуры(ПараметрыЗапуска, КлючЗапуска(), Ложь);
ЗначениеКлючаЗапуска = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска, КлючЗапуска(), Ложь);
Если ТипЗнч(ЗначениеКлючаЗапуска) = Тип("Булево") Тогда

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="a0e947cd-ee15-4ae9-bf95-21ed64042227">
<name>ЮТПараметрыЗапуска</name>
<name>ЮТПараметрыЗапускаСлужебный</name>
<synonym>
<key>ru</key>
<value>Параметры</value>

View File

@ -196,7 +196,7 @@
Возврат Пол;
КонецЕсли;
Варианты = ЮТОбщий.ВыгрузитьЗначения(ПолЧеловека(), "Значение");
Варианты = ЮТКоллекции.ВыгрузитьЗначения(ПолЧеловека(), "Значение");
Возврат ЮТТестовыеДанные.СлучайноеЗначениеИзСписка(Варианты);
КонецФункции

View File

@ -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.
@ -29,7 +29,7 @@
// ФиксированныйМассив из Строка
Функция Словарь(ИмяРеализации, ИмяСловаря, Знач КодЛокализации = Неопределено) Экспорт
КодЛокализации = ?(КодЛокализации = Неопределено, ЮТПодражатель.Локализация(), КодЛокализации);
Возврат ЮТПодражательПовтИсп.Словарь(ИмяРеализации, ИмяСловаря, КодЛокализации);
Возврат ЮТПодражательСлужебныйПовтИсп.Словарь(ИмяРеализации, ИмяСловаря, КодЛокализации);
КонецФункции
// Случайное значение из словаря.
@ -49,7 +49,7 @@
// см. НовыйКонтекст
Функция Контекст() Экспорт
//@skip-check constructor-function-return-section
Возврат ЮТКонтекст.ЗначениеКонтекста(КлючКонтекста());
Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(КлючКонтекста());
КонецФункции
// Инициализирует подражатель
@ -58,7 +58,7 @@
// ОбщийМодуль - Этот модуль для замыкания
Функция Инициализировать() Экспорт
Если Контекст() = Неопределено Тогда
ЮТКонтекст.УстановитьЗначениеКонтекста(КлючКонтекста(), НовыйКонтекст());
ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(КлючКонтекста(), НовыйКонтекст());
КонецЕсли;
Возврат ЮТПодражатель;
КонецФункции

View File

@ -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.

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="1e6f3296-03af-4bd2-b52a-d89f576e7166">
<name>ЮТПодражательВызовСервера</name>
<name>ЮТПодражательСлужебныйВызовСервера</name>
<synonym>
<key>ru</key>
<value>Подражатель вызов сервера</value>

View File

@ -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.
@ -29,7 +29,7 @@
// ФиксированныйМассив из Строка
Функция Словарь(ИмяРеализации, ИмяСловаря, КодЛокализации) Экспорт
Кодификатор = КодификаторСловаря(ИмяРеализации, ИмяСловаря, КодЛокализации);
Возврат Новый ФиксированныйМассив(ЮТПодражательВызовСервера.ДанныеСловаря(Кодификатор));
Возврат Новый ФиксированныйМассив(ЮТПодражательСлужебныйВызовСервера.ДанныеСловаря(Кодификатор));
КонецФункции
#КонецОбласти

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="6974dbbd-182e-43c6-94e3-e19696766e0f">
<name>ЮТПодражательПовтИсп</name>
<name>ЮТПодражательСлужебныйПовтИсп</name>
<synonym>
<key>ru</key>
<value>Подражатель повт исп</value>

View File

@ -306,7 +306,7 @@
// Массив из см. ЮТФабрика.ВыражениеПредиката - Набор предикатов
Функция Получить() Экспорт
Возврат ЮТОбщий.СкопироватьМассив(Контекст().Предикаты);
Возврат ЮТКоллекции.СкопироватьМассив(Контекст().Предикаты);
КонецФункции
@ -325,7 +325,7 @@
// ОбщийМодуль - Этот модуль для замыкания
Функция Инициализировать(Условия = Неопределено) Экспорт
ЮТКонтекст.УстановитьЗначениеКонтекста(КлючКонтекста(), НовыйКонтекст());
ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(КлючКонтекста(), НовыйКонтекст());
Если ЗначениеЗаполнено(Условия) Тогда
Для Каждого Элемент Из Условия Цикл
@ -370,7 +370,7 @@
Функция Контекст()
//@skip-check constructor-function-return-section
Возврат ЮТКонтекст.ЗначениеКонтекста(КлючКонтекста());
Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(КлючКонтекста());
КонецФункции

View File

@ -19,19 +19,19 @@
#Область СлужебныйПрограммныйИнтерфейс
// Проверить предикат.
//
//
// Параметры:
// Значение - Произвольный
// Предикаты - Массив Из см. ЮТФабрика.ВыражениеПредиката
// ПараметрыСообщенийОбОшибке - см. ПараметрыСообщенийОбОшибке
// ПараметрыСравнения - Неопределено
// - Структура - Параметры сравнения значений, для разных выражений испльзуются свои параметры
//
//
// Возвращаемое значение:
// см. ЮТФабрика.ОписаниеРезультатаПроверки
// см. ЮТФабрикаСлужебный.ОписаниеРезультатаПроверки
Функция ПроверитьПредикаты(Знач Значение, Знач Предикаты, Знач ПараметрыСообщенийОбОшибке = Неопределено, ПараметрыСравнения = Неопределено) Экспорт
Результат = ЮТФабрика.ОписаниеРезультатаПроверки();
Результат = ЮТФабрикаСлужебный.ОписаниеРезультатаПроверки();
Если ПараметрыСообщенийОбОшибке = Неопределено Тогда
ПараметрыСообщенийОбОшибке = ПараметрыСообщенийОбОшибке();
@ -40,7 +40,7 @@
Предикаты = НаборПредикатов(Предикаты);
Для Каждого Выражение Из Предикаты Цикл
ЮТСравнениеКлиентСервер.ПроверитьВыражениеПредиката(Значение, Выражение, Результат, ПараметрыСообщенийОбОшибке, ПараметрыСравнения);
ЮТСравнениеСлужебныйКлиентСервер.ПроверитьВыражениеПредиката(Значение, Выражение, Результат, ПараметрыСообщенийОбОшибке, ПараметрыСравнения);
Если НЕ Результат.Успешно Тогда
Прервать;
КонецЕсли;
@ -52,12 +52,12 @@
КонецФункции
// Набор предикатов.
//
//
// Параметры:
// Предикаты - Массив из см. ЮТФабрика.ВыражениеПредиката - Набор утверждений. см. ЮТест.Предикат
// - см. ЮТФабрика.ВыражениеПредиката
// - CommonModule.ЮТПредикаты - Модуль настройки предикатов, см. ЮТест.Предикат
//
//
// Возвращаемое значение:
// Массив из см. ЮТФабрика.ВыражениеПредиката - Набор предикатов
Функция НаборПредикатов(Знач Предикаты) Экспорт
@ -69,7 +69,7 @@
ИначеЕсли ЭтоПредикатМассив(ТипПараметра, Предикаты) Тогда
Результат = Предикаты;
ИначеЕсли ЭтоПредикатСтруктура(ТипПараметра, Предикаты) Тогда
Результат = ЮТОбщий.ЗначениеВМассиве(Предикаты);
Результат = ЮТКоллекции.ЗначениеВМассиве(Предикаты);
Иначе
ВызватьИсключение ЮТИсключения.НекорректныеПараметрыМетода("ЮТПредикатыКлиентСервер.НаборПредикатов");
КонецЕсли;
@ -79,10 +79,10 @@
КонецФункции
// Это предикат
//
//
// Параметры:
// Предикаты - Произвольный - значение, для которого будет определено является ли оно предикатом или нет
//
//
// Возвращаемое значение:
// Булево
Функция ЭтоПредикат(Предикаты) Экспорт
@ -90,8 +90,8 @@
ТипПараметра = ТипЗнч(Предикаты);
Возврат ЭтоПредикатОбщийМодуль(ТипПараметра, Предикаты)
Или ЭтоПредикатМассив(ТипПараметра, Предикаты)
Или ЭтоПредикатСтруктура(ТипПараметра, Предикаты);
ИЛИ ЭтоПредикатМассив(ТипПараметра, Предикаты)
ИЛИ ЭтоПредикатСтруктура(ТипПараметра, Предикаты);
КонецФункции
@ -167,12 +167,12 @@
КонецФункции
// Параметры сообщений об ошибке.
//
//
// Параметры:
// ОписаниеПроверки - Строка - Описание конкретной проверки
// ТекстПроверяемоеЗначение - Строка - Человекочитаемое описание проверяемого значения
// ПредставлениеПроверяемогоЗначения - Неопределено - Представление проверяемого значения
//
//
// Возвращаемое значение:
// Структура - Параметры сообщений об ошибке:
// * ОписаниеПроверки - Неопределено, Строка - Описание конкретной проверки
@ -203,8 +203,8 @@
ПроверяемоеЗначение = СтрШаблон(ШаблонСвойства, ВыражениеПредиката.ИмяРеквизита) + " ";
КонецЕсли;
Выражение = ЮТСообщенияСлужебный.ПодставитьПредставлениеЗначенияВШаблон(
ШаблонВыражения(ВыражениеПредиката.ВидСравнения), ВыражениеПредиката.Значение);
Выражение = ЮТСообщенияСлужебный.ПодставитьПредставлениеЗначенияВШаблон(ШаблонВыражения(ВыражениеПредиката.ВидСравнения),
ВыражениеПредиката.Значение);
Возврат СтрШаблон("%1%2", ПроверяемоеЗначение, Выражение);

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="5b901b35-80b5-4dfc-87f9-dfb014f682be">
<name>ЮТПредикатыКлиентСервер</name>
<name>ЮТПредикатыСлужебныйКлиентСервер</name>
<synonym>
<key>ru</key>
<value>Предикаты клиент сервер</value>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="3183c284-253d-4826-9b75-d540f433c4c1">
<name>ЮТПреобразования</name>
<name>ЮТПреобразованияСлужебный</name>
<synonym>
<key>ru</key>
<value>Преобразования</value>

View File

@ -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.

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="046f36ab-7601-4cea-9e2a-275c438cba47">
<name>ЮТРасширения</name>
<name>ЮТРасширенияСлужебный</name>
<synonym>
<key>ru</key>
<value>Расширения функциональности</value>

View File

@ -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.
@ -21,15 +21,15 @@
#Область ФиксацияОшибокВРезультате
// Регистрирует ошибку обработки события исполнения тестов
//
//
// Параметры:
// ИмяСобытия - Строка
// ОписаниеСобытия - см. ЮТФабрика.ОписаниеСобытияИсполненияТестов
// ОписаниеСобытия - см. ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов
// Ошибка - ИнформацияОбОшибке
// - Строка
Процедура ЗарегистрироватьОшибкуСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибка) Экспорт
ТипОшибки = ЮТФабрика.ТипыОшибок().ОшибкаОбработкиСобытия;
ТипОшибки = ЮТФабрикаСлужебный.ТипыОшибок().ОшибкаОбработкиСобытия;
Пояснение = ЮТСообщенияСлужебный.СообщениеОбОшибкеСобытия(ИмяСобытия, Ошибка);
ДанныеОшибки = ДанныеОшибки(Ошибка, Пояснение, ТипОшибки);
@ -46,29 +46,29 @@
КонецПроцедуры
// Регистрирует ошибку загрузки тестов
//
//
// Параметры:
// Объект - Структура - см. ЮТФабрика.ОписаниеТестовогоМодуля или см. ЮТФабрика.ОписаниеТестовогоНабора или см. ЮТФабрика.ОписаниеТеста
// Объект - Структура - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля или см. ЮТФабрикаСлужебный.ОписаниеТестовогоНабора или см. ЮТФабрикаСлужебный.ОписаниеТеста
// Описание - Строка - Описания ошибки, места возникновения
// Ошибка - ИнформацияОбОшибке
Процедура ЗарегистрироватьОшибкуЧтенияТестов(Объект, Описание, Ошибка) Экспорт
ДанныеОшибки = ДанныеОшибки(Ошибка, Описание, ЮТФабрика.ТипыОшибок().ЧтенияТестов);
ДанныеОшибки = ДанныеОшибки(Ошибка, Описание, ЮТФабрикаСлужебный.ТипыОшибок().ЧтенияТестов);
Объект.Ошибки.Добавить(ДанныеОшибки);
КонецПроцедуры
// Регистрирует ошибку выполнения теста
// Параметры:
// Тест - см. ЮТФабрика.ОписаниеИсполняемогоТеста
// Тест - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТеста
// Ошибка - ИнформацияОбОшибке
Процедура ЗарегистрироватьОшибкуВыполненияТеста(Тест, Ошибка) Экспорт
ТипОшибки = ТипОшибки(Ошибка, Тест.ПолноеИмяМетода);
Если ТипОшибки = ЮТФабрика.ТипыОшибок().Утверждений Тогда
Если ТипОшибки = ЮТФабрикаСлужебный.ТипыОшибок().Утверждений Тогда
ДанныеОшибки = ДанныеОшибкиУтверждений(Ошибка);
ИначеЕсли ТипОшибки = ЮТФабрика.ТипыОшибок().Пропущен Тогда
ИначеЕсли ТипОшибки = ЮТФабрикаСлужебный.ТипыОшибок().Пропущен Тогда
ДанныеОшибки = ДанныеОшибкиПропуска(Ошибка);
Иначе
ДанныеОшибки = ДанныеОшибки(Ошибка, ЮТСообщенияСлужебный.КраткоеСообщениеОшибки(Ошибка), ТипОшибки);
@ -80,22 +80,22 @@
// Регистрирует ошибку выполнения теста
// Параметры:
// Объект - см. ЮТФабрика.ОписаниеИсполняемогоТеста
// Объект - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТеста
// Сообщение - Строка
Процедура ЗарегистрироватьПростуюОшибкуВыполнения(Объект, Сообщение) Экспорт
ДанныеОшибки = ДанныеОшибки(Неопределено, Сообщение, ЮТФабрика.ТипыОшибок().Исполнения);
ДанныеОшибки = ДанныеОшибки(Неопределено, Сообщение, ЮТФабрикаСлужебный.ТипыОшибок().Исполнения);
Объект.Ошибки.Добавить(ДанныеОшибки);
КонецПроцедуры
// Регистрирует ошибку режима выполнения теста
// Параметры:
// Объект - см. ЮТФабрика.ОписаниеИсполняемогоТеста
// Объект - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТеста
// Ошибка - Строка
Процедура ЗарегистрироватьОшибкуРежимаВыполнения(Объект, Ошибка) Экспорт
ДанныеОшибки = ДанныеОшибки(Неопределено, Ошибка, ЮТФабрика.ТипыОшибок().НекорректныйКонтекстИсполнения);
ДанныеОшибки = ДанныеОшибки(Неопределено, Ошибка, ЮТФабрикаСлужебный.ТипыОшибок().НекорректныйКонтекстИсполнения);
Объект.Ошибки.Добавить(ДанныеОшибки);
КонецПроцедуры
@ -103,13 +103,13 @@
#КонецОбласти
// Вызывает ошибку выполнения теста, на основании перехваченной ошибки
//
//
// Параметры:
// ИнформацияОбОшибке - ИнформацияОбОшибке
// ОписаниеПроверки - см. ЮТФабрика.ОписаниеПроверки
// ОписаниеПроверки - см. ЮТФабрикаСлужебный.ОписаниеПроверки
Процедура СгенерироватьОшибкуВыполнения(ИнформацияОбОшибке, ОписаниеПроверки = Неопределено) Экспорт
СтруктураОшибки = ЮТКонтекст.КонтекстОшибки();
СтруктураОшибки = ЮТКонтекстСлужебный.КонтекстОшибки();
СтруктураОшибки.ОшибкаУтверждения = Ложь;
ВызватьОшибкуИсполнения(ИнформацияОбОшибке, ОписаниеПроверки);
@ -118,9 +118,9 @@
// Вызывает ошибку сравнения значений
// При этом сохраняет в контекст состояние, для дальнейшей обработки
//
//
// Параметры:
// ОписаниеПроверки - см. ЮТФабрика.ОписаниеПроверки
// ОписаниеПроверки - см. ЮТФабрикаСлужебный.ОписаниеПроверки
// Сообщение - Строка
// ПроверяемоеЗначение - Произвольный
// ОжидаемоеЗначение - Произвольный
@ -139,9 +139,9 @@
// Вызывает ошибку проверки утверждений
// При этом сохраняет в контекст состояние, для дальнейшей обработки
//
//
// Параметры:
// ОписаниеПроверки - см. ЮТФабрика.ОписаниеПроверки
// ОписаниеПроверки - см. ЮТФабрикаСлужебный.ОписаниеПроверки
// Сообщение - Строка
// ПроверяемоеЗначение - Произвольный
// ОбъектПроверки - Строка - Человекочитаемое описание проверяемого значения
@ -155,7 +155,7 @@
Процедура Пропустить(Сообщение) Экспорт
СтруктураОшибки = ЮТКонтекст.КонтекстОшибки();
СтруктураОшибки = ЮТКонтекстСлужебный.КонтекстОшибки();
СтруктураОшибки.ОшибкаУтверждения = Ложь;
СообщениеОбОшибке = СообщениеОбОшибке(Сообщение, ПрефиксОшибкиПропуска());
@ -174,10 +174,10 @@
КонецФункции
// Вызывает ошибку выполнения теста
// Служебный метод, предварительно нужно самостоятельно настроить контекст (см. ЮТКонтекст.КонтекстОшибки)
// Служебный метод, предварительно нужно самостоятельно настроить контекст (см. ЮТКонтекстСлужебный.КонтекстОшибки)
// Параметры:
// ТекстСообщения - Строка
// ОписаниеПроверки - см. ЮТФабрика.ОписаниеПроверки
// ОписаниеПроверки - см. ЮТФабрикаСлужебный.ОписаниеПроверки
Процедура ВызватьОшибкуПроверки(Знач ТекстСообщения, ОписаниеПроверки = Неопределено) Экспорт
СообщениеОбОшибке = СообщениеОбОшибке(ТекстСообщения, ПрефиксОшибкиУтверждений(), ОписаниеПроверки);
@ -192,16 +192,16 @@
КонецПроцедуры
// Возвращает тип ошибки
//
//
// Параметры:
// Ошибка - ИнформацияОбОшибке
// ИмяВызываемогоМетода - Строка - Имя вызываемого метода
//
//
// Возвращаемое значение:
// Строка - см. ЮТФабрика.ТипыОшибок
// Строка - см. ЮТФабрикаСлужебный.ТипыОшибок
Функция ТипОшибки(Ошибка, ИмяВызываемогоМетода) Экспорт
ТипыОшибок = ЮТФабрика.ТипыОшибок();
ТипыОшибок = ЮТФабрикаСлужебный.ТипыОшибок();
Описание = Ошибка.Описание;
@ -297,7 +297,7 @@
Функция СтатусОшибки(ТипОшибки) Экспорт
СтатусОшибки = ЮТФабрика.ПараметрыТиповОшибок()[ТипОшибки].Статус;
СтатусОшибки = ЮТФабрикаСлужебный.ПараметрыТиповОшибок()[ТипОшибки].Статус;
Если СтатусОшибки = Неопределено Тогда
СтатусОшибки = ЮТФабрика.СтатусыИсполненияТеста().Сломан;
@ -309,29 +309,29 @@
Процедура УстановитьДанныеОшибкиСравнения(ПроверяемоеЗначение, ОжидаемоеЗначение) Экспорт
СтруктураОшибки = ЮТКонтекст.КонтекстОшибки();
СтруктураОшибки = ЮТКонтекстСлужебный.КонтекстОшибки();
СтруктураОшибки.ОшибкаУтверждения = Истина;
СтруктураОшибки.ОшибкаУтверждения = Истина;
СтруктураОшибки.ПроверяемоеЗначение = ЮТОбщий.ПредставлениеЗначения(ПроверяемоеЗначение);
СтруктураОшибки.ОжидаемоеЗначение = ЮТОбщий.ПредставлениеЗначения(ОжидаемоеЗначение);
СтруктураОшибки.ОжидаемоеЗначение = ЮТОбщий.ПредставлениеЗначения(ОжидаемоеЗначение);
КонецПроцедуры
Процедура УстановитьДанныеОшибкиУтверждения(ПроверяемоеЗначение) Экспорт
СтруктураОшибки = ЮТКонтекст.КонтекстОшибки();
СтруктураОшибки = ЮТКонтекстСлужебный.КонтекстОшибки();
СтруктураОшибки.ОшибкаУтверждения = Истина;
СтруктураОшибки.ОшибкаУтверждения = Истина;
СтруктураОшибки.ПроверяемоеЗначение = ЮТОбщий.ПредставлениеЗначения(ПроверяемоеЗначение);
СтруктураОшибки.ОжидаемоеЗначение = Неопределено;
СтруктураОшибки.ОжидаемоеЗначение = Неопределено;
КонецПроцедуры
Функция ДобавитьОписания(ТекстОшибки, ОписаниеПроверки = Неопределено) Экспорт
Если ОписаниеПроверки <> Неопределено Тогда
ПрефиксОшибки = ЮТОбщий.ДобавитьСтроку(ОписаниеПроверки.ПрефиксОшибки, ОписаниеПроверки.ОписаниеПроверки, " ");
СообщениеОбОшибке = ЮТОбщий.ДобавитьСтроку(ПрефиксОшибки, ТекстОшибки, ": ");
ПрефиксОшибки = ЮТСтроки.ДобавитьСтроку(ОписаниеПроверки.ПрефиксОшибки, ОписаниеПроверки.ОписаниеПроверки, " ");
СообщениеОбОшибке = ЮТСтроки.ДобавитьСтроку(ПрефиксОшибки, ТекстОшибки, ": ");
Иначе
СообщениеОбОшибке = ТекстОшибки;
КонецЕсли;
@ -355,7 +355,7 @@
Процедура ДобавитьОшибкуСравненияКРезультатуПроверки(РезультатПроверки, Сообщение, ПроверяемоеЗначение, ОжидаемоеЗначение) Экспорт
ОписаниеКонтекстаОшибки = ЮТФабрика.ОписаниеКонтекстаОшибки();
ОписаниеКонтекстаОшибки = ЮТФабрикаСлужебный.ОписаниеКонтекстаОшибки();
ОписаниеКонтекстаОшибки.ПроверяемоеЗначение = ПроверяемоеЗначение;
ОписаниеКонтекстаОшибки.ОжидаемоеЗначение = ОжидаемоеЗначение;
ОписаниеКонтекстаОшибки.ОшибкаУтверждения = Истина;
@ -368,7 +368,7 @@
Процедура ДобавитьПояснениеОшибки(Пояснение) Экспорт
Детали = ЮТКонтекст.КонтекстДеталиОшибки();
Детали = ЮТКонтекстСлужебный.КонтекстДеталиОшибки();
Установить = Детали = Неопределено;
Если Установить Тогда
@ -378,7 +378,7 @@
Детали.Добавить(Пояснение);
Если Установить Тогда
ЮТКонтекст.УстановитьКонтекстДеталиОшибки(Детали);
ЮТКонтекстСлужебный.УстановитьКонтекстДеталиОшибки(Детали);
КонецЕсли;
КонецПроцедуры
@ -392,13 +392,13 @@
Функция ДанныеОшибки(Ошибка, Знач Сообщение, ТипОшибки)
#Если Сервер Тогда
Детали = ЮТКонтекст.КонтекстДеталиОшибки(Истина);
Детали = ЮТКонтекстСлужебный.КонтекстДеталиОшибки(Истина);
#Иначе
ДеталиСервер = ЮТКонтекст.КонтекстДеталиОшибки(Истина);
ДеталиКлиент = ЮТКонтекст.КонтекстДеталиОшибки();
ДеталиСервер = ЮТКонтекстСлужебный.КонтекстДеталиОшибки(Истина);
ДеталиКлиент = ЮТКонтекстСлужебный.КонтекстДеталиОшибки();
Если ЗначениеЗаполнено(ДеталиКлиент) И ЗначениеЗаполнено(ДеталиСервер) Тогда
ЮТОбщий.ДополнитьМассив(ДеталиСервер, ДеталиКлиент);
ЮТКоллекции.ДополнитьМассив(ДеталиСервер, ДеталиКлиент);
Детали = ДеталиСервер;
ИначеЕсли ЗначениеЗаполнено(ДеталиКлиент) Тогда
Детали = ДеталиКлиент;
@ -410,13 +410,13 @@
#КонецЕсли
Если ЗначениеЗаполнено(Детали) Тогда
ЮТКонтекст.УстановитьКонтекстДеталиОшибки(Новый Массив());
ЮТКонтекстСлужебный.УстановитьКонтекстДеталиОшибки(Новый Массив());
Детали.Добавить(Сообщение);
Сообщение = СтрСоединить(Детали, Символы.ПС);
КонецЕсли;
ДанныеОшибки = ЮТФабрика.ОписаниеВозникшейОшибки(ТипОшибки + ": " + Сообщение);
ДанныеОшибки = ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки(ТипОшибки + ": " + Сообщение);
Если Ошибка <> Неопределено Тогда
ДанныеОшибки.Стек = СтекОшибки(Ошибка);
@ -442,12 +442,12 @@
Описание = ИзвлечьТекстОшибки(Ошибка, ПрефиксОшибкиУтверждений());
ДанныеОшибки = ЮТФабрика.ОписаниеОшибкиСравнения(Описание);
ДанныеОшибки = ЮТФабрикаСлужебный.ОписаниеОшибкиСравнения(Описание);
ДанныеОшибки.Стек = СтекОшибки(Ошибка);
ДобавитьСообщенияПользователю(ДанныеОшибки);
СтруктураОшибки = ЮТКонтекст.КонтекстОшибки();
СтруктураОшибки = ЮТКонтекстСлужебный.КонтекстОшибки();
Если СтруктураОшибки <> Неопределено И СтруктураОшибки.ОшибкаУтверждения Тогда
ДанныеОшибки.ПроверяемоеЗначение = СтруктураОшибки.ПроверяемоеЗначение;
@ -462,7 +462,7 @@
Описание = ИзвлечьТекстОшибки(Ошибка, ПрефиксОшибкиПропуска());
ДанныеОшибки = ЮТФабрика.ОписаниеОшибкиПропуска(Описание);
ДанныеОшибки = ЮТФабрикаСлужебный.ОписаниеОшибкиПропуска(Описание);
Возврат ДанныеОшибки;
@ -487,7 +487,7 @@
Функция МодулиУтверждений()
Возврат ЮТОбщий.ЗначениеВМассиве("ЮТУтверждения");
Возврат ЮТКоллекции.ЗначениеВМассиве("ЮТУтверждения");
КонецФункции
@ -502,11 +502,11 @@
ТекстОшибки = "";
Если Ошибка = Неопределено Тогда
ТекстОшибки = "Неизвестная ошибка.";
ИначеЕсли ТипЗнч(Ошибка) = Тип("Строка") Тогда
ТекстОшибки = Ошибка;
ИначеЕсли ЭтоОшибкаСлужебногоМодуля(Ошибка) Тогда
@ -523,28 +523,28 @@
Иначе
Если Не ПустаяСтрока(Ошибка.ИмяМодуля) Тогда
Если НЕ ПустаяСтрока(Ошибка.ИмяМодуля) Тогда
ТекстОшибки = ТекстОшибки + "{"
+ Ошибка.ИмяМодуля + "("
+ Ошибка.НомерСтроки + ")}: ";
КонецЕсли;
ТекстОшибки = ТекстОшибки + Ошибка.Описание + ?(ПустаяСтрока(Ошибка.ИсходнаяСтрока), "", "
|" + Ошибка.ИсходнаяСтрока);
Если Ошибка.Причина <> Неопределено Тогда
ТекстОшибки = ТекстОшибки + "
|
|ПРИЧИНА №" + Формат(НомерПричины + 1, "ЧГ=0") + "
|" + ИнформациюОбОшибкеВСтроку(Ошибка.Причина, НомерПричины + 1);
КонецЕсли;
КонецЕсли;
Возврат ТекстОшибки;
КонецФункции
@ -568,14 +568,14 @@
Процедура ДобавитьСообщенияПользователю(ДанныеОшибки)
#Если Сервер ИЛИ ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда
Сообщения = ЮТОбщий.ВыгрузитьЗначения(ПолучитьСообщенияПользователю(Истина), "Текст");
Сообщения = ЮТКоллекции.ВыгрузитьЗначения(ПолучитьСообщенияПользователю(Истина), "Текст");
Если Сообщения.Количество() Тогда
ДанныеОшибки.Стек = СтрШаблон("%1
|Сообщения пользователю:
| %2", ДанныеОшибки.Стек, СтрСоединить(Сообщения, Символы.ПС));
|Сообщения пользователю:
| %2", ДанныеОшибки.Стек, СтрСоединить(Сообщения, Символы.ПС));
КонецЕсли;
#КонецЕсли
КонецПроцедуры
Процедура ВызватьОшибкуИсполнения(Знач ИнформацияОбОшибке, ОписаниеПроверки)

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="b3a750a1-8a8c-4b01-8968-ad88af6839de">
<name>ЮТРегистрацияОшибок</name>
<name>ЮТРегистрацияОшибокСлужебный</name>
<synonym>
<key>ru</key>
<value>Регистрация ошибок</value>

View File

@ -20,25 +20,25 @@
Функция АдресСерверногоКонтекста() Экспорт
Возврат ЮТКонтекстСервер.АдресСерверногоКонтекста(Ложь);
Возврат ЮТКонтекстСлужебныйВызовСервера.АдресСерверногоКонтекста(Ложь);
КонецФункции
Функция МетодМодуляСуществует(ИмяМодуля, ИмяМетода, КоличествоПараметров = 0) Экспорт
Функция МетодМодуляСуществует(ИмяМодуля, ИмяМетода) Экспорт
Возврат ЮТОбщий.МетодМодуляСуществует(ИмяМодуля, ИмяМетода, КоличествоПараметров, Ложь);
Возврат ЮТМетодыСлужебный.МетодМодуляСуществует(ИмяМодуля, ИмяМетода, Ложь);
КонецФункции
Функция ПараметрыТиповОшибок() Экспорт
Возврат ЮТФабрика.ПараметрыТиповОшибок(Ложь);
Возврат ЮТФабрикаСлужебный.ПараметрыТиповОшибок(Ложь);
КонецФункции
Функция ОписаниеТиповЛюбаяСсылка() Экспорт
Возврат ЮТОбщийВызовСервера.ОписаниеТиповЛюбаяСсылка();
Возврат ЮТОбщийСлужебныйВызовСервера.ОписаниеТиповЛюбаяСсылка();
КонецФункции

View File

@ -20,7 +20,7 @@
Процедура Инициализация(ПараметрыЗапуска) Экспорт
Параметры = ЮТОбщий.ЗначениеВМассиве(ПараметрыЗапуска);
Параметры = ЮТКоллекции.ЗначениеВМассиве(ПараметрыЗапуска);
ВызватьОбработчикРасширения("Инициализация", Параметры);
КонецПроцедуры
@ -28,79 +28,79 @@
#Область СобытияИсполненияТестов
// Обработчик события "ПередВсемиТестамиМодуля"
//
//
// Параметры:
// ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля
// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля
Процедура ПередВсемиТестамиМодуля(ТестовыйМодуль) Экспорт
УстановитьКонтекстИсполнения(ТестовыйМодуль);
ЮТКонтекст.УстановитьКонтекстМодуля();
ЮТКонтекстСлужебный.УстановитьКонтекстМодуля();
ОписаниеСобытия = ЮТФабрика.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль);
ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль);
ВызватьОбработкуСобытия("ПередВсемиТестами", ОписаниеСобытия);
КонецПроцедуры
// Обработчик события "ПередТестовымНабором"
//
//
// Параметры:
// ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля
// Набор - см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов
// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля
// Набор - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов
Процедура ПередТестовымНабором(ТестовыйМодуль, Набор) Экспорт
УстановитьКонтекстИсполнения(ТестовыйМодуль, Набор);
ЮТКонтекст.УстановитьКонтекстНабораТестов();
ЮТКонтекстСлужебный.УстановитьКонтекстНабораТестов();
ОписаниеСобытия = ЮТФабрика.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор);
ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор);
ВызватьОбработкуСобытия("ПередТестовымНабором", ОписаниеСобытия);
КонецПроцедуры
// Обработчик события "ПередКаждымТестом"
//
//
// Параметры:
// ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля
// Набор - см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов
// Тест - см. ЮТФабрика.ОписаниеИсполняемогоТеста
// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля
// Набор - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов
// Тест - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТеста
Процедура ПередКаждымТестом(ТестовыйМодуль, Набор, Тест) Экспорт
// Установка контекста исполнения вызывается в см. ЮТИсполнительКлиентСервер.ПередКаждымТестом
ЮТКонтекст.УстановитьКонтекстТеста();
// Установка контекста исполнения вызывается в см. ЮТИсполнительСлужебныйКлиентСервер.ПередКаждымТестом
ЮТКонтекстСлужебный.УстановитьКонтекстТеста();
ОписаниеСобытия = ЮТФабрика.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор, Тест);
ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор, Тест);
#Если Сервер ИЛИ ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда
#Если Сервер ИЛИ ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда
ПолучитьСообщенияПользователю(Истина);
#КонецЕсли
#КонецЕсли
ВызватьОбработкуСобытий(ЮТОбщий.ЗначениеВМассиве("ПередКаждымТестом", "ПередТестом"), ОписаниеСобытия);
ВызватьОбработкуСобытий(ЮТКоллекции.ЗначениеВМассиве("ПередКаждымТестом", "ПередТестом"), ОписаниеСобытия);
КонецПроцедуры
// Обработчик события "ПослеКаждогоТеста"
//
//
// Параметры:
// ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля
// Набор - см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов
// Тест - см. ЮТФабрика.ОписаниеИсполняемогоТеста
// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля
// Набор - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов
// Тест - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТеста
Процедура ПослеКаждогоТеста(ТестовыйМодуль, Набор, Тест) Экспорт
ОписаниеСобытия = ЮТФабрика.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор, Тест);
ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор, Тест);
ВызватьОбработкуСобытий(ЮТОбщий.ЗначениеВМассиве("ПослеТеста", "ПослеКаждогоТеста"), ОписаниеСобытия);
ВызватьОбработкуСобытий(ЮТКоллекции.ЗначениеВМассиве("ПослеТеста", "ПослеКаждогоТеста"), ОписаниеСобытия);
УстановитьКонтекстИсполнения(ТестовыйМодуль, Набор);
КонецПроцедуры
// Обработчик события "ПослеТестовогоНабора"
//
//
// Параметры:
// ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля
// Набор - см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов
// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля
// Набор - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов
Процедура ПослеТестовогоНабора(ТестовыйМодуль, Набор) Экспорт
ОписаниеСобытия = ЮТФабрика.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор);
ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор);
ВызватьОбработкуСобытия("ПослеТестовогоНабора", ОписаниеСобытия);
УстановитьКонтекстИсполнения(ТестовыйМодуль);
@ -108,12 +108,12 @@
КонецПроцедуры
// Обработчик события "ПослеВсехТестовМодуля"
//
//
// Параметры:
// ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля
// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля
Процедура ПослеВсехТестовМодуля(ТестовыйМодуль) Экспорт
ОписаниеСобытия = ЮТФабрика.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль);
ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль);
ВызватьОбработкуСобытия("ПослеВсехТестов", ОписаниеСобытия);
УстановитьКонтекстИсполнения();
@ -121,23 +121,23 @@
КонецПроцедуры
// Перед выполнением тестов.
//
//
// Параметры:
// ИсполняемыеМодули - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля
// ИсполняемыеМодули - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля
Процедура ПередВыполнениемТестов(ИсполняемыеМодули) Экспорт
Параметры = ЮТОбщий.ЗначениеВМассиве(ИсполняемыеМодули);
Параметры = ЮТКоллекции.ЗначениеВМассиве(ИсполняемыеМодули);
ВызватьОбработчикРасширения("ПередВыполнениемТестов", Параметры);
КонецПроцедуры
// После выполнения тестов.
//
//
// Параметры:
// РезультатТестирования - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля
// РезультатТестирования - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля
Процедура ПослеВыполненияТестов(РезультатТестирования) Экспорт
Параметры = ЮТОбщий.ЗначениеВМассиве(РезультатТестирования);
Параметры = ЮТКоллекции.ЗначениеВМассиве(РезультатТестирования);
ВызватьОбработчикРасширения("ПослеВыполненияТестов", Параметры);
КонецПроцедуры
@ -157,10 +157,10 @@
// Обработчик события "ПередЧтениемСценариевМодуля"
// Позволяет настроить базовые параметры перед чтением настроек тестов модуля
// Параметры:
// МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля
// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля
Процедура ПередЧтениемСценариевМодуля(МетаданныеМодуля) Экспорт
Параметры = ЮТОбщий.ЗначениеВМассиве(МетаданныеМодуля);
Параметры = ЮТКоллекции.ЗначениеВМассиве(МетаданныеМодуля);
ВызватьОбработчикРасширения("ПередЧтениемСценариевМодуля", Параметры);
КонецПроцедуры
@ -168,31 +168,31 @@
// После чтения сценариев модуля.
// Позволяет настроить/обработать параметры загруженных настроек тестов модуля
// Параметры:
// МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля
// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля
// ИсполняемыеСценарии - см. ЮТТесты.СценарииМодуля
Процедура ПослеЧтенияСценариевМодуля(МетаданныеМодуля, ИсполняемыеСценарии) Экспорт
Параметры = ЮТОбщий.ЗначениеВМассиве(МетаданныеМодуля, ИсполняемыеСценарии);
Параметры = ЮТКоллекции.ЗначениеВМассиве(МетаданныеМодуля, ИсполняемыеСценарии);
ВызватьОбработчикРасширения("ПослеЧтенияСценариевМодуля", Параметры);
КонецПроцедуры
// Обработка события "ПослеЧтенияСценариев"
// Параметры:
// Сценарии - Массив из см. ЮТФабрика.ОписаниеТестовогоМодуля - Набор описаний тестовых модулей, которые содержат информацию о запускаемых тестах
// Сценарии - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля - Набор описаний тестовых модулей, которые содержат информацию о запускаемых тестах
Процедура ПослеЧтенияСценариев(Сценарии) Экспорт
Параметры = ЮТОбщий.ЗначениеВМассиве(Сценарии);
Параметры = ЮТКоллекции.ЗначениеВМассиве(Сценарии);
ВызватьОбработчикРасширения("ПослеЧтенияСценариев", Параметры);
КонецПроцедуры
// Обработка события "ПослеФормированияИсполняемыхНаборовТестов"
// Параметры:
// ИсполняемыеТестовыеМодули - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля - Набор исполняемых наборов
// ИсполняемыеТестовыеМодули - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля - Набор исполняемых наборов
Процедура ПослеФормированияИсполняемыхНаборовТестов(ИсполняемыеТестовыеМодули) Экспорт
Параметры = ЮТОбщий.ЗначениеВМассиве(ИсполняемыеТестовыеМодули);
Параметры = ЮТКоллекции.ЗначениеВМассиве(ИсполняемыеТестовыеМодули);
ВызватьОбработчикРасширения("ПослеФормированияИсполняемыхНаборовТестов", Параметры);
КонецПроцедуры
@ -206,7 +206,7 @@
Процедура УстановитьКонтекстИсполнения(ТестовыйМодуль = Неопределено, Набор = Неопределено, Тест = Неопределено) Экспорт
Уровни = ЮТФабрика.УровниИсполнения();
КонтекстИсполнения = ЮТКонтекст.КонтекстИсполнения();
КонтекстИсполнения = ЮТКонтекстСлужебный.КонтекстИсполнения();
КонтекстИсполнения.Модуль = ТестовыйМодуль;
КонтекстИсполнения.Набор = Набор;
@ -231,7 +231,7 @@
ПропуститьОбработчикТестовогоМодуля = (ы > 0 И ОбработчикСобытияПереопределен(ИмяСобытия));
Если ПропуститьОбработчикТестовогоМодуля Тогда
Параметры = ЮТОбщий.ЗначениеВМассиве(ОписаниеСобытия);
Параметры = ЮТКоллекции.ЗначениеВМассиве(ОписаниеСобытия);
Ошибки = ВызватьОбработчикРасширения(ИмяСобытия, Параметры);
ЗарегистрироватьОшибкиСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибки);
@ -246,7 +246,7 @@
Процедура ВызватьОбработкуСобытия(ИмяСобытия, ОписаниеСобытия)
Параметры = ЮТОбщий.ЗначениеВМассиве(ОписаниеСобытия);
Параметры = ЮТКоллекции.ЗначениеВМассиве(ОписаниеСобытия);
Если ЭтоСобытиеПеред(ИмяСобытия) Тогда
Ошибки = ВызватьОбработчикРасширения(ИмяСобытия, Параметры);
@ -264,11 +264,11 @@
Ошибки = Новый Массив();
Для Каждого ИмяМодуля Из ЮТРасширения.ОбработчикиСобытий() Цикл
Для Каждого ИмяМодуля Из ЮТРасширенияСлужебный.ОбработчикиСобытий() Цикл
Если ЮТОбщий.МетодМодуляСуществует(ИмяМодуля, ИмяСобытия) Тогда
Если ЮТМетодыСлужебный.МетодМодуляСуществует(ИмяМодуля, ИмяСобытия) Тогда
ПолноеИмяМетода = СтрШаблон("%1.%2", ИмяМодуля, ИмяСобытия);
Ошибка = ЮТОбщий.ВыполнитьМетод(ПолноеИмяМетода, ПараметрыСобытия);
Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(ПолноеИмяМетода, ПараметрыСобытия);
Если Ошибка <> Неопределено Тогда
Ошибки.Добавить(Ошибка);
@ -282,11 +282,11 @@
КонецФункции
// Вызвать обработчик модуля.
//
//
// Параметры:
// ИмяСобытия - Строка - Имя вызываемого метода обработки события
// ОписаниеСобытия - см. ЮТФабрика.ОписаниеСобытияИсполненияТестов
//
// ОписаниеСобытия - см. ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов
//
Процедура ВызватьОбработчикТестовогоМодуля(Знач ИмяСобытия, ОписаниеСобытия)
ОбработчикСобытияПереопределен = ОбработчикСобытияПереопределен(ИмяСобытия);
@ -298,15 +298,15 @@
ЧастиКоманды = СтрРазделить(ИмяСобытия, ".");
Если ЧастиКоманды.Количество() = 2 Тогда
ИмяМодуля = ЧастиКоманды[0];
ИмяМодуля = ЧастиКоманды[0];
ИмяСобытия = ЧастиКоманды[1];
КонецЕсли;
Ошибки = Новый Массив();
Команда = СтрШаблон("%1.%2()", ИмяМодуля, ИмяСобытия);
Если ЮТОбщий.МетодМодуляСуществует(ИмяМодуля, ИмяСобытия) Тогда
Если ЮТМетодыСлужебный.МетодМодуляСуществует(ИмяМодуля, ИмяСобытия) Тогда
Ошибка = ЮТОбщий.ВыполнитьМетод(Команда);
Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(Команда);
Если Ошибка <> Неопределено Тогда
Ошибки.Добавить(Ошибка);
@ -326,7 +326,7 @@
Процедура ЗарегистрироватьОшибкиСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибки)
Для Каждого Ошибка Из Ошибки Цикл
ЮТРегистрацияОшибок.ЗарегистрироватьОшибкуСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибка);
ЮТРегистрацияОшибокСлужебный.ЗарегистрироватьОшибкуСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибка);
КонецЦикла;
КонецПроцедуры

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="ca6c9c95-667f-46b9-bed3-5d59df601a1c">
<name>ЮТСобытия</name>
<name>ЮТСобытияСлужебный</name>
<synonym>
<key>ru</key>
<value>Генератор событий</value>

View File

@ -21,7 +21,7 @@
// Форматированный текст ошибки утверждения.
//
// Параметры:
// ОписаниеПроверки - см. ЮТФабрика.ОписаниеПроверки
// ОписаниеПроверки - см. ЮТФабрикаСлужебный.ОписаниеПроверки
// ТекстОжидания - Строка - Описание ожидания
// ОбъектПроверки - Строка - Объект проверки
//
@ -65,7 +65,7 @@
// Строка - Сообщение об ошибке события
Функция СообщениеОбОшибкеСобытия(ИмяСобытия, Ошибка) Экспорт
ТипОшибки = ЮТФабрика.ТипыОшибок().ОшибкаОбработкиСобытия;
ТипОшибки = ЮТФабрикаСлужебный.ТипыОшибок().ОшибкаОбработкиСобытия;
Возврат СтрШаблон("%1 '%2': %3", ТипОшибки, ИмяСобытия, КраткоеСообщениеОшибки(Ошибка));
КонецФункции
@ -80,7 +80,6 @@
КонецФункции
// Формирует строковое представление значения. Для значений, преобразуемых в пустые строки, добавляет описание типа.
//
// Параметры:

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<suppress:SuppressGenericObject xmlns:suppress="http://g5.1c.ru/v8/dt/check/suppress/model" fqn="CommonModule.ЮТСравнениеСервер">
<suppressions key="com.e1c.v8codestyle.md:common-module-name-server-call" value="true"/>
</suppress:SuppressGenericObject>

View File

@ -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.
@ -35,7 +35,7 @@
Индекс = Данные1.Количество() - 1;
Пока Индекс >= 0 Цикл
Если НЕ ЮТСравнениеКлиентСервер.ЗначенияРавны(Данные1[Индекс][Колонка.Имя], Данные2[Индекс][Колонка.Имя]) Тогда
Если НЕ ЮТСравнениеСлужебныйКлиентСервер.ЗначенияРавны(Данные1[Индекс][Колонка.Имя], Данные2[Индекс][Колонка.Имя]) Тогда
Возврат Ложь;
КонецЕсли;
Индекс = Индекс - 1;
@ -69,7 +69,7 @@
КонецЕсли;
Если УчитыватьТолькоВидимыеКолонки И УчитыватьТолькоВидимыеСтроки Тогда
ЮТОбщийВызовСервера.ТаблицаИзТабличногоДокумента(ТипТабличногоДокумента);
ЮТОбщийСлужебныйВызовСервера.ТаблицаИзТабличногоДокумента(ТипТабличногоДокумента);
КонецЕсли;
НомерПоследнейКолонки = ТабличныйДокумент.ШиринаТаблицы;

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="a047687f-04fa-4f9a-beba-acbaf559f9d0">
<name>ЮТСравнениеСервер</name>
<name>ЮТСравнениеСлужебныйВызовСервера</name>
<synonym>
<key>ru</key>
<value>Сравнение сервер</value>

View File

@ -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.
@ -51,23 +51,23 @@
Результат = Неопределено;
Если ЭтоТипСтруктура(ТипЗначения) Тогда
Если ЮТТипыДанныхСлужебный.ЭтоСтруктура(ТипЗначения) Тогда
Результат = СтруктурыРавны(Данные1, Данные2);
ИначеЕсли ЭтоТипСоответствие(ТипЗначения) Тогда
ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоСоответствие(ТипЗначения) Тогда
Результат = СоответствияРавны(Данные1, Данные2);
ИначеЕсли ЭтоТипМассива(ТипЗначения) Тогда
ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоМассива(ТипЗначения) Тогда
Результат = МассивыРавны(Данные1, Данные2);
ИначеЕсли ТипЗначения = Тип("ТабличныйДокумент") Тогда
Результат = ЮТСравнениеСервер.ТабличныеДокументыРавны(Данные1, Данные2);
Результат = ЮТСравнениеСлужебныйВызовСервера.ТабличныеДокументыРавны(Данные1, Данные2);
ИначеЕсли ЭтоПримитивныйТип(ТипЗначения) ИЛИ ЮТОбщий.ОписаниеТиповЛюбаяСсылка().СодержитТип(ТипЗначения) Тогда
ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоПримитивныйТип(ТипЗначения) ИЛИ ЮТТипыДанныхСлужебный.ЭтоСсылочныйТип(ТипЗначения) Тогда
// Возвращаем ложь, так как для этих типов должно сработать обычное равенство
Результат = Ложь;
КонецЕсли; // BSLLS:IfElseIfEndsWithElse-off
@ -75,7 +75,7 @@
#Если Сервер Тогда
Если ТипЗначения = Тип("ТаблицаЗначений") Тогда
Результат = ЮТСравнениеСервер.ТаблицыРавны(Данные1, Данные2);
Результат = ЮТСравнениеСлужебныйВызовСервера.ТаблицыРавны(Данные1, Данные2);
ИначеЕсли ТипЗначения = Тип("ХранилищеЗначения") Тогда
@ -84,7 +84,7 @@
КонецЕсли; // BSLLS:IfElseIfEndsWithElse-off
#КонецЕсли
Если Результат = Неопределено И ПараметрыСравнения <> Неопределено И ЮТОбщий.ЗначениеСтруктуры(ПараметрыСравнения, "ГлубокийАнализ", Ложь) Тогда
Если Результат = Неопределено И ПараметрыСравнения <> Неопределено И ЮТКоллекции.ЗначениеСтруктуры(ПараметрыСравнения, "ГлубокийАнализ", Ложь) Тогда
Результат = СравнитьПоЗначению(Данные1, Данные2);
КонецЕсли;
@ -127,7 +127,7 @@
//
// Возвращаемое значение:
// Структура - Параметры проверки:
// * ОбъектПроверки - см. ЮТФабрика.ОписаниеПроверяемогоЗначения
// * ОбъектПроверки - см. ЮТФабрикаСлужебный.ОписаниеПроверяемогоЗначения
// * ПрефиксОшибки - Строка, Неопределено -
// * ОписаниеПроверки - Строка, Неопределено -
// * ВидСравнения - Строка
@ -136,7 +136,7 @@
// * ТекстПроверяемоеЗначение - Строка
Функция ПараметрыПроверки(ВидСравнения, ПроверяемоеЗначение, ИмяСвойства, ОжидаемоеЗначение, Реверс = Ложь) Экспорт
Параметры = ЮТФабрика.ОписаниеПроверки(ПроверяемоеЗначение);
Параметры = ЮТФабрикаСлужебный.ОписаниеПроверки(ПроверяемоеЗначение);
Параметры.ОбъектПроверки.ИмяСвойства = ИмяСвойства;
Параметры.Вставить("ВидСравнения", ВидСравнения);
Параметры.Вставить("ОжидаемоеЗначение", ОжидаемоеЗначение);
@ -235,7 +235,7 @@
ТипЗнч(Значение),
ОжидаемыйТип,
Суффикс);
ЮТРегистрацияОшибок.ДобавитьОшибкуКРезультатуПроверки(РезультатПроверки, ТекстОшибки);
ЮТРегистрацияОшибокСлужебный.ДобавитьОшибкуКРезультатуПроверки(РезультатПроверки, ТекстОшибки);
КонецЕсли;
Возврат Соответствует;
@ -261,11 +261,11 @@
Результат = Ложь;
ТипЗначения = ТипЗнч(Значение);
Если ТипЗначения = Тип("Структура") Или ТипЗначения = Тип("ФиксированнаяСтруктура") Тогда
Если ЮТТипыДанныхСлужебный.ЭтоСтруктура(ТипЗначения) Тогда
Результат = Значение.Свойство(Свойство);
ИначеЕсли ТипЗначения = Тип("Соответствие") Или ТипЗначения = Тип("ФиксированноеСоответствие") Тогда
ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоСоответствие(ТипЗначения) Тогда
Для Каждого КлючЗначение Из Значение Цикл
@ -341,8 +341,8 @@
Попытка
Результат = РегулярныеВыражения.Совпадает(Строка(ПроверяемаяСтрока), РегулярноеВыражение);
Исключение
ЮТРегистрацияОшибок.ДобавитьПояснениеОшибки("Ошибка проверки строки по шаблону " + РегулярноеВыражение);
ЮТРегистрацияОшибок.ДобавитьПояснениеОшибки(РегулярныеВыражения.ОписаниеОшибки);
ЮТРегистрацияОшибокСлужебный.ДобавитьПояснениеОшибки("Ошибка проверки строки по шаблону " + РегулярноеВыражение);
ЮТРегистрацияОшибокСлужебный.ДобавитьПояснениеОшибки(РегулярныеВыражения.ОписаниеОшибки);
ВызватьИсключение;
КонецПопытки;
@ -358,12 +358,12 @@
ИскомоеЗначениеНайдено = СтрНайти(ПроверяемоеЗначение, ОжидаемоеЗначение) > 0;
ИначеЕсли ЭтоТипМассива(ТипПроверяемогоЗначения) Тогда
ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоМассива(ТипПроверяемогоЗначения) Тогда
Индекс = ПроверяемоеЗначение.Найти(ОжидаемоеЗначение);
ИскомоеЗначениеНайдено = Индекс <> Неопределено;
ИначеЕсли ЭтоТипКлючЗначение(ТипПроверяемогоЗначения) Тогда
ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоКлючЗначение(ТипПроверяемогоЗначения) Тогда
ИскомоеЗначениеНайдено = Ложь;
ТипОжидаемогоЗначения = ТипЗнч(ОжидаемоеЗначение);
@ -379,7 +379,7 @@
ИскомоеЗначениеНайдено = ПроверяемоеЗначение.НайтиПоЗначению(ОжидаемоеЗначение) <> Неопределено;
ИначеЕсли ПроверяемоеЗначение <> Неопределено И ЮТОбщий.МетодОбъектаСуществует(ПроверяемоеЗначение, "Найти") Тогда
ИначеЕсли ПроверяемоеЗначение <> Неопределено И ЮТМетодыСлужебный.МетодОбъектаСуществует(ПроверяемоеЗначение, "Найти") Тогда
ИскомоеЗначениеНайдено = ПроверяемоеЗначение.Найти(ОжидаемоеЗначение) <> Неопределено;
@ -393,39 +393,6 @@
КонецФункции
Функция ЭтоТипМассива(Тип)
Возврат Тип = Тип("Массив") Или Тип = Тип("ФиксированныйМассив");
КонецФункции
Функция ЭтоТипСтруктура(Тип)
Возврат Тип = Тип("Структура") Или Тип = Тип("ФиксированнаяСтруктура");
КонецФункции
Функция ЭтоТипСоответствие(Тип)
Возврат Тип = Тип("Соответствие") Или Тип = Тип("ФиксированноеСоответствие");
КонецФункции
Функция ЭтоТипКлючЗначение(Тип)
Возврат ЭтоТипСтруктура(Тип) ИЛИ ЭтоТипСоответствие(Тип);
КонецФункции
Функция ЭтоПримитивныйТип(ТипЗначения)
Возврат ТипЗначения = Тип("Число")
ИЛИ ТипЗначения = Тип("Строка")
ИЛИ ТипЗначения = Тип("Дата")
ИЛИ ТипЗначения = Тип("Булево");
КонецФункции
#Область РеализацияПредикатор
Процедура ПроверитьВыражениеПредиката(Значение, Выражение, СтатусПроверки, ПараметрыСообщенийОбОшибке, ПараметрыСравнения) Экспорт
@ -433,7 +400,7 @@
Попытка
ВызватьОбработчикПредиката(Значение, Выражение, СтатусПроверки, ПараметрыСообщенийОбОшибке, ПараметрыСравнения);
Исключение
ЮТРегистрацияОшибок.ДобавитьОшибкуКРезультатуПроверки(СтатусПроверки, ИнформацияОбОшибке());
ЮТРегистрацияОшибокСлужебный.ДобавитьОшибкуКРезультатуПроверки(СтатусПроверки, ИнформацияОбОшибке());
КонецПопытки;
КонецПроцедуры
@ -443,7 +410,7 @@
// Параметры:
// Значение - Произвольный - Значение
// Выражение - см. ЮТФабрика.ВыражениеПредиката
// СтатусПроверки - см. ЮТФабрика.ОписаниеРезультатаПроверки
// СтатусПроверки - см. ЮТФабрикаСлужебный.ОписаниеРезультатаПроверки
// ПараметрыСообщенийОбОшибке - см. ПараметрыСообщенийОбОшибке
// ПараметрыСравнения - Неопределено
// - Структура - Параметры сравнения значений, для разных выражений испльзуются свои параметры
@ -539,13 +506,13 @@
Возврат;
КонецЕсли;
ШаблонСообщения = ЮТПредикатыКлиентСервер.ШаблонВыражения(ПараметрыПроверки.ВидСравнения);
ШаблонСообщения = ЮТПредикатыСлужебныйКлиентСервер.ШаблонВыражения(ПараметрыПроверки.ВидСравнения);
Сообщение = ЮТСообщенияСлужебный.ПодставитьПредставлениеЗначенияВШаблон(ШаблонСообщения, ПараметрыПроверки.ОжидаемоеЗначение);
ТекстОшибки = ЮТСообщенияСлужебный.ФорматированныйТекстОшибкиУтверждения(ПараметрыПроверки, Сообщение, ПараметрыПроверки.ТекстПроверяемоеЗначение);
ТекстОшибки = ЮТРегистрацияОшибок.ДобавитьОписания(ТекстОшибки, ПараметрыПроверки);
ТекстОшибки = ЮТРегистрацияОшибокСлужебный.ДобавитьОписания(ТекстОшибки, ПараметрыПроверки);
ЮТРегистрацияОшибок.ДобавитьОшибкуСравненияКРезультатуПроверки(РезультатПроверки,
ЮТРегистрацияОшибокСлужебный.ДобавитьОшибкуСравненияКРезультатуПроверки(РезультатПроверки,
ТекстОшибки,
ФактическоеЗначение,
ПараметрыПроверки.ОжидаемоеЗначение);
@ -582,8 +549,8 @@
Если ТипЗнч(Значение) = Тип("ХранилищеЗначения") Тогда
#Если ВебКлиент Или ТонкийКлиент Тогда
Значение = ЮТОбщийВызовСервера.ИзХранилищаЗначений(Значение);
#Иначе
Значение = ЮТОбщийСлужебныйВызовСервера.ИзХранилищаЗначений(Значение);
#Иначе
Значение = Значение.Получить();
#КонецЕсли
КонецЕсли;
@ -616,7 +583,7 @@
Если ФактическаяДлина = Неопределено Тогда
ТекстОшибки = СтрШаблон("тип проверяемого значения `%1` не обрабатывается утверждением", ТипЗнч(ПроверяемоеЗначение));
ЮТРегистрацияОшибок.ДобавитьОшибкуКРезультатуПроверки(РезультатПроверки, ТекстОшибки, ПараметрыПроверки);
ЮТРегистрацияОшибокСлужебный.ДобавитьОшибкуКРезультатуПроверки(РезультатПроверки, ТекстОшибки, ПараметрыПроверки);
Возврат;
КонецЕсли;
@ -636,7 +603,7 @@
Если Результат = Неопределено Тогда
ТекстОшибки = СтрШаблон("тип проверяемого значения `%1` не обрабатывается утверждением", ТипЗнч(ПроверяемоеЗначение));
ЮТРегистрацияОшибок.ДобавитьОшибкуКРезультатуПроверки(РезультатПроверки, ТекстОшибки, ПараметрыПроверки);
ЮТРегистрацияОшибокСлужебный.ДобавитьОшибкуКРезультатуПроверки(РезультатПроверки, ТекстОшибки, ПараметрыПроверки);
КонецЕсли;
Возврат Результат;
@ -656,7 +623,7 @@
Если СоответствуетШаблону = Неопределено Тогда
ТекстОшибки = СтрШаблон("тип проверяемого значения `%1` не обрабатывается утверждением", ТипЗнч(ПроверяемоеЗначение));
ЮТРегистрацияОшибок.ДобавитьОшибкуКРезультатуПроверки(РезультатПроверки, ТекстОшибки, ПараметрыПроверки);
ЮТРегистрацияОшибокСлужебный.ДобавитьОшибкуКРезультатуПроверки(РезультатПроверки, ТекстОшибки, ПараметрыПроверки);
КонецЕсли;
Возврат СоответствуетШаблону;

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="1aa5cd77-d222-4e55-9985-72526cce07cc">
<name>ЮТСравнениеКлиентСервер</name>
<name>ЮТСравнениеСлужебныйКлиентСервер</name>
<synonym>
<key>ru</key>
<value>Сравнение клиент сервер</value>

View File

@ -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.
@ -18,6 +18,73 @@
#Область ПрограммныйИнтерфейс
// Конкатенирует строки, разделяя их разделителем
//
// Параметры:
// ИсходнаяСтрока - Строка - Исходная строка
// ДополнительнаяСтрока - Строка - Добавляемая строка
// Разделитель - Строка - Строка разделитель, любой набор символов - разделитель между подстроками
//
// Возвращаемое значение:
// Строка - Результат конкатенации строк
//
Функция ДобавитьСтроку(ИсходнаяСтрока, ДополнительнаяСтрока, Разделитель = ";") Экспорт
Если Не ПустаяСтрока(ДополнительнаяСтрока) Тогда
Если Не ПустаяСтрока(ИсходнаяСтрока) Тогда
Возврат Строка(ИсходнаяСтрока) + Разделитель + Строка(ДополнительнаяСтрока);
Иначе
Возврат Строка(ДополнительнаяСтрока);
КонецЕсли;
КонецЕсли;
Возврат Строка(ИсходнаяСтрока);
КонецФункции
// Возвращает массив на основании строки.
// При этом:
// * отсекает незначащие символы, стоящие слева от первого значащего символа в строке, и пробелы, стоящие справа от последнего значащего символа в строке.
// * в отличии от `СтрРазделить` в качестве разделителля используется вся переданная строка, а не любой из символов входящий в нее.
//
// Параметры:
// Значение - Строка - преобразуемая строка
// Разделитель - Строка - строка-разделитель
//
// Возвращаемое значение:
// Массив Из Строка - массив строк
//
Функция РазделитьСтроку(Знач Значение, Разделитель = ";") Экспорт
КодУниверсальногоРазделителя = 5855;
УниверсальныйРазделитель = Символ(КодУниверсальногоРазделителя);
МодифицированнаяСтрока = СтрЗаменить(Значение, Разделитель, УниверсальныйРазделитель);
МассивСтрок = ?(МодифицированнаяСтрока = "", Новый Массив, СтрРазделить(МодифицированнаяСтрока, УниверсальныйРазделитель));
Для Индекс = 0 По МассивСтрок.ВГраница() Цикл
МассивСтрок[Индекс] = СокрЛП(МассивСтрок[Индекс]);
КонецЦикла;
Возврат МассивСтрок;
КонецФункции
// Формирует строку из заданного количества повторяемых символов
// Параметры:
// Символ - Строка - Повторяемый символ
// Количество - Число - Количество повторений
//
// Возвращаемое значение:
// Строка - Строка повторяемых символов
Функция СтрокаСимволов(Символ, Количество) Экспорт
Возврат СтрСоединить(Новый Массив(Количество + 1), Символ);
КонецФункции
// Строка с символами русского алфавита
//
// Параметры:
@ -56,6 +123,50 @@
КонецФункции
// Выполняет сравнение версий
//
// Параметры:
// Версия1 - Строка
// Версия2 - Строка
//
// Возвращаемое значение:
// Число - Результат сравнения
// `-1` - Версия1 меньше Версия2
// `0` - Версии равны
// `1` - Версия1 больше Версия2
Функция СравнитьВерсии(Версия1, Версия2) Экспорт
ЧастиВерсия1 = СтрРазделить(Версия1, ".");
ЧастиВерсия2 = СтрРазделить(Версия2, ".");
КоличествоЧастейВерсия1 = ЧастиВерсия1.Количество();
КоличествоЧастейВерсия2 = ЧастиВерсия2.Количество();
КоличествоЧастей = Макс(КоличествоЧастейВерсия1, КоличествоЧастейВерсия2);
Для Инд = КоличествоЧастейВерсия1 По КоличествоЧастей - 1 Цикл
ЧастиВерсия1.Добавить("0");
КонецЦикла;
Для Инд = КоличествоЧастейВерсия2 По КоличествоЧастей - 1 Цикл
ЧастиВерсия2.Добавить("0");
КонецЦикла;
Результат = 0;
Для Разряд = 0 По КоличествоЧастей - 1 Цикл
Результат = Число(ЧастиВерсия1[Разряд]) - Число(ЧастиВерсия2[Разряд]);
Если Результат <> 0 Тогда
Прервать;
КонецЕсли;
КонецЦикла;
Возврат Макс(Мин(Результат, 1), -1);
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции

View File

@ -37,14 +37,14 @@
КонецЕсли;
Если ЗначениеЗаполнено(Наименование) Тогда
Если ЮТОбщийВызовСервера.ЭтоАнглийскийВстроенныйЯзык() Тогда
Если ЮТОбщийСлужебныйВызовСервера.ЭтоАнглийскийВстроенныйЯзык() Тогда
Данные.Вставить("Description", Наименование);
Иначе
Данные.Вставить("Наименование", Наименование);
КонецЕсли;
КонецЕсли;
Ссылка = ЮТТестовыеДанныеВызовСервера.СоздатьЗапись(Менеджер, Данные, ПараметрыЗаписи, Ложь);
Ссылка = ЮТТестовыеДанныеСлужебныйВызовСервера.СоздатьЗапись(Менеджер, Данные, ПараметрыЗаписи, Ложь);
ЮТТестовыеДанныеСлужебный.ДобавитьТестовуюЗапись(Ссылка);
Возврат Ссылка;
@ -74,7 +74,7 @@
Данные.Удалить("РежимЗаписи");
КонецЕсли;
Ссылка = ЮТТестовыеДанныеВызовСервера.СоздатьЗапись(Менеджер, Данные, ПараметрыЗаписи, Ложь);
Ссылка = ЮТТестовыеДанныеСлужебныйВызовСервера.СоздатьЗапись(Менеджер, Данные, ПараметрыЗаписи, Ложь);
ЮТТестовыеДанныеСлужебный.ДобавитьТестовуюЗапись(Ссылка);
Возврат Ссылка;
@ -121,11 +121,11 @@
#Если ВебКлиент Тогда
ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТТестовыеДанные.СлучайноеЧисло");
#Иначе
Генератор = ЮТКонтекст.ЗначениеКонтекста("ГенераторСлучайныхЧисел");
Генератор = ЮТКонтекстСлужебный.ЗначениеКонтекста("ГенераторСлучайныхЧисел");
Если Генератор = Неопределено Тогда
Генератор = Новый ГенераторСлучайныхЧисел();
ЮТКонтекст.УстановитьЗначениеКонтекста("ГенераторСлучайныхЧисел", Генератор);
ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста("ГенераторСлучайныхЧисел", Генератор);
КонецЕсли;
Если Максимум = Неопределено Тогда
@ -426,7 +426,7 @@
// ПеречислениеСсылка
Функция СлучайноеЗначениеПеречисления(Перечисление) Экспорт
Возврат ЮТТестовыеДанныеВызовСервера.СлучайноеЗначениеПеречисления(Перечисление);
Возврат ЮТТестовыеДанныеСлужебныйВызовСервера.СлучайноеЗначениеПеречисления(Перечисление);
КонецФункции
@ -441,7 +441,7 @@
// ПеречислениеСсылка
Функция СлучайноеПредопределенноеЗначение(Менеджер, Отбор = Неопределено) Экспорт
Возврат ЮТТестовыеДанныеВызовСервера.СлучайноеПредопределенноеЗначение(Менеджер, Отбор);
Возврат ЮТТестовыеДанныеСлужебныйВызовСервера.СлучайноеПредопределенноеЗначение(Менеджер, Отбор);
КонецФункции
@ -635,7 +635,7 @@
Варианты = Новый Массив;
Варианты.Добавить(ЗначенияПоУмолчанию);
Ключи = ЮТОбщий.ВыгрузитьЗначения(ЗначенияПараметров, "Ключ");
Ключи = ЮТКоллекции.ВыгрузитьЗначения(ЗначенияПараметров, "Ключ");
ДобавитьВарианты(Варианты, ЗначенияПоУмолчанию, ЗначенияПараметров, Ключи, 0);
@ -699,7 +699,7 @@
Процедура Удалить(Ссылки) Экспорт
Если ЗначениеЗаполнено(Ссылки) Тогда
ЮТТестовыеДанныеВызовСервера.Удалить(Ссылки);
ЮТТестовыеДанныеСлужебныйВызовСервера.Удалить(Ссылки);
КонецЕсли;
КонецПроцедуры
@ -763,7 +763,7 @@
// ОбработкаОбъект.ЮТHTTPСервисЗапрос - Мок
Функция HTTPСервисЗапрос() Экспорт
Если ЮТОбщийВызовСервера.ЭтоАнглийскийВстроенныйЯзык() Тогда
Если ЮТОбщийСлужебныйВызовСервера.ЭтоАнглийскийВстроенныйЯзык() Тогда
Возврат Обработки.ЮТHTTPServiceRequest.Создать();
Иначе
Возврат Обработки.ЮТHTTPСервисЗапрос.Создать();
@ -798,7 +798,7 @@
// Ссылка - ЛюбаяСсылка
// ИмяРеквизита - Строка
// ЗначениеРеквизита - Произвольный
// ПараметрыЗаписи - см. ЮТФабрика.ПараметрыЗаписи
// ПараметрыЗаписи - см. ЮТФабрикаСлужебный.ПараметрыЗаписи
Процедура УстановитьЗначениеРеквизита(Ссылка, ИмяРеквизита, ЗначениеРеквизита, ПараметрыЗаписи = Неопределено) Экспорт
Значения = Новый Соответствие();
@ -812,10 +812,10 @@
// Параметры:
// Ссылка - ЛюбаяСсылка - Ссылка
// ЗначенияРеквизитов - Структура, Соответствие из Произвольный - Значения реквизитов
// ПараметрыЗаписи - см. ЮТФабрика.ПараметрыЗаписи
// ПараметрыЗаписи - см. ЮТФабрикаСлужебный.ПараметрыЗаписи
Процедура УстановитьЗначенияРеквизитов(Ссылка, ЗначенияРеквизитов, ПараметрыЗаписи = Неопределено) Экспорт
ЮТТестовыеДанныеВызовСервера.УстановитьЗначенияРеквизитов(Ссылка, ЗначенияРеквизитов);
ЮТТестовыеДанныеСлужебныйВызовСервера.УстановитьЗначенияРеквизитов(Ссылка, ЗначенияРеквизитов);
КонецПроцедуры
@ -847,7 +847,7 @@
Ключ = Ключи[Инд];
Для Каждого Значение Из ЗначенияПараметров[Ключ] Цикл
Вариант = ЮТОбщий.СкопироватьСтруктуру(БазоваяСтруктура);
Вариант = ЮТКоллекции.СкопироватьСтруктуру(БазоваяСтруктура);
Вариант[Ключ] = Значение;
Варианты.Добавить(Вариант);

View File

@ -56,7 +56,7 @@
Иначе
Значение = ЮТТестовыеДанныеВызовСервера.ФикцияЗначенияБазы(Тип, РеквизитыЗаполнения);
Значение = ЮТТестовыеДанныеСлужебныйВызовСервера.ФикцияЗначенияБазы(Тип, РеквизитыЗаполнения);
ДобавитьТестовуюЗапись(Значение);
КонецЕсли;
@ -152,9 +152,9 @@
Функция ЗагрузитьИзМакета(Макет, ОписанияТипов, КэшЗначений, ЗаменяемыеЗначения, ПараметрыСозданияОбъектов, ТаблицаЗначений) Экспорт
ПараметрыЗаполнения = ЮТФабрика.ПараметрыЗаполненияТаблицыЗначений(ПараметрыСозданияОбъектов);
ПараметрыЗаполнения = ЮТФабрикаСлужебный.ПараметрыЗаполненияТаблицыЗначений(ПараметрыСозданияОбъектов);
Возврат ЮТТестовыеДанныеВызовСервера.ЗагрузитьИзМакета(Макет,
Возврат ЮТТестовыеДанныеСлужебныйВызовСервера.ЗагрузитьИзМакета(Макет,
ОписанияТипов,
КэшЗначений,
ЗаменяемыеЗначения,
@ -169,7 +169,7 @@
Функция СлучайноЗначениеСистемногоПеречисления(Тип)
Менеджер = ЮТОбщий.ВычислитьБезопасно(ЮТТипыДанныхСлужебный.ИмяСистемногоПеречисления(Тип));
Менеджер = ЮТМетодыСлужебный.ВычислитьБезопасно(ЮТТипыДанныхСлужебный.ИмяСистемногоПеречисления(Тип));
Значения = Новый Массив();

View File

@ -36,12 +36,12 @@
КонецФункции
// Создает новый объект и заполняет его данными
//
//
// Параметры:
// Менеджер - Произвольный
// Данные - Структура - Данные заполнения объекта
// ДополнительныеСвойства - Структура - Дополнительные свойства объекта
//
//
// Возвращаемое значение:
// Произвольный - Созданный объект
Функция НовыйОбъект(Знач Менеджер, Знач Данные, Знач ДополнительныеСвойства = Неопределено) Экспорт
@ -74,7 +74,7 @@
ЗаполнитьБазовыеРеквизиты(Объект, ОписаниеОбъектаМетаданных);
Если ОписаниеОбъектаМетаданных.ОписаниеТипа.Ссылочный И ДополнительныеСвойства <> Неопределено Тогда
ЮТОбщий.ОбъединитьВСтруктуру(Объект.ДополнительныеСвойства, ДополнительныеСвойства);
ЮТКоллекции.ДополнитьСтруктуру(Объект.ДополнительныеСвойства, ДополнительныеСвойства);
КонецЕсли;
Возврат Объект;
@ -84,21 +84,20 @@
Процедура Удалить(Знач Ссылки) Экспорт
Если ТипЗнч(Ссылки) <> Тип("Массив") Тогда
Ссылки = ЮТОбщий.ЗначениеВМассиве(Ссылки);
Ссылки = ЮТКоллекции.ЗначениеВМассиве(Ссылки);
КонецЕсли;
СсылочныеТипы = ЮТОбщий.ОписаниеТиповЛюбаяСсылка();
Ошибки = Новый Массив;
Для Каждого Ссылка Из Ссылки Цикл
ТипЗначения = ТипЗнч(Ссылка);
Если Ссылка = Неопределено ИЛИ СтрНачинаетсяС(ЮТОбщий.ПредставлениеТипа(ТипЗначения), "Enum") Тогда
Если Ссылка = Неопределено ИЛИ ЮТТипыДанныхСлужебный.ЭтоТипПеречисления(ТипЗначения) Тогда
Продолжить;
КонецЕсли;
Попытка
Если СсылочныеТипы.СодержитТип(ТипЗначения) Тогда
Если ЮТТипыДанныхСлужебный.ЭтоСсылочныйТип(ТипЗначения) Тогда
Объект = Ссылка.ПолучитьОбъект();
Если Объект <> Неопределено Тогда
Объект.Удалить();
@ -112,7 +111,7 @@
КонецЕсли;
Исключение
Ошибки.Добавить(ЮТРегистрацияОшибок.ПредставлениеОшибки("Удаление " + Ссылка, ИнформацияОбОшибке()));
Ошибки.Добавить(ЮТРегистрацияОшибокСлужебный.ПредставлениеОшибки("Удаление " + Ссылка, ИнформацияОбОшибке()));
КонецПопытки;
@ -143,12 +142,12 @@
ОписаниеОбъектаМетаданных = ЮТМетаданные.ОписаниеОбъектаМетаданных(ОбъектМетаданных);
ОписаниеТипа = ОписаниеОбъектаМетаданных.ОписаниеТипа;
Если ЮТОбщийВызовСервера.ЭтоАнглийскийВстроенныйЯзык() Тогда
Если ЮТОбщийСлужебныйВызовСервера.ЭтоАнглийскийВстроенныйЯзык() Тогда
ИмяТипаМенеджера = СтрШаблон("%1Manager.%2", ОписаниеТипа.Имя, ОбъектМетаданных.Имя);
Иначе
ИмяТипаМенеджера = СтрШаблон("%1Менеджер.%2", ОписаниеТипа.Имя, ОбъектМетаданных.Имя);
КонецЕсли;
Менеджер = Новый (ИмяТипаМенеджера);
Менеджер = Новый(ИмяТипаМенеджера);
Объект = СоздатьОбъект(Менеджер, ОписаниеТипа, РеквизитыЗаполнения);
@ -169,7 +168,7 @@
Знач ПараметрыЗаполнения,
Знач ТаблицаЗначений) Экспорт
Таблица = ЮТТестовыеДанные_ТаблицыЗначений.ЗагрузитьИзМакета(Макет,
Таблица = ЮТТестовыеДанныеСлужебныйТаблицыЗначений.ЗагрузитьИзМакета(Макет,
ОписанияТипов,
КэшЗначений,
ЗаменяемыеЗначения,
@ -179,7 +178,7 @@
Возврат Таблица;
КонецЕсли;
Реквизиты = СтрСоединить(ЮТОбщий.ВыгрузитьЗначения(Таблица.Колонки, "Имя"), ",");
Реквизиты = СтрСоединить(ЮТКоллекции.ВыгрузитьЗначения(Таблица.Колонки, "Имя"), ",");
Результат = Новый Массив(Таблица.Количество());
Для Инд = 0 По Таблица.Количество() - 1 Цикл
@ -207,7 +206,7 @@
Условия = ЮТест.Предикат(Отбор)
.Реквизит("Предопределенный").Равно(Истина);
ОписаниеЗапроса = ЮТЗапросыКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Условия, "Ссылка");
ОписаниеЗапроса = ЮТЗапросыСлужебныйКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Условия, "Ссылка");
Данные = ЮТЗапросы.РезультатЗапроса(ОписаниеЗапроса);
@ -242,8 +241,8 @@
#Область СлужебныеПроцедурыИФункции
// Создать объект.
//
// Параметры: ОписаниеМенеджера -
//
// Параметры: ОписаниеМенеджера -
// См. ОписаниеМенеджера
// Менеджер - Произвольный - Менеджер
// ОписаниеТипа - см. ЮТМетаданные.ОписаниеОбъектаМетаданных
@ -254,7 +253,7 @@
Если ОписаниеТипа.Конструктор = "СоздатьЭлемент" Тогда
ЭтоГруппа = ?(Данные = Неопределено, Ложь, ЮТОбщий.ЗначениеСтруктуры(Данные, "ЭтоГруппа", Ложь));
ЭтоГруппа = ?(Данные = Неопределено, Ложь, ЮТКоллекции.ЗначениеСтруктуры(Данные, "ЭтоГруппа", Ложь));
Если ЭтоГруппа Тогда
Результат = Менеджер.СоздатьГруппу();
Иначе
@ -286,11 +285,11 @@
КонецФункции
// Записать объект.
//
//
// Параметры:
// Объект - Произвольный - Объект
// ПараметрыЗаписи - см. ЮТОбщий.ПараметрыЗаписи
//
//
// Возвращаемое значение:
// ЛюбаяСсылка
Функция ЗаписатьОбъект(Объект, ПараметрыЗаписи)
@ -300,7 +299,7 @@
КонецЕсли;
Если ЗначениеЗаполнено(ПараметрыЗаписи.ДополнительныеСвойства) Тогда
ЮТОбщий.ОбъединитьВСтруктуру(Объект.ДополнительныеСвойства, ПараметрыЗаписи.ДополнительныеСвойства);
ЮТКоллекции.ДополнитьСтруктуру(Объект.ДополнительныеСвойства, ПараметрыЗаписи.ДополнительныеСвойства);
КонецЕсли;
Попытка
@ -319,7 +318,7 @@
Исключение
ЮТРегистрацияОшибок.ДобавитьПояснениеОшибки(СтрШаблон("Не удалось записать объект `%1` (%2)", Объект, ТипЗнч(Объект)));
ЮТРегистрацияОшибокСлужебный.ДобавитьПояснениеОшибки(СтрШаблон("Не удалось записать объект `%1` (%2)", Объект, ТипЗнч(Объект)));
ВызватьИсключение;
КонецПопытки;
@ -328,10 +327,10 @@
Процедура ЗаполнитьБазовыеРеквизиты(Объект, ОписаниеОбъектаМетаданных)
АнглийскийЯзык = ЮТОбщийВызовСервера.ЭтоАнглийскийВстроенныйЯзык();
ИмяТипаДокумент = ?(АнглийскийЯзык,"Document","Документ");
ИмяРеквизитаКод = ?(АнглийскийЯзык,"Code","Код");
ИмяРеквизитаНаименование = ?(АнглийскийЯзык,"Description","Наименование");
АнглийскийЯзык = ЮТОбщийСлужебныйВызовСервера.ЭтоАнглийскийВстроенныйЯзык();
ИмяТипаДокумент = ?(АнглийскийЯзык, "Document", "Документ");
ИмяРеквизитаКод = ?(АнглийскийЯзык, "Code", "Код");
ИмяРеквизитаНаименование = ?(АнглийскийЯзык, "Description", "Наименование");
ОписаниеТипа = ОписаниеОбъектаМетаданных.ОписаниеТипа;
Если ОписаниеТипа.Имя = ИмяТипаДокумент Тогда
@ -345,13 +344,13 @@
Если ОписаниеОбъектаМетаданных.Реквизиты.Свойство(ИмяРеквизитаКод)
И ОписаниеОбъектаМетаданных.Реквизиты[ИмяРеквизитаКод].Обязательный
И Не ЗначениеЗаполнено(Объект.Код) Тогда
И НЕ ЗначениеЗаполнено(Объект.Код) Тогда
Объект.УстановитьНовыйКод();
КонецЕсли;
Если ОписаниеОбъектаМетаданных.Реквизиты.Свойство(ИмяРеквизитаНаименование)
И ОписаниеОбъектаМетаданных.Реквизиты[ИмяРеквизитаНаименование].Обязательный
И Не ЗначениеЗаполнено(Объект.Наименование) Тогда
И НЕ ЗначениеЗаполнено(Объект.Наименование) Тогда
Объект.Наименование = ЮТТестовыеДанные.СлучайнаяСтрока();
КонецЕсли;

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="f8dcca0e-7165-4660-bcd8-a6b0c6e2e4c6">
<name>ЮТТестовыеДанныеВызовСервера</name>
<name>ЮТТестовыеДанныеСлужебныйВызовСервера</name>
<synonym>
<key>ru</key>
<value>Тестовые данные (вызов сервера)</value>

View File

@ -49,7 +49,7 @@
ПараметрыЗагрузки = ПараметрыЗагрузки(КолонкиМакета, ОписанияТипов, ЗаменяемыеЗначения, КэшЗначений, ПараметрыЗаполнения);
Выборка = ЮТОбщийВызовСервера.ВыборкаИзТабличногоДокумента(ДанныеМакета);
Выборка = ЮТОбщийСлужебныйВызовСервера.ВыборкаИзТабличногоДокумента(ДанныеМакета);
Пока Выборка.Следующий() Цикл
@ -92,7 +92,7 @@
Продолжить;
КонецЕсли;
КолонкиМакета = ЮТОбщий.РазложитьСтрокуВМассивПодстрок(Строка, Разделитель);
КолонкиМакета = ЮТСтроки.РазделитьСтроку(Строка, Разделитель);
СледующаяСтрока(ПараметрыИтератора);
Прервать;
@ -112,7 +112,7 @@
КонецЕсли;
СтрокаДанных = ПараметрыЗагрузки.Таблица.Добавить();
Блоки = ЮТОбщий.РазложитьСтрокуВМассивПодстрок(Строка, Разделитель);
Блоки = ЮТСтроки.РазделитьСтроку(Строка, Разделитель);
Для Каждого ОписаниеКолонки Из ПараметрыЗагрузки.ОписаниеКолонок Цикл
@ -224,14 +224,13 @@
ДанныеМакета = Неопределено;
ПараметрыСодержитДанные = ТипПараметра = Тип("ТабличныйДокумент")
Или ТипПараметра = Тип("ТекстовыйДокумент")
Или ТипПараметра = Тип("Строка")
И СтрНачинаетсяС(Макет, "|");
ИЛИ ТипПараметра = Тип("ТекстовыйДокумент")
ИЛИ ТипПараметра = Тип("Строка") И СтрНачинаетсяС(Макет, "|");
Если ПараметрыСодержитДанные Тогда
ДанныеМакета = Макет;
ИначеЕсли ТипПараметра = Тип("Строка") Тогда
ДанныеМакета = ЮТОбщийВызовСервера.Макет(Макет);
ДанныеМакета = ЮТОбщийСлужебныйВызовСервера.Макет(Макет);
Иначе
ВызватьИсключение ЮТИсключения.НеподдерживаемыйПараметрМетода("ЮТТестовыеДанныеВызовСервера.ДанныеМакета", Макет);
КонецЕсли;
@ -275,7 +274,7 @@
ЗаменяемыеЗначения = Новый Соответствие;
КонецЕсли;
Если Не ЗначениеЗаполнено(КэшЗначений) Тогда
Если НЕ ЗначениеЗаполнено(КэшЗначений) Тогда
КэшЗначений = Новый Соответствие;
КонецЕсли;
@ -330,9 +329,9 @@
ИначеЕсли ОписаниеКолонки.Ссылочный Тогда
Значение = СоздатьНовуюЗапись(ОписаниеКолонки, ЗначенияРеквизитов, ПараметрыЗаписи);
ИначеЕсли ОписаниеКолонки.ЭтоДата Тогда
Значение = ЮТПреобразования.ПривестиЗначениеКДате(ОписаниеКолонки.ОписаниеТипа, ЗначениеПредставления);
Значение = ЮТПреобразованияСлужебный.ПривестиЗначениеКДате(ОписаниеКолонки.ОписаниеТипа, ЗначениеПредставления);
ИначеЕсли ОписаниеКолонки.ЭтоЧисло Тогда
Значение = ЮТПреобразования.ПривестиЗначениеКЧислу(ОписаниеКолонки.ОписаниеТипа, ЗначениеПредставления);
Значение = ЮТПреобразованияСлужебный.ПривестиЗначениеКЧислу(ОписаниеКолонки.ОписаниеТипа, ЗначениеПредставления);
Иначе
Значение = ОписаниеКолонки.ОписаниеТипа.ПривестиЗначение(ЗначениеПредставления);
КонецЕсли;
@ -355,7 +354,7 @@
Конструктор.ФикцияОбязательныхПолей();
КонецЕсли;
Возврат Конструктор.Записать(, ПараметрыЗаписи.ПараметрыЗаписи.ОбменДаннымиЗагрузка);
Возврат Конструктор.Записать( , ПараметрыЗаписи.ПараметрыЗаписи.ОбменДаннымиЗагрузка);
КонецФункции
@ -376,7 +375,7 @@
ОписаниеКолонок = ОписаниеКолонок(КолонкиМакета, ОписанияТипов);
ПодготовитьПараметрыЗаполненияТаблицы(КэшЗначений, ЗаменяемыеЗначения, ПараметрыЗаполнения, ОписаниеКолонок);
ПараметрыСоздания = ПараметрыЗаполнения.СозданиеОбъектовМетаданных;
ТаблицаЗначений = НоваяТаблица(ОписаниеКолонок);
ПараметрыЗагрузки = Новый Структура;
@ -407,7 +406,7 @@
КонецЦикла;
Если ТипЗнч(ОписанияТипов) = Тип("Структура") Тогда
ОписанияТипов = ЮТОбщий.ВСоответствие(ОписанияТипов, "Ключ", "Значение");
ОписанияТипов = ЮТКоллекции.ВСоответствие(ОписанияТипов, "Ключ", "Значение");
КонецЕсли;
ЗагружаемыеКолонки = Новый Массив();
@ -555,7 +554,7 @@
ОписаниеКолонки.Менеджер = ЮТОбщий.Менеджер(ОписаниеКолонки.ОписаниеОбъектаМетаданных);
ОписаниеКолонки.КлючТипаЗначения = ЮТТипыДанныхСлужебный.ИдентификаторТипа(ТипЗначения);
КонецЕсли;
КонецПроцедуры
#КонецОбласти

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="18cbfea5-3366-44ec-b0bd-7fd1d933bbf8">
<name>ЮТТестовыеДанные_ТаблицыЗначений</name>
<name>ЮТТестовыеДанныеСлужебныйТаблицыЗначений</name>
<synonym>
<key>ru</key>
<value>Тестовые данные таблицы значений</value>

View File

@ -26,14 +26,14 @@
// Параметры:
// Имя - Строка - Имя набора тестов
// ТегиСтрокой - Строка - Теги относящиеся к набору и вложенным тестам. Это строка разделенная запятыми
//
//
// Возвращаемое значение:
// ОбщийМодуль - Этот же модуль, для замыкания
Функция ДобавитьТестовыйНабор(Имя, ТегиСтрокой = "") Экспорт
ИсполняемыеСценарии = СценарииМодуля();
Если Не ЭтоИсполняемыеСценарии(ИсполняемыеСценарии) Тогда
Если НЕ ЭтоИсполняемыеСценарии(ИсполняемыеСценарии) Тогда
ВызватьИсключение "Первый параметр должен быть результатом метода ЮТТесты.ИсполняемыеСценарии";
КонецЕсли;
@ -42,7 +42,7 @@
КонецЕсли;
Контекст = Контекст();
НовыйТестовыйНабор = ЮТФабрика.ОписаниеТестовогоНабора(Имя, ТегиСтрокой);
НовыйТестовыйНабор = ЮТФабрикаСлужебный.ОписаниеТестовогоНабора(Имя, ТегиСтрокой);
ИсполняемыеСценарии.ТестовыеНаборы.Добавить(НовыйТестовыйНабор);
Контекст.ТекущийНабор = НовыйТестовыйНабор;
@ -54,11 +54,11 @@
// Регистрирует тест, исполняемый в контекстах, в которых доступен тестовый модуль.
// Например
//
//
// * Если модуль с тестами клиент-серверный, то тест будет вызван и на клиенте и на сервере.
// * Если клиентский, то только на клиенте.
// * Если клиент обычное приложение, то только при запуске в режиме обычного приложения.
//
//
// Параметры:
// ИмяТестовогоМетода - Строка - Имя тестового метода
// ПредставлениеТеста - Строка - Представление теста
@ -75,7 +75,7 @@
ЭтоИсполняемыеСценарии = ЭтоИсполняемыеСценарии(Набор);
ЭтоТестовыйНабор = ЭтоТестовыйНабор(Набор);
Если Не (ЭтоИсполняемыеСценарии Или ЭтоТестовыйНабор) Тогда
Если НЕ (ЭтоИсполняемыеСценарии ИЛИ ЭтоТестовыйНабор) Тогда
ВызватьИсключение "Первый параметр должен быть результатом метода ЮТТесты.ИсполняемыеСценарии или ЮТТесты.ТестовыйНабор";
КонецЕсли;
@ -91,12 +91,12 @@
КонецФункции
// Регистрирует тест исполняемый на клиенте.
//
//
// Параметры:
// ИмяТестовогоМетода - Строка - Имя тестового метода
// ПредставлениеТеста - Строка - Представление теста
// ТегиСтрокой - Строка - Теги строкой. Это строка разделенная запятыми
//
//
// Возвращаемое значение:
// ОбщийМодуль - Этот же модуль, для замыкания
Функция ДобавитьКлиентскийТест(ИмяТестовогоМетода, ПредставлениеТеста = "", ТегиСтрокой = "") Экспорт
@ -107,12 +107,12 @@
КонецФункции
// Регистрирует тест исполняемый на сервере.
//
//
// Параметры:
// ИмяТестовогоМетода - Строка - Имя тестового метода
// ПредставлениеТеста - Строка - Представление теста
// ТегиСтрокой - Строка - Теги строкой. Это строка разделенная запятыми
//
//
// Возвращаемое значение:
// ОбщийМодуль - Этот же модуль, для замыкания
Функция ДобавитьСерверныйТест(ИмяТестовогоМетода, ПредставлениеТеста = "", ТегиСтрокой = "") Экспорт
@ -126,11 +126,11 @@
КонецФункции
// Устанавливает настройку выполнения тестового метода.
//
//
// Параметры:
// ИмяПараметра - Строка
// Значение - Произвольный - Значение настройки
//
// Значение - Произвольный - Значение настройки
//
// Возвращаемое значение:
// ОбщийМодуль - Этот же модуль, для замыкания
Функция НастройкаИсполнения(ИмяПараметра, Значение) Экспорт
@ -148,10 +148,10 @@
КонецФункции
// Устанавливает настройку выполнения тестового метода в транзакции.
//
//
// Параметры:
// ВыполнятьВТранзакции - Булево
//
//
// Возвращаемое значение:
// ОбщийМодуль - Этот же модуль, для замыкания
Функция ВТранзакции(ВыполнятьВТранзакции = Истина) Экспорт
@ -164,15 +164,15 @@
// Устанавливает настройку удаления созданных тестовых данных
// В отличии от использования транзакции:
//
//
// * Умеет работать с данными созданными на клиенте
// * Только удаляет созданные данные и не откатывает изменения объектов
// * Работает с данными созданными через API работы с тестовыми данными
// * Удаляет данные созданные вне теста (в обработчиках событий, например, ПередВсемиТестами и ПередТестовымНабором)
//
//
// Параметры:
// УдалятьСозданныеДанные - Булево
//
//
// Возвращаемое значение:
// ОбщийМодуль - Этот же модуль, для замыкания
Функция УдалениеТестовыхДанных(УдалятьСозданныеДанные = Истина) Экспорт
@ -184,10 +184,10 @@
КонецФункции
// Устанавливает настройку переопределения обработчика события Перед...
//
//
// Параметры:
// ВыполнитьПеред - Строка - Имя обработчика события, который будет выполнен вместо основного
//
//
// Возвращаемое значение:
// ОбщийМодуль - Этот же модуль, для замыкания
Функция Перед(ВыполнитьПеред = "") Экспорт
@ -199,10 +199,10 @@
КонецФункции
// Устанавливает настройку переопределения обработчика события После...
//
//
// Параметры:
// ВыполнитьПосле - Строка - Имя обработчика события, который будет выполнен вместо основного
//
//
// Возвращаемое значение:
// ОбщийМодуль - Этот же модуль, для замыкания
Функция После(ВыполнитьПосле = "") Экспорт
@ -214,10 +214,10 @@
КонецФункции
// Устанавливает параметры вызова теста.
//
//
// * Если метод вызывается первый раз, то он устанавливает параметры теста.
// * Если второй и последующие, то добавляет новый тест с параметрами.
//
//
// Параметры:
// Параметр1 - Произвольный
// Параметр2 - Произвольный
@ -229,30 +229,30 @@
// Параметр8 - Произвольный
// Параметр9 - Произвольный
// Параметр10 - Произвольный
//
//
// Возвращаемое значение:
// ОбщийМодуль - Этот же модуль, для замыкания
//
//
// Примеры:
//
//
// ЮТТесты.ДобавитьТест("Тест1").СПараметрами(1, 2); // Будет зарегистрирован один тест с параметрами 1, 2
// ЮТТесты.ДобавитьТест("Тест1")
// .СПараметрами(1)
// .СПараметрами(2); // Будет зарегистрировано два теста, первый с параметром 1 и второй с параметром 2
//
//
//@skip-check method-too-many-params
Функция СПараметрами(Параметр1 = "_!%*",
Параметр2 = "_!%*",
Параметр3 = "_!%*",
Параметр4 = "_!%*",
Параметр5 = "_!%*",
Параметр6 = "_!%*",
Параметр7 = "_!%*",
Параметр8 = "_!%*",
Параметр9 = "_!%*",
Параметр10 = "_!%*") Экспорт
Параметр2 = "_!%*",
Параметр3 = "_!%*",
Параметр4 = "_!%*",
Параметр5 = "_!%*",
Параметр6 = "_!%*",
Параметр7 = "_!%*",
Параметр8 = "_!%*",
Параметр9 = "_!%*",
Параметр10 = "_!%*") Экспорт
Параметры = ЮТОбщий.ЗначениеВМассиве(Параметр1,
Параметры = ЮТКоллекции.ЗначениеВМассиве(Параметр1,
Параметр2,
Параметр3,
Параметр4,
@ -272,7 +272,7 @@
КонецЕсли;
Если Контекст.ТекущийЭлемент.Параметры <> Неопределено Тогда
НоваяНастройка = ЮТОбщий.СкопироватьСтруктуру(Контекст.ТекущийЭлемент);
НоваяНастройка = ЮТКоллекции.СкопироватьСтруктуру(Контекст.ТекущийЭлемент);
ДобавитьТестВНабор(Контекст, НоваяНастройка);
КонецЕсли;
@ -282,78 +282,6 @@
КонецФункции
#Область Устаревшие
// Регистрирует тест.
// Deprecate
//
// Параметры:
// ИмяТестовогоМетода - Строка - Имя тестового метода
// ПредставлениеТеста - Строка - Представление теста
// ТегиСтрокой - Строка - Теги строкой. Это строка разделенная запятыми
// Контексты - Строка - Контексты, строка перечисления контекстов вызова, разделенных запятой.
// Возможные значения см. ЮТФабрика.КонтекстыВызова
// Возвращаемое значение:
// ОбщийМодуль - Этот же модуль, для замыкания
Функция Тест(ИмяТестовогоМетода, ПредставлениеТеста = "", ТегиСтрокой = "", Контексты = Неопределено) Экспорт
ЮТОбщий.ВызовУстаревшегоМетода("ЮТТесты.Тест", "ЮТТесты.ДобавитьТест");
Возврат ДобавитьТест(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой, Контексты);
КонецФункции
// Регистрирует тест вызываемый на клиенте.
// Deprecate
//
// Параметры:
// ИмяТестовогоМетода - Строка - Имя тестового метода
// ПредставлениеТеста - Строка - Представление теста
// ТегиСтрокой - Строка - Теги строкой. Это строка разделенная запятыми
//
// Возвращаемое значение:
// ОбщийМодуль - Этот же модуль, для замыкания
Функция ТестКлиент(ИмяТестовогоМетода, ПредставлениеТеста = "", ТегиСтрокой = "") Экспорт
ЮТОбщий.ВызовУстаревшегоМетода("ЮТТесты.ТестКлиент", "ЮТТесты.ДобавитьКлиентскийТест");
Возврат ДобавитьКлиентскийТест(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой);
КонецФункции
// Регистрирует тест вызываемый на сервере.
// Deprecate
//
// Параметры:
// ИмяТестовогоМетода - Строка - Имя тестового метода
// ПредставлениеТеста - Строка - Представление теста
// ТегиСтрокой - Строка - Теги строкой. Это строка разделенная запятыми
//
// Возвращаемое значение:
// ОбщийМодуль - Этот же модуль, для замыкания
Функция ТестСервер(ИмяТестовогоМетода, ПредставлениеТеста = "", ТегиСтрокой = "") Экспорт
ЮТОбщий.ВызовУстаревшегоМетода("ЮТТесты.ТестСервер", "ЮТТесты.ДобавитьСерверныйТест");
Возврат ДобавитьСерверныйТест(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой);
КонецФункции
// Создает и регистрирует набор, в который будут добавляться последующие тесты.
// Deprecate
//
// Параметры:
// Имя - Строка - Имя набора тестов
// ТегиСтрокой - Строка - Теги относящиеся к набору и вложенным тестам. Это строка разделенная запятыми
//
// Возвращаемое значение:
// ОбщийМодуль - Этот же модуль, для замыкания
Функция ТестовыйНабор(Имя, ТегиСтрокой = "") Экспорт
ЮТОбщий.ВызовУстаревшегоМетода("ЮТТесты.ТестовыйНабор", "ЮТТесты.ДобавитьТестовыйНабор");
Возврат ДобавитьТестовыйНабор(Имя, ТегиСтрокой);
КонецФункции
#КонецОбласти
#КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс
@ -362,19 +290,19 @@
ИнициализироватьКонтекст(МетаданныеМодуля);
ЮТСобытия.ПередЧтениемСценариевМодуля(МетаданныеМодуля);
ЮТСобытияСлужебный.ПередЧтениемСценариевМодуля(МетаданныеМодуля);
КонецПроцедуры
Процедура ПослеЧтенияСценариевМодуля() Экспорт
Контекст = Контекст();
ЮТСобытия.ПослеЧтенияСценариевМодуля(Контекст.МетаданныеМодуля, Контекст.ИсполняемыеСценарии);
ЮТСобытияСлужебный.ПослеЧтенияСценариевМодуля(Контекст.МетаданныеМодуля, Контекст.ИсполняемыеСценарии);
КонецПроцедуры
// Описание сценариев модуля
//
//
// Возвращаемое значение:
// Структура - см. ИсполняемыеСценарии
Функция СценарииМодуля() Экспорт
@ -388,13 +316,13 @@
#Область СлужебныеПроцедурыИФункции
// Исполняемые сценарии.
//
//
// Параметры:
// МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля
//
// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля
//
// Возвращаемое значение:
// Структура - Исполняемые сценарии:
// * ТестовыеНаборы - Массив из см. ЮТФабрика.ОписаниеТестовогоНабора - Тестовые наборы модуля
// * ТестовыеНаборы - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоНабора - Тестовые наборы модуля
// * НастройкиВыполнения- Структура - Настройки исполнения теста
Функция ИсполняемыеСценарии(МетаданныеМодуля)
@ -402,7 +330,7 @@
Структура.Вставить("ТестовыеНаборы", Новый Массив());
Структура.Вставить("НастройкиВыполнения", Новый Структура());
Набор = ЮТФабрика.ОписаниеТестовогоНабора(МетаданныеМодуля.Имя);
Набор = ЮТФабрикаСлужебный.ОписаниеТестовогоНабора(МетаданныеМодуля.Имя);
Набор.НастройкиВыполнения = Структура.НастройкиВыполнения; // Общие настройки с набором по умолчанию
Структура.ТестовыеНаборы.Добавить(Набор);
@ -413,13 +341,13 @@
Функция КонтекстыВызоваКлиента()
Режимы = ЮТФабрика.КонтекстыВызова();
Возврат ЮТОбщий.ЗначениеВМассиве(Режимы.КлиентУправляемоеПриложение, Режимы.КлиентОбычноеПриложение);
Возврат ЮТКоллекции.ЗначениеВМассиве(Режимы.КлиентУправляемоеПриложение, Режимы.КлиентОбычноеПриложение);
КонецФункции
Функция КонтекстыВызоваПоУмолчанию()
Возврат ЮТФабрика.КонтекстыМодуля(Контекст().МетаданныеМодуля);
Возврат ЮТФабрикаСлужебный.КонтекстыМодуля(Контекст().МетаданныеМодуля);
КонецФункции
@ -431,28 +359,28 @@
Контексты = СтрРазделить(Контексты, ", ", Ложь);
КонецЕсли;
Возврат ЮТФабрика.ОписаниеТеста(Имя, Представление, Контексты, ТегиСтрокой);
Возврат ЮТФабрикаСлужебный.ОписаниеТеста(Имя, Представление, Контексты, ТегиСтрокой);
КонецФункции
Функция ЭтоИсполняемыеСценарии(ИсполняемыеСценарии)
Возврат ТипЗнч(ИсполняемыеСценарии) = Тип("Структура")
И ТипЗнч(ЮТОбщий.ЗначениеСтруктуры(ИсполняемыеСценарии, "ТестовыеНаборы")) = Тип("Массив");
И ТипЗнч(ЮТКоллекции.ЗначениеСтруктуры(ИсполняемыеСценарии, "ТестовыеНаборы")) = Тип("Массив");
КонецФункции
Функция ЭтоТестовыйНабор(ТестовыйНабор)
Возврат ТипЗнч(ТестовыйНабор) = Тип("Структура")
И ТипЗнч(ЮТОбщий.ЗначениеСтруктуры(ТестовыйНабор, "Тесты")) = Тип("Массив");
И ТипЗнч(ЮТКоллекции.ЗначениеСтруктуры(ТестовыйНабор, "Тесты")) = Тип("Массив");
КонецФункции
Функция ЭтоОписаниеТеста(Описание)
Возврат ТипЗнч(Описание) = Тип("Структура")
И ТипЗнч(ЮТОбщий.ЗначениеСтруктуры(Описание, "КонтекстВызова")) = Тип("Массив");
И ТипЗнч(ЮТКоллекции.ЗначениеСтруктуры(Описание, "КонтекстВызова")) = Тип("Массив");
КонецФункции
@ -468,7 +396,7 @@
Функция Контекст()
Возврат ЮТКонтекст.ЗначениеКонтекста("КонтекстРегистрацияТестов");
Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста("КонтекстРегистрацияТестов");
КонецФункции
@ -484,8 +412,8 @@
Контекст.Вставить("ТекущийНабор", Набор);
Контекст.Вставить("ТекущийЭлемент", Набор);
ЮТКонтекст.УстановитьЗначениеКонтекста("КонтекстРегистрацияТестов", Контекст);
ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста("КонтекстРегистрацияТестов", Контекст);
КонецПроцедуры
#КонецОбласти

Some files were not shown because too many files have changed in this diff Show More