diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" index f2a096b02..194f174b8 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" @@ -26,6 +26,7 @@ ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикЗагрузитьПараметры"); ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикАнализПараметровЗапуска"); ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикЗагрузитьТесты"); + ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикПодключитьКомпоненты"); ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикВыполнитьТестирование"); ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикСохранитьОтчет"); ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикСохранитьКодВозврата"); @@ -158,6 +159,13 @@ КонецПроцедуры +Процедура ОбработчикПодключитьКомпоненты(Результат, ДополнительныеПараметры) Экспорт + + ЮТКомпонентыКлиент.ТихаяУстановкаКомпонент(); + ВызватьСледующийОбработчик(ДополнительныеПараметры); + +КонецПроцедуры + #КонецОбласти Процедура ВызватьСледующийОбработчик(ПараметрыИсполнения, Результат = Неопределено) 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/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/Module.bsl" new file mode 100644 index 000000000..cac59d236 --- /dev/null +++ "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/Module.bsl" @@ -0,0 +1,104 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2023 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. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область ПрограммныйИнтерфейс + +// Возвращает внешнюю компоненту, реализующую паузу +// +// Возвращаемое значение: +// ВнешнийОбъект +Функция Пауза() Экспорт + + Возврат СоздатьКомпоненту(ОписаниеКомпонентыПауза()); + +КонецФункции + +#КонецОбласти + +#Область СлужебныйПрограммныйИнтерфейс + +// Создает внешнюю компоненту по описанию +// +// Параметры: +// ОписаниеКомпоненты - см. ОписаниеКомпоненты +// +// Возвращаемое значение: +// ВнешнийОбъект +Функция СоздатьКомпоненту(ОписаниеКомпоненты) Экспорт + + Если ПодключитьКомпоненту(ОписаниеКомпоненты.ИмяМакета, ОписаниеКомпоненты.ИмяКомпоненты, Истина) Тогда + Возврат Новый (ОписаниеКомпоненты.ИмяКласса); + Иначе + ВызватьИсключение "Не удалось подключить внешнюю компоненту " + ОписаниеКомпоненты.ИмяКласса; + КонецЕсли; + +КонецФункции + +// Подключает внещнюю компоненту из макета +// +// Параметры: +// ИмяМакета - Строка - Имя макета, в котором хранится компонента +// ИмяКомпоненты - Строка - Имя компоненты +// Кэшировать - Булево - Кэшировать создание компоненты +// +// Возвращаемое значение: +// Булево - Успешность подключения +Функция ПодключитьКомпоненту(ИмяМакета, ИмяКомпоненты, Кэшировать) Экспорт + + Если Кэшировать Тогда + Возврат ЮТПовторногоИспользования.ПодключитьКомпоненту(ИмяМакета, ИмяКомпоненты); + КонецЕсли; + + Возврат ПодключитьВнешнююКомпоненту(ИмяМакета, ИмяКомпоненты, ТипВнешнейКомпоненты.Native); + +КонецФункции + +// Описание компоненты реализующей паузу. +// +// Возвращаемое значение: +// см. ОписаниеКомпоненты +Функция ОписаниеКомпонентыПауза() Экспорт + + Возврат ОписаниеКомпоненты("ОбщийМакет.ЮТYaxUnitAddIn", "YaxUnitAddin", "Sleep"); + +КонецФункции + +// Описание внешней компоненты. +// +// Параметры: +// ИмяМакета - Строка - Имя макета, в котором хранится компонента +// ИмяКомпоненты - Строка -Имя компоненты +// ИмяКласса - Строка - Имя класса, по которому создается компонента +// +// Возвращаемое значение: +// ФиксированнаяСтруктура - Описание компоненты: +// * ИмяМакета - Строка - Имя макета, в котором хранится компонента +// * ИмяКомпоненты - Строка -Имя компоненты +// * ИмяКласса - Строка - Имя класса +Функция ОписаниеКомпоненты(ИмяМакета, ИмяКомпоненты, ИмяКласса) Экспорт + + Описание = Новый Структура; + Описание.Вставить("ИмяМакета", ИмяМакета); + Описание.Вставить("ИмяКомпоненты", ИмяКомпоненты); + Описание.Вставить("ИмяКласса", СтрШаблон("AddIn.%1.%2", ИмяКомпоненты, ИмяКласса)); + + Возврат Новый ФиксированнаяСтруктура(Описание); + +КонецФункции + +#КонецОбласти 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\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213.mdo" "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\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213.mdo" new file mode 100644 index 000000000..2a4b2c61b --- /dev/null +++ "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\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213.mdo" @@ -0,0 +1,11 @@ + + + ЮТКомпоненты + + ru + Компоненты + + true + true + true + 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\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\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\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" new file mode 100644 index 000000000..ec01d6304 --- /dev/null +++ "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\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" @@ -0,0 +1,108 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2023 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. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Функция ФайлКомпоненты(Знач ИмяМакета, Знач ОперационнаяСистема, Знач Архитектура) Экспорт + + Данные = ЮТОбщийВызовСервера.Макет(ИмяМакета); + ЧтениеАрхива = Новый ЧтениеZipФайла(); + ЧтениеАрхива.Открыть(Данные.ОткрытьПотокДляЧтения()); + + ИмяФайлаКомпоненты = ИмяФайлаКомпоненты(ЧтениеАрхива, ОперационнаяСистема, Архитектура); + + Если ИмяФайлаКомпоненты = Неопределено Тогда + ВызватьИсключение "Компонента не поддерживает клиентское окружение"; + КонецЕсли; + + Данные = ДвоичныеДанныеЭлемента(ЧтениеАрхива, ИмяФайлаКомпоненты); + + Возврат Новый ФиксированнаяСтруктура("ИмяФайла, Данные", ИмяФайлаКомпоненты, Данные); + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ИмяФайлаКомпоненты(ЧтениеАрхива, ОперационнаяСистема, Архитектура) + + Данные = ДвоичныеДанныеЭлемента(ЧтениеАрхива, "MANIFEST.XML"); + + Если Данные = Неопределено Тогда + ВызватьИсключение "Архив компоненты не содержит манифеста"; + КонецЕсли; + + ЧтениеXML = Новый ЧтениеXML(); + ЧтениеXML.ОткрытьПоток(Данные.ОткрытьПотокДляЧтения()); + + ИмяФайлаКомпоненты = Неопределено; + + Пока ЧтениеXML.Прочитать() Цикл + + Если ЭтоПодходящийУзел(ЧтениеXML, ОперационнаяСистема, Архитектура) Тогда + ИмяФайлаКомпоненты = ЧтениеXML.ЗначениеАтрибута("path"); + Прервать; + КонецЕсли; + + КонецЦикла; + + ЧтениеXML.Закрыть(); + + Возврат ИмяФайлаКомпоненты; + +КонецФункции + +Функция ЭтоПодходящийУзел(ЧтениеXML, ОперационнаяСистема, Архитектура) + + Если ЧтениеXML.ТипУзла <> ТипУзлаXML.НачалоЭлемента ИЛИ СтрСравнить(ЧтениеXML.Имя, "component") <> 0 Тогда + Возврат Ложь; + КонецЕсли; + + ОперационнаяСистемаУзла = ЧтениеXML.ЗначениеАтрибута("os"); + АрхитектураУзла = ЧтениеXML.ЗначениеАтрибута("arch"); + + Возврат ОперационнаяСистема = ОперационнаяСистемаУзла И Архитектура = АрхитектураУзла; + +КонецФункции + +Функция ДвоичныеДанныеЭлемента(ЧтениеАрхива, ИмяФайла) + + ЭлементФайла = Неопределено; + + Для Каждого Элемент Из ЧтениеАрхива.Элементы Цикл + Если СтрСравнить(Элемент.ПолноеИмя, ИмяФайла) = 0 Тогда + ЭлементФайла = Элемент; + КонецЕсли; + КонецЦикла; + + Если ЭлементФайла = Неопределено Тогда + Возврат Неопределено; + КонецЕсли; + + ИмяВременногоФайла = ПолучитьИмяВременногоФайла(); + ЧтениеАрхива.Извлечь(ЭлементФайла, ИмяВременногоФайла, РежимВосстановленияПутейФайловZIP.НеВосстанавливать); + + Данные = Новый ДвоичныеДанные(ЮТФайлы.ОбъединитьПути(ИмяВременногоФайла, ИмяФайла)); + УдалитьФайлы(ИмяВременногоФайла); + + Возврат Данные; + +КонецФункции + +#КонецОбласти 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\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\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\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" "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\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\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\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" new file mode 100644 index 000000000..2fdf4a25f --- /dev/null +++ "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\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\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\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" @@ -0,0 +1,10 @@ + + + ЮТКомпонентыВызовСервера + + ru + Компоненты вызов сервера + + true + true + 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\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\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" new file mode 100644 index 000000000..90adc1bd6 --- /dev/null +++ "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\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" @@ -0,0 +1,113 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2023 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 = "Linux"; + Windows = "Windows"; + MacOS = "MacOS"; + x86 = "i386"; + 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; + Иначе + ВызватьИсключение "Неподдерживаемый тип платформы"; + КонецЕсли; + + ДанныеФайла = ЮТКомпонентыВызовСервера.ФайлКомпоненты(ИмяМакета, ОперационнаяСистема, Архитектура); + + Путь = РабочийКаталогДанныхПользователя(); + КорневойКаталог = ЮТФайлы.ОбъединитьПути(Путь, "..", "..", ".."); + + КаталогКомпонент = ЮТФайлы.ОбъединитьПути(КорневойКаталог, "ExtCompT"); + ФайлРеестра = ЮТФайлы.ОбъединитьПути(КаталогКомпонент, "registry.xml"); + ФайлКомпоненты = ЮТФайлы.ОбъединитьПути(КаталогКомпонент, ДанныеФайла.ИмяФайла); + + ДанныеФайла.Данные.Записать(ФайлКомпоненты); + ЗаписатьВРеестр(ФайлРеестра, ДанныеФайла.ИмяФайла); + +КонецПроцедуры + +Процедура ЗаписатьВРеестр(ФайлРеестра, ИмяФайла) + + Данные = Новый ДвоичныеДанные(ФайлРеестра); + Текст = ПолучитьСтрокуИзДвоичныхДанных(Данные); + + Если СтрНайти(Текст, " + | + | + |", ИмяФайла); + ИначеЕсли СтрНайти(Текст, СтрШаблон("path=""%1""", ИмяФайла)) <> 0 Тогда // Компонента уже зарегистрированна + Возврат; + Иначе // Добавляем компоненту + Запись = СтрШаблон(" ", ИмяФайла); + Текст = СтрЗаменить(Текст, "", Запись + Символы.ПС + ""); + КонецЕсли; + + Данные = ПолучитьДвоичныеДанныеИзСтроки(Текст, КодировкаТекста.UTF8, Истина); + Данные.Записать(ФайлРеестра); + +КонецПроцедуры + +#КонецОбласти 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\232\320\273\320\270\320\265\320\275\321\202/\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\232\320\273\320\270\320\265\320\275\321\202.mdo" "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\232\320\273\320\270\320\265\320\275\321\202/\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\232\320\273\320\270\320\265\320\275\321\202.mdo" new file mode 100644 index 000000000..3a4492e06 --- /dev/null +++ "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\232\320\273\320\270\320\265\320\275\321\202/\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\232\320\273\320\270\320\265\320\275\321\202.mdo" @@ -0,0 +1,10 @@ + + + ЮТКомпонентыКлиент + + ru + Компоненты клиент + + true + true + diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" index b36354853..e2539b45e 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" @@ -841,6 +841,16 @@ КонецПроцедуры +// Преостанавливает поток выполнения на указанное количество секунд +// +// Параметры: +// Время - Число - Продолжительность паузы в секундах, возможно указывать дробное значение +Процедура Пауза(Время) Экспорт + + ЮТКомпоненты.Пауза().Sleep(Цел(1000 * Время)); + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\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\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 0b4dd2ee1..325220422 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\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\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" @@ -46,4 +46,33 @@ КонецФункции +Функция Макет(ИмяМакета) Экспорт + + ЧастиИмени = СтрРазделить(ИмяМакета, "."); + + Если ЧастиИмени.Количество() < 2 Тогда + ВызватьИсключение СтрШаблон("Некорректно имя макет, если вы хотите получить данные общего макета необходимо указать `ОбщийМакет.%1`", + ИмяМакета); + КонецЕсли; + + ИндексОбласти = 0; + Если СтрСравнить(ЧастиИмени[0], "ОбщийМакет") = 0 Тогда + Макет = ПолучитьОбщийМакет(ЧастиИмени[1]); + ИндексОбласти = 2; + ИначеЕсли ЧастиИмени.Количество() >= 3 Тогда + Менеджер = Менеджер(СтрШаблон("%1.%2", ЧастиИмени[0], ЧастиИмени[1])); + Макет = Менеджер.ПолучитьМакет(ЧастиИмени[2]); + ИндексОбласти = 3; + Иначе + ВызватьИсключение СтрШаблон("Некорректное имя макета `%1`", ИмяМакета); + КонецЕсли; + + Если ЧастиИмени.Количество() > ИндексОбласти Тогда + Макет = Макет.ПолучитьОбласть(ЧастиИмени[ИндексОбласти]); + КонецЕсли; + + Возврат Макет; + +КонецФункции + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl" index 7d64a2308..63c8f2008 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl" @@ -42,4 +42,10 @@ КонецФункции +Функция ПодключитьКомпоненту(ИмяМакета, ИмяКомпоненты) Экспорт + + Возврат ЮТКомпоненты.ПодключитьКомпоненту(ИмяМакета, ИмяКомпоненты, Ложь); + +КонецФункции + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\271\320\273\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\271\320\273\321\213/Module.bsl" index 249d5d762..d3c4baec0 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\271\320\273\321\213/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\271\320\273\321\213/Module.bsl" @@ -77,26 +77,28 @@ // Параметры: // Путь1 - Строка - базовый путь к каталогу // Путь2 - Строка - относительный путь к вложенному элементу +// Путь3 - Строка - относительный путь к вложенному элементу +// Путь4 - Строка - относительный путь к вложенному элементу +// Путь5 - Строка - относительный путь к вложенному элементу // // Возвращаемое значение: // Строка - Объединенный путь -Функция ОбъединитьПути(Путь1, Путь2) Экспорт +Функция ОбъединитьПути(Путь1, Путь2, Путь3 = Неопределено, Путь4 = Неопределено, Путь5 = Неопределено) Экспорт - Результат = Неопределено; + Разделитель = ПолучитьРазделительПути(); - Если ЗначениеЗаполнено(Путь1) И ЗначениеЗаполнено(Путь2) Тогда - Разделитель = ПолучитьРазделительПути(); - - Если НЕ СтрЗаканчиваетсяНа(Путь1, Разделитель) И НЕ СтрНачинаетсяС(Разделитель, Путь2) Тогда - Результат = СтрШаблон("%1%2%3", Путь1, Разделитель, Путь2); - Иначе - Результат = Путь1 + Путь2; - КонецЕсли; - - ИначеЕсли ЗначениеЗаполнено(Путь1) Тогда - Результат = Путь1; - Иначе - Результат = Путь2; + Результат = ДополнитьПуть(Путь1, Путь2, Разделитель); + + Если Путь3 <> Неопределено Тогда + Результат = ДополнитьПуть(Результат, Путь3, Разделитель); + КонецЕсли; + + Если Путь4 <> Неопределено Тогда + Результат = ДополнитьПуть(Результат, Путь4, Разделитель); + КонецЕсли; + + Если Путь5 <> Неопределено Тогда + Результат = ДополнитьПуть(Результат, Путь5, Разделитель); КонецЕсли; Возврат Результат; @@ -174,4 +176,26 @@ КонецПроцедуры #КонецЕсли +Функция ДополнитьПуть(Путь1, Путь2, Разделитель) + + Результат = Неопределено; + + Если ЗначениеЗаполнено(Путь1) И ЗначениеЗаполнено(Путь2) Тогда + + Если НЕ СтрЗаканчиваетсяНа(Путь1, Разделитель) И НЕ СтрНачинаетсяС(Разделитель, Путь2) Тогда + Результат = СтрШаблон("%1%2%3", Путь1, Разделитель, Путь2); + Иначе + Результат = Путь1 + Путь2; + КонецЕсли; + + ИначеЕсли ЗначениеЗаполнено(Путь1) Тогда + Результат = Путь1; + Иначе + Результат = Путь2; + КонецЕсли; + + Возврат Результат; + +КонецФункции + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonTemplates/\320\256\320\242YaxUnitAddIn/Template.addin" "b/exts/yaxunit/src/CommonTemplates/\320\256\320\242YaxUnitAddIn/Template.addin" new file mode 100644 index 000000000..6fa244c6d Binary files /dev/null and "b/exts/yaxunit/src/CommonTemplates/\320\256\320\242YaxUnitAddIn/Template.addin" differ diff --git "a/exts/yaxunit/src/CommonTemplates/\320\256\320\242YaxUnitAddIn/\320\256\320\242YaxUnitAddIn.mdo" "b/exts/yaxunit/src/CommonTemplates/\320\256\320\242YaxUnitAddIn/\320\256\320\242YaxUnitAddIn.mdo" new file mode 100644 index 000000000..23825ac97 --- /dev/null +++ "b/exts/yaxunit/src/CommonTemplates/\320\256\320\242YaxUnitAddIn/\320\256\320\242YaxUnitAddIn.mdo" @@ -0,0 +1,9 @@ + + + ЮТYaxUnitAddIn + + ru + ЮТYax unit add in + + AddIn + diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo index 43e5cc1e1..e415fc41f 100644 --- a/exts/yaxunit/src/Configuration/Configuration.mdo +++ b/exts/yaxunit/src/Configuration/Configuration.mdo @@ -43,6 +43,7 @@ CommonTemplate.ЮТ_СловарьПодражателя_Люди_МужскиеИмена_ru CommonTemplate.ЮТ_СловарьПодражателя_Люди_МужскиеОтчества_ru CommonTemplate.ЮТ_СловарьПодражателя_Люди_МужскиеФамилии_ru + CommonTemplate.ЮТYaxUnitAddIn CommonTemplate.ЮТОписаниеМетаданных CommonModule.Мокито CommonModule.МокитоОбучение @@ -55,6 +56,9 @@ CommonModule.ЮТИсполнительКлиент CommonModule.ЮТИсполнительКлиентСервер CommonModule.ЮТИсполнительСервер + CommonModule.ЮТКомпоненты + CommonModule.ЮТКомпонентыВызовСервера + CommonModule.ЮТКомпонентыКлиент CommonModule.ЮТКонструкторВариантов CommonModule.ЮТКонструкторТестовыхДанныхСлужебный CommonModule.ЮТКонтекст diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271/Module.bsl" index 2178a095c..2e8aa1fec 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271/Module.bsl" @@ -25,10 +25,24 @@ .ДобавитьТест("ОбъединитьВСтруктуру") .ДобавитьТест("СформироватьСтрокуСимволов") .ДобавитьТест("ДанныеСовпадают") + .ДобавитьТест("Пауза") ; КонецПроцедуры +Процедура Пауза() Экспорт + + Начало = ТекущаяУниверсальнаяДатаВМиллисекундах(); + ЮТОбщий.Пауза(1); + ЮТОбщий.Пауза(1); + ЮТОбщий.Пауза(1); + Дельта = ТекущаяУниверсальнаяДатаВМиллисекундах() - Начало; + + ЮТест.ОжидаетЧто(Дельта) + .МеждуИсключаяГраницы(3010, 3050); + +КонецПроцедуры + Процедура ДобавитьСтроку() Экспорт Варианты = ЮТест.Варианты("Исходная, Дополнение, Разделитель, Результат") diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214/Module.bsl" index 27220fd09..8642e9dc7 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214/Module.bsl" @@ -93,7 +93,7 @@ Наборы = ЮТЧитатель.ЗагрузитьТесты(ПараметрыЗапуска); ЮТест.ОжидаетЧто(Наборы, "Прочитанные наборы расширения tests") - .ИмеетДлину(21); + .ИмеетДлину(22); КонецПроцедуры @@ -158,4 +158,4 @@ КонецПроцедуры -#КонецОбласти \ No newline at end of file +#КонецОбласти