diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 8cb363c3e..246870877 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,7 +1,7 @@ - + -## Описание изменний +## Описание изменений diff --git a/.vscode/settings.json b/.vscode/settings.json index c5dce9e42..e5a976106 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -31,6 +31,7 @@ "помогаторы", "пресетов", "Регистронезависимое", + "реквеста", "релизный", "Сериализатор", "сериализацию", diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" index 9f8f04bdb..ddb495291 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" @@ -70,47 +70,12 @@ КорневойКаталог = ЮТФайлы.ОбъединитьПути(Результат, "..", "..", ".."); КаталогКомпонент = ЮТФайлы.ОбъединитьПути(КорневойКаталог, "ExtCompT"); - ПараметрыТихойУстановки.РабочийКаталог = КаталогКомпонент; - Информация = Новый СистемнаяИнформация(); - ОперационнаяСистема = Неопределено; - Архитектура = Неопределено; - - Linux = "Linux"; - Windows = "Windows"; - MacOS = "MacOS"; - - //@skip-check bsl-variable-name-invalid - x86 = "i386"; - //@skip-check bsl-variable-name-invalid - x64 = "x86_64"; - - ТипКлиентскойПлатформы = Информация.ТипПлатформы; - - Если ТипКлиентскойПлатформы = ТипПлатформы.Linux_x86 Тогда - ОперационнаяСистема = Linux; - Архитектура = x86; - ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.Linux_x86_64 Тогда - ОперационнаяСистема = Linux; - Архитектура = x64; - ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.Windows_x86 Тогда - ОперационнаяСистема = Windows; - Архитектура = x86; - ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.Windows_x86_64 Тогда - ОперационнаяСистема = Windows; - Архитектура = x64; - ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.MacOS_x86 Тогда - ОперационнаяСистема = MacOS; - Архитектура = x86; - ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.MacOS_x86_64 Тогда - ОперационнаяСистема = MacOS; - Архитектура = x64; - Иначе - ЮТИсполнительСлужебныйКлиент.ОбработкаОшибки("Неподдерживаемый тип платформы"); - КонецЕсли; - ПараметрыТихойУстановки.ОперационнаяСистема = ОперационнаяСистема; - ПараметрыТихойУстановки.Архитектура = Архитектура; + ОписаниеПлатформы = ЮТОкружениеСлужебныйКлиентСервер.Платформа(Новый СистемнаяИнформация()); + ПараметрыТихойУстановки.ОперационнаяСистема = ОписаниеПлатформы.ОперационнаяСистема; + ПараметрыТихойУстановки.Архитектура = ОписаниеПлатформы.Архитектура; + ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ПараметрыТихойУстановки); КонецПроцедуры diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 2baddf600..2271b396d 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -132,7 +132,7 @@ КонецФункции -Функция ВычислитьБезопасно(Выражение) Экспорт +Функция ВычислитьБезопасно(Выражение, Параметры = Неопределено) Экспорт #Если НЕ ВебКлиент И НЕ ТонкийКлиент Тогда УстановитьБезопасныйРежим(Истина); @@ -152,29 +152,25 @@ КонецФункции -Функция ВызватьФункцию(ПолноеИмяМетода, Параметры, Безопасно = Истина) Экспорт +Функция ВызватьФункциюКонфигурацииНаСервере(ИмяМодуля, ИмяМетода, Параметры = Неопределено) Экспорт - Выражение = СтрокаВызоваМетода(ПолноеИмяМетода, Параметры); + Если НЕ ЮТСтроки.ЭтоВалидноеИмяПеременной(ИмяМодуля) Тогда + ВызватьИсключение "Передано невалидное имя общего модуля в `ЮТМетодыСлужебный.ВызватьФункциюКонфигурацииНаСервере`"; + КонецЕсли; -#Если НЕ ВебКлиент И НЕ ТонкийКлиент Тогда - Если Безопасно Тогда - УстановитьБезопасныйРежим(Истина); - Попытка - Значение = Вычислить(Выражение); - Исключение - УстановитьБезопасныйРежим(Ложь); - ВызватьИсключение; - КонецПопытки; - УстановитьБезопасныйРежим(Ложь); - Иначе - //@skip-check server-execution-safe-mode - Значение = Вычислить(Выражение); + Если НЕ ЮТСтроки.ЭтоВалидноеИмяПеременной(ИмяМетода) Тогда + ВызватьИсключение "Передано невалидное имя метода в `ЮТМетодыСлужебный.ВызватьФункциюКонфигурацииНаСервере`"; КонецЕсли; -#Иначе - Значение = Вычислить(Выражение); -#КонецЕсли - Возврат Значение; + Возврат ЮТОбщийСлужебныйВызовСервера.ВызватьФункциюКонфигурацииНаСервере(ИмяМодуля, ИмяМетода, Параметры); + +КонецФункции + +Функция ВызватьФункцию(ПолноеИмяМетода, Параметры, Безопасно = Истина) Экспорт + + Выражение = СтрокаВызоваМетода(ПолноеИмяМетода, Параметры); + + Возврат ВычислитьБезопасно(Выражение, Параметры); КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 93863b778..70eea2a16 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -124,6 +124,14 @@ КонецФункции +Функция ВызватьФункциюКонфигурацииНаСервере(Знач ИмяМодуля, Знач ИмяМетода, Знач Параметры = Неопределено) Экспорт + + ПолноеИмяМетода = ЮТСтроки.ДобавитьСтроку(ИмяМодуля, ИмяМетода, "."); + + Возврат ЮТМетодыСлужебный.ВызватьФункцию(ПолноеИмяМетода, Параметры, Истина); + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" new file mode 100644 index 000000000..e1558defb --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -0,0 +1,184 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// 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. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +// Собирает информацию об окружения, как сервера, так и клиента. +// +// Возвращаемое значение: +// Структура - Описание окружения: +// * ВерсияПлатформы - Строка +// * ФайловаяБаза - Булево +// * ОбычноеПриложение - Булево +// * ВебКлиент - Булево +// * ТолстыйКлиент - Булево +// * ЛокальПлатформы - Строка +// * ЛокальИнтерфейса - Строка +// * ОперационнаяСистемаКлиент - Строка - Возможные значения: Linux, Windows, MacOS +// * АрхитектураКлиент - Строка - Возможные значения: x86_64, i386 +// * ОперационнаяСистемаСервер - Строка - Возможные значения: Linux, Windows, MacOS +// * АрхитектураСервер - Строка - Возможные значения: x86_64, i386 +// * ВстроенныйЯзык - Строка - Возможные значения: ru, en +// * ИнформационнаяСреда - Строка +Функция ОписаниеОкружения() Экспорт + + СистемнаяИнформация = Новый СистемнаяИнформация(); + ОписаниеСерверногоОкружения = ЮТМетодыСлужебный.ВызватьФункциюКонфигурацииНаСервере("ЮТОкружениеСлужебныйКлиентСервер", + "ОписаниеСерверногоОкружения"); + + Окружение = Новый Структура; + Окружение.Вставить("Конфигурация", ОписаниеСерверногоОкружения.Конфигурация); + Окружение.Вставить("ВерсияКонфигурации", ОписаниеСерверногоОкружения.ВерсияКонфигурации); + Окружение.Вставить("ВерсияПлатформы", СистемнаяИнформация.ВерсияПриложения); + Окружение.Вставить("ИнформационнаяСреда", "DEV"); + Окружение.Вставить("ТестовыйДвижок", ОписаниеСерверногоОкружения.ТестовыйДвижок); + Окружение.Вставить("ВерсияТестовогоДвижка", ОписаниеСерверногоОкружения.ВерсияТестовогоДвижка); + + Окружение.Вставить("ЛокальПлатформы", ЛокальПлатформы()); + Окружение.Вставить("ЛокальИнтерфейса", ЛокальИнтерфейса()); + Окружение.Вставить("ВстроенныйЯзык", ОписаниеСерверногоОкружения.ВстроенныйЯзык); + + Платформа = Платформа(СистемнаяИнформация); + Окружение.Вставить("ОперационнаяСистемаКлиент", Платформа.ОперационнаяСистема); + Окружение.Вставить("АрхитектураКлиент", Платформа.Архитектура); + + Окружение.Вставить("ОперационнаяСистемаСервер", ОписаниеСерверногоОкружения.ОперационнаяСистема); + Окружение.Вставить("АрхитектураСервер", ОписаниеСерверногоОкружения.Архитектура); + + Окружение.Вставить("ФайловаяБаза", ЭтоФайловаяБаза()); + Окружение.Вставить("ОбычноеПриложение", Ложь); + Окружение.Вставить("ВебКлиент", Ложь); + Окружение.Вставить("ТолстыйКлиент", Ложь); + +#Если ВебКлиент Тогда + Окружение.ВебКлиент = Истина; +#ИначеЕсли ТолстыйКлиентОбычноеПриложение Тогда + Окружение.ОбычноеПриложение = Истина; + Окружение.ТолстыйКлиент = Истина; +#ИначеЕсли ТолстыйКлиентУправляемоеПриложение Тогда + Окружение.ТолстыйКлиент = Истина; +#КонецЕсли + + //@skip-check use-non-recommended-method + Окружение.Вставить("ВремяЗапуска", ТекущаяДата()); // BSLLS:DeprecatedCurrentDate-off + + //@skip-check constructor-function-return-section + Возврат Окружение; + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Процедура Инициализация(ПараметрыЗапуска) Экспорт + + Окружение = ОписаниеОкружения(); + ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста("Окружение", Окружение, Истина); + +КонецПроцедуры + +Функция ЭтоФайловаяБаза() + + Возврат СтрНайти(Врег(СтрокаСоединенияИнформационнойБазы()), "FILE=") = 0; + +КонецФункции + +Функция Платформа(СистемнаяИнформация) Экспорт + + ОперационнаяСистема = Неопределено; + Архитектура = Неопределено; + + Linux = "Linux"; + Windows = "Windows"; + MacOS = "MacOS"; + + //@skip-check bsl-variable-name-invalid + x86 = "i386"; + //@skip-check bsl-variable-name-invalid + x64 = "x86_64"; + + ТипКлиентскойПлатформы = СистемнаяИнформация.ТипПлатформы; + + Если ТипКлиентскойПлатформы = ТипПлатформы.Linux_x86 Тогда + ОперационнаяСистема = Linux; + Архитектура = x86; + ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.Linux_x86_64 Тогда + ОперационнаяСистема = Linux; + Архитектура = x64; + ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.Windows_x86 Тогда + ОперационнаяСистема = Windows; + Архитектура = x86; + ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.Windows_x86_64 Тогда + ОперационнаяСистема = Windows; + Архитектура = x64; + ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.MacOS_x86 Тогда + ОперационнаяСистема = MacOS; + Архитектура = x86; + ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.MacOS_x86_64 Тогда + ОперационнаяСистема = MacOS; + Архитектура = x64; + Иначе + ВызватьИсключение "Неподдерживаемый тип платформы"; + КонецЕсли; + + Возврат Новый Структура("ОперационнаяСистема, Архитектура", ОперационнаяСистема, Архитектура); + +КонецФункции + +#Если Сервер Тогда +Функция ОписаниеСерверногоОкружения() Экспорт + + СистемнаяИнформация = Новый СистемнаяИнформация(); + Платформа = Платформа(СистемнаяИнформация); + + Окружение = Новый Структура; + Окружение.Вставить("ОперационнаяСистема", Платформа.ОперационнаяСистема); + Окружение.Вставить("Архитектура", Платформа.Архитектура); + + ЭтоРусскийВстроенныйЯзык = Метаданные.ВариантВстроенногоЯзыка = Метаданные.СвойстваОбъектов.ВариантВстроенногоЯзыка.Русский; + Окружение.Вставить("ВстроенныйЯзык", Формат(ЭтоРусскийВстроенныйЯзык, "БЛ=en; БИ=ru;")); + + Расширение = Метаданные.ОбщиеМодули.ЮТОкружениеСлужебныйКлиентСервер.РасширениеКонфигурации(); + Окружение.Вставить("ТестовыйДвижок", Расширение.Имя); + Окружение.Вставить("ВерсияТестовогоДвижка", Расширение.Версия); + Окружение.Вставить("Конфигурация", Метаданные.Представление()); + Окружение.Вставить("ВерсияКонфигурации", Метаданные.Версия); + + Возврат Окружение; + +КонецФункции +#КонецЕсли + +Функция ЛокальИнтерфейса() + +#Если Клиент Тогда + Возврат ТекущийЯзык(); +#Иначе + Возврат ТекущийЯзык().КодЯзыка; +#КонецЕсли + +КонецФункции + +Функция ЛокальПлатформы() + + Возврат ТекущийЯзыкСистемы(); + +КонецФункции + +#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" new file mode 100644 index 000000000..d765a3dd5 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" @@ -0,0 +1,12 @@ + + + ЮТОкружениеСлужебныйКлиентСервер + + ru + Окружение служебный + + true + true + true + true + diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index bc6bc3c1c..883dcf5b3 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -54,6 +54,8 @@ КонецЦикла; КонецЦикла; + + ЗаписатьИнформациюОбОкружении(Каталог); #КонецЕсли ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьОбработчик(Обработчик); @@ -264,10 +266,68 @@ КонецФункции Функция ЮниксВремя(ДатаВМиллисекундах) - + Возврат ДатаВМиллисекундах - 62135596800000; + +КонецФункции +Процедура ЗаписатьИнформациюОбОкружении(Каталог) + + Окружение = ЮТест.Окружение(); + + Если НЕ ЗначениеЗаполнено(Окружение) Тогда + Возврат; + КонецЕсли; + + ИмяФайла = ЮТФайлы.ОбъединитьПути(Каталог, "environment.properties"); + Запись = Новый ЗаписьТекста(ИмяФайла, "ISO-8859-1", , Ложь); + + Для Каждого Элемент Из ЮТест.Окружение() Цикл + ЗаписатьСтрокуProperties(Запись, СтрШаблон("%1=%2", Элемент.Ключ, Элемент.Значение)); + КонецЦикла; + Запись.Закрыть(); + +КонецПроцедуры + +Процедура ЗаписатьСтрокуProperties(Запись, ВходнаяСтрока) + + ГраницаЛатиницы = 127; + + Для Инд = 1 По СтрДлина(ВходнаяСтрока) Цикл + КодСимволаЗначения = КодСимвола(ВходнаяСтрока, Инд); + Если КодСимволаЗначения > ГраницаЛатиницы Тогда + Запись.Записать("\u" + ПеревестиВШестнадцатеричнуюСистему(КодСимволаЗначения)); + Иначе + Запись.Записать(Сред(ВходнаяСтрока, Инд, 1)); + КонецЕсли; + КонецЦикла; + + Запись.Записать(Символы.ПС); + +КонецПроцедуры + +Функция ПеревестиВШестнадцатеричнуюСистему(Знач Число) + + Основание = 16; + Длина = 4; + + СимволыСистемы = СтрРазделить("0 1 2 3 4 5 6 7 8 9 A B C D E F", " "); + + Результат = ""; + Пока Число <> 0 Цикл + Остаток = Число % Основание; + Результат = СимволыСистемы[Остаток] + Результат; + Число = Цел(Число / Основание); + КонецЦикла; + + Пока СтрДлина(Результат) < Длина Цикл + Результат = "0" + Результат; + КонецЦикла; + + Возврат Результат; + КонецФункции + #КонецЕсли #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 2d6263189..0f2333926 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -78,7 +78,8 @@ КонецЦикла; - ЗаписатьСвойства(ЗаписьXML, Новый Структура("executor, reportDate", "BIA YAxUnit", ТекущаяДата())); + Окружение = ЮТест.Окружение(); + ЗаписатьСвойства(ЗаписьXML, Окружение); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.Закрыть(); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" index 143527091..bc1527e52 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" @@ -29,6 +29,20 @@ КонецПроцедуры +// Фрмирует сообщение об ошибки. +// +// Параметры: +// Описание - Строка - Префикс текста ошибки +// Ошибка - Строка, ИнформацияОбОшибке - Ошибка +// +// Возвращаемое значение: +// Строка +Функция ПредставлениеОшибки(Описание, Ошибка = Неопределено) Экспорт + + Возврат ЮТРегистрацияОшибокСлужебный.ПредставлениеОшибки(Описание, Ошибка); + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index a68985960..b3b019cc3 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -163,13 +163,15 @@ КонецПроцедуры -Функция ПредставлениеОшибки(Знач Описание, Знач Ошибка) Экспорт +Функция ПредставлениеОшибки(Описание, Ошибка) Экспорт Если ТипЗнч(Ошибка) = Тип("ИнформацияОбОшибке") Тогда - Ошибка = Символы.ПС + ПодробноеПредставлениеОшибки(Ошибка); + ПредставлениеОшибки = Символы.ПС + ПодробноеПредставлениеОшибки(Ошибка); + Иначе + ПредставлениеОшибки = Ошибка; КонецЕсли; - Возврат СтрШаблон("%1: %2", Описание, Ошибка); + Возврат ЮТСтроки.ДобавитьСтроку(Описание, ПредставлениеОшибки, ": "); КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index e7a318880..6e9806648 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -312,6 +312,9 @@ ЮТЛогирование.Отладка(СтрШаблон("Обработка события `%1` - `%2`", ИмяСобытия, ПолноеИмяМетода)); Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(ПолноеИмяМетода, ПараметрыСобытия); + Если Ошибка <> Неопределено Тогда + ЮТЛогирование.Ошибка(ЮТРегистрацияОшибок.ПредставлениеОшибки("Ошибка обработки события", Ошибка)); + КонецЕсли; Если Ошибка <> Неопределено Тогда Ошибки.Добавить(Ошибка); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" index 19d1a27d3..c941f2838 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" @@ -232,7 +232,7 @@ Для Позиция = 1 По СтрДлина(Значение) Цикл КодСимволаШаблона = КодСимвола(Шаблон, Позиция); КодСимволаЗначения = КодСимвола(Значение, Позиция); - + Если КодСимволаШаблона = 88 // X И ((КодСимволаЗначения < 48 ИЛИ КодСимволаЗначения > 57) // 0..9 И (КодСимволаЗначения < 97 ИЛИ КодСимволаЗначения > 102) // a..f @@ -276,6 +276,25 @@ КонецФункции +// Проверяет переданную строку, является ли она подходщим именем переменной - должна соответствовать требованиям к именам переменных +// +// Параметры: +// ИмяПеременной - Строка +// +// Возвращаемое значение: +// Булево - Это валидное имя переменной +Функция ЭтоВалидноеИмяПеременной(ИмяПеременной) Экспорт + + Попытка + Проверка = Новый Структура; + Проверка.Вставить(ИмяПеременной); + Возврат Истина; + Исключение + Возврат Ложь; + КонецПопытки; + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\265\321\201\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\265\321\201\321\202/Module.bsl" index b8d45af82..eb36ff07c 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\265\321\201\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\265\321\201\321\202/Module.bsl" @@ -220,4 +220,28 @@ КонецФункции +// Возвращает информацию об окружении. +// +// Возвращаемое значение: +// Структура - Описание окружения: +// * ВерсияПлатформы - Строка +// * ФайловаяБаза - Булево +// * ОбычноеПриложение - Булево +// * ВебКлиент - Булево +// * ТолстыйКлиент - Булево +// * ЛокальПлатформы - Строка +// * ЛокальИнтерфейса - Строка +// * ОперационнаяСистемаКлиент - Строка - Возможные значения: Linux, Windows, MacOS +// * АрхитектураКлиент - Строка - Возможные значения: x86_64, i386 +// * ОперационнаяСистемаСервер - Строка - Возможные значения: Linux, Windows, MacOS +// * АрхитектураСервер - Строка - Возможные значения: x86_64, i386 +// * ВстроенныйЯзык - Строка - Возможные значения: ru, en +// * ИнформационнаяСреда - Строка +Функция Окружение() Экспорт + + //@skip-check constructor-function-return-section + Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста("Окружение"); + +КонецФункции + #КонецОбласти diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo index 1acfe00b0..0c7b93b9c 100644 --- a/exts/yaxunit/src/Configuration/Configuration.mdo +++ b/exts/yaxunit/src/Configuration/Configuration.mdo @@ -96,6 +96,7 @@ CommonModule.ЮТНастройкиВыполнения CommonModule.ЮТОбщий CommonModule.ЮТОбщийСлужебныйВызовСервера + CommonModule.ЮТОкружениеСлужебныйКлиентСервер CommonModule.ЮТОтчетAllureСлужебный CommonModule.ЮТОтчетJSONСлужебный CommonModule.ЮТОтчетJUnitСлужебный diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201.mdo" index 68a3a618e..ccb510e78 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201.mdo" @@ -26,6 +26,7 @@ CommonModule.ЮТМетодыСлужебный CommonModule.ЮТНастройкиВыполнения CommonModule.ЮТОбщийСлужебныйВызовСервера + CommonModule.ЮТОкружениеСлужебныйКлиентСервер CommonModule.ЮТОтчетСлужебный CommonModule.ЮТПодключаемыеМодулиСлужебный CommonModule.ЮТПроверкиСлужебный diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217.mdo" index 90f3f4ecf..4f5813280 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217.mdo" @@ -7,5 +7,6 @@ true CommonModule.ЮТЗависимостиСлужебный + CommonModule.ЮТОкружениеСлужебныйКлиентСервер Subsystem.ЮТПодключаемыеМодули.Subsystem.ОбработчикиСобытий diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\265\321\201\321\202/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\265\321\201\321\202/Module.bsl" index 55c8effa5..562c7175d 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\265\321\201\321\202/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\265\321\201\321\202/Module.bsl" @@ -29,6 +29,7 @@ .ДобавитьТест("ПроверкаПереопределенногоКонтекста").Перед("Перед_ПроверкаПереопределенногоКонтекста") .ДобавитьТестовыйНабор("ПовторнаяПроверкаКонтекста") .ДобавитьТест("ПроверкаКонтекста") + .ДобавитьТест("Окружение") ; КонецПроцедуры @@ -74,10 +75,10 @@ ЮТест.Контекст().Значение("Коллекция").Добавить("ПослеВсехТестов"); #Если Сервер Тогда ЮТест.ОжидаетЧто(ЮТест.Контекст().Значение("Коллекция")) - .ИмеетДлину(18); // Количество вызванных обработчиков событий + .ИмеетДлину(20); // Количество вызванных обработчиков событий #Иначе ЮТест.ОжидаетЧто(ЮТест.Контекст().Значение("Коллекция")) - .ИмеетДлину(16); // Количество вызванных обработчиков событий + .ИмеетДлину(18); // Количество вызванных обработчиков событий #КонецЕсли КонецПроцедуры @@ -151,4 +152,28 @@ КонецПроцедуры #КонецЕсли +Процедура Окружение() Экспорт + + Окружение = ЮТест.Окружение(); + + ЮТест.ОжидаетЧто(Окружение) + .Заполнено() + .ИмеетТип("Структура") + .Свойство("ВстроенныйЯзык").Равно("ru") + .Свойство("ОбычноеПриложение").Равно(Ложь) + .Свойство("ВебКлиент").Равно(Ложь) + .Свойство("ТолстыйКлиент").Равно(Ложь) + .Свойство("ВерсияПлатформы") + .Свойство("ФайловаяБаза") + .Свойство("ЛокальПлатформы") + .Свойство("ЛокальИнтерфейса") + .Свойство("ОперационнаяСистемаКлиент") + .Свойство("АрхитектураКлиент") + .Свойство("ОперационнаяСистемаСервер") + .Свойство("АрхитектураСервер") + .Свойство("ИнформационнаяСреда") + ; + +КонецПроцедуры + #КонецОбласти