diff --git a/exts/yaxunit/src/CommonModules/ЮТКомпоненты/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТКомпоненты/Module.bsl index b5051eae..cac59d23 100644 --- a/exts/yaxunit/src/CommonModules/ЮТКомпоненты/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТКомпоненты/Module.bsl @@ -18,6 +18,10 @@ #Область ПрограммныйИнтерфейс +// Возвращает внешнюю компоненту, реализующую паузу +// +// Возвращаемое значение: +// ВнешнийОбъект Функция Пауза() Экспорт Возврат СоздатьКомпоненту(ОписаниеКомпонентыПауза()); @@ -28,34 +32,65 @@ #Область СлужебныйПрограммныйИнтерфейс +// Создает внешнюю компоненту по описанию +// +// Параметры: +// ОписаниеКомпоненты - см. ОписаниеКомпоненты +// +// Возвращаемое значение: +// ВнешнийОбъект Функция СоздатьКомпоненту(ОписаниеКомпоненты) Экспорт - ПодключитьКомпоненту(ОписаниеКомпоненты.ИмяМакета, ОписаниеКомпоненты.ИмяКомпоненты, Истина); - Возврат Новый (ОписаниеКомпоненты.ИмяКласса); + Если ПодключитьКомпоненту(ОписаниеКомпоненты.ИмяМакета, ОписаниеКомпоненты.ИмяКомпоненты, Истина) Тогда + Возврат Новый (ОписаниеКомпоненты.ИмяКласса); + Иначе + ВызватьИсключение "Не удалось подключить внешнюю компоненту " + ОписаниеКомпоненты.ИмяКласса; + КонецЕсли; КонецФункции +// Подключает внещнюю компоненту из макета +// +// Параметры: +// ИмяМакета - Строка - Имя макета, в котором хранится компонента +// ИмяКомпоненты - Строка - Имя компоненты +// Кэшировать - Булево - Кэшировать создание компоненты +// +// Возвращаемое значение: +// Булево - Успешность подключения Функция ПодключитьКомпоненту(ИмяМакета, ИмяКомпоненты, Кэшировать) Экспорт Если Кэшировать Тогда - Возврат ЮТПовторногоИспользования.ПодключитьКомпоненту(ИмяМакета, ИмяКомпоненты) + Возврат ЮТПовторногоИспользования.ПодключитьКомпоненту(ИмяМакета, ИмяКомпоненты); КонецЕсли; Возврат ПодключитьВнешнююКомпоненту(ИмяМакета, ИмяКомпоненты, ТипВнешнейКомпоненты.Native); КонецФункции -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - +// Описание компоненты реализующей паузу. +// +// Возвращаемое значение: +// см. ОписаниеКомпоненты Функция ОписаниеКомпонентыПауза() Экспорт Возврат ОписаниеКомпоненты("ОбщийМакет.ЮТYaxUnitAddIn", "YaxUnitAddin", "Sleep"); КонецФункции -Функция ОписаниеКомпоненты(ИмяМакета, ИмяКомпоненты, ИмяКласса) +// Описание внешней компоненты. +// +// Параметры: +// ИмяМакета - Строка - Имя макета, в котором хранится компонента +// ИмяКомпоненты - Строка -Имя компоненты +// ИмяКласса - Строка - Имя класса, по которому создается компонента +// +// Возвращаемое значение: +// ФиксированнаяСтруктура - Описание компоненты: +// * ИмяМакета - Строка - Имя макета, в котором хранится компонента +// * ИмяКомпоненты - Строка -Имя компоненты +// * ИмяКласса - Строка - Имя класса +Функция ОписаниеКомпоненты(ИмяМакета, ИмяКомпоненты, ИмяКласса) Экспорт Описание = Новый Структура; Описание.Вставить("ИмяМакета", ИмяМакета); diff --git a/exts/yaxunit/src/CommonModules/ЮТКомпонентыВызовСервера/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТКомпонентыВызовСервера/Module.bsl index b4aaab2c..ec01d630 100644 --- a/exts/yaxunit/src/CommonModules/ЮТКомпонентыВызовСервера/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТКомпонентыВызовСервера/Module.bsl @@ -27,7 +27,7 @@ ИмяФайлаКомпоненты = ИмяФайлаКомпоненты(ЧтениеАрхива, ОперационнаяСистема, Архитектура); Если ИмяФайлаКомпоненты = Неопределено Тогда - ВызватьИсключение "Компонента не поддреживает клиентское окружение"; + ВызватьИсключение "Компонента не поддерживает клиентское окружение"; КонецЕсли; Данные = ДвоичныеДанныеЭлемента(ЧтениеАрхива, ИмяФайлаКомпоненты); @@ -55,30 +55,9 @@ Пока ЧтениеXML.Прочитать() Цикл - Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента И СтрСравнить(ЧтениеXML.Имя, "component") = 0 Тогда - - ОперационнаяСистемаУзла = Неопределено; - АрхитектураУзла = Неопределено; - ПутьУзла = Неопределено; - - Для Инд = 0 По ЧтениеXML.КоличествоАтрибутов() - 1 Цикл - - ИмяАтрибута = ЧтениеXML.ЛокальноеИмяАтрибута(Инд); - Если СтрСравнить(ИмяАтрибута, "os") = 0 Тогда - ОперационнаяСистемаУзла = ЧтениеXML.ЗначениеАтрибута(Инд); - ИначеЕсли СтрСравнить(ИмяАтрибута, "path") = 0 Тогда - ПутьУзла = ЧтениеXML.ЗначениеАтрибута(Инд); - ИначеЕсли СтрСравнить(ИмяАтрибута, "arch") = 0 Тогда - АрхитектураУзла = ЧтениеXML.ЗначениеАтрибута(Инд); - КонецЕсли; - - КонецЦикла; - - Если ОперационнаяСистема = ОперационнаяСистемаУзла И Архитектура = АрхитектураУзла Тогда - ИмяФайлаКомпоненты = ПутьУзла; - Прервать; - КонецЕсли; - + Если ЭтоПодходящийУзел(ЧтениеXML, ОперационнаяСистема, Архитектура) Тогда + ИмяФайлаКомпоненты = ЧтениеXML.ЗначениеАтрибута("path"); + Прервать; КонецЕсли; КонецЦикла; @@ -89,6 +68,19 @@ КонецФункции +Функция ЭтоПодходящийУзел(ЧтениеXML, ОперационнаяСистема, Архитектура) + + Если ЧтениеXML.ТипУзла <> ТипУзлаXML.НачалоЭлемента ИЛИ СтрСравнить(ЧтениеXML.Имя, "component") <> 0 Тогда + Возврат Ложь; + КонецЕсли; + + ОперационнаяСистемаУзла = ЧтениеXML.ЗначениеАтрибута("os"); + АрхитектураУзла = ЧтениеXML.ЗначениеАтрибута("arch"); + + Возврат ОперационнаяСистема = ОперационнаяСистемаУзла И Архитектура = АрхитектураУзла; + +КонецФункции + Функция ДвоичныеДанныеЭлемента(ЧтениеАрхива, ИмяФайла) ЭлементФайла = Неопределено; diff --git a/exts/yaxunit/src/CommonModules/ЮТКомпонентыКлиент/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТКомпонентыКлиент/Module.bsl index c201d119..90adc1bd 100644 --- a/exts/yaxunit/src/CommonModules/ЮТКомпонентыКлиент/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТКомпонентыКлиент/Module.bsl @@ -44,26 +44,32 @@ ОперационнаяСистема = Неопределено; Архитектура = Неопределено; + Linux = "Linux"; + Windows = "Windows"; + MacOS = "MacOS"; + x86 = "i386"; + x64 = "x86_64"; + ТипКлиентскойПлатформы = Информация.ТипПлатформы; Если ТипКлиентскойПлатформы = ТипПлатформы.Linux_x86 Тогда - ОперационнаяСистема = "Linux"; - Архитектура = "i386"; + ОперационнаяСистема = Linux; + Архитектура = x86; ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.Linux_x86_64 Тогда - ОперационнаяСистема = "Linux"; - Архитектура = "x86_64"; + ОперационнаяСистема = Linux; + Архитектура = x64; ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.Windows_x86 Тогда - ОперационнаяСистема = "Windows"; - Архитектура = "i386"; + ОперационнаяСистема = Windows; + Архитектура = x86; ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.Windows_x86_64 Тогда - ОперационнаяСистема = "Windows"; - Архитектура = "x86_64"; + ОперационнаяСистема = Windows; + Архитектура = x64; ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.MacOS_x86 Тогда - ОперационнаяСистема = "MacOS"; - Архитектура = "x86_64"; + ОперационнаяСистема = MacOS; + Архитектура = x86; ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.MacOS_x86_64 Тогда - ОперационнаяСистема = "MacOS"; - Архитектура = "x86_64"; + ОперационнаяСистема = MacOS; + Архитектура = x64; Иначе ВызватьИсключение "Неподдерживаемый тип платформы"; КонецЕсли; @@ -82,7 +88,7 @@ КонецПроцедуры -Функция ЗаписатьВРеестр(ФайлРеестра, ИмяФайла) +Процедура ЗаписатьВРеестр(ФайлРеестра, ИмяФайла) Данные = Новый ДвоичныеДанные(ФайлРеестра); Текст = ПолучитьСтрокуИзДвоичныхДанных(Данные); @@ -93,7 +99,7 @@ | |", ИмяФайла); ИначеЕсли СтрНайти(Текст, СтрШаблон("path=""%1""", ИмяФайла)) <> 0 Тогда // Компонента уже зарегистрированна - Возврат Неопределено; + Возврат; Иначе // Добавляем компоненту Запись = СтрШаблон(" ", ИмяФайла); Текст = СтрЗаменить(Текст, "", Запись + Символы.ПС + ""); @@ -102,6 +108,6 @@ Данные = ПолучитьДвоичныеДанныеИзСтроки(Текст, КодировкаТекста.UTF8, Истина); Данные.Записать(ФайлРеестра); -КонецФункции +КонецПроцедуры #КонецОбласти diff --git a/exts/yaxunit/src/CommonModules/ЮТОбщийВызовСервера/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТОбщийВызовСервера/Module.bsl index 223b0527..32522042 100644 --- a/exts/yaxunit/src/CommonModules/ЮТОбщийВызовСервера/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТОбщийВызовСервера/Module.bsl @@ -64,7 +64,7 @@ Макет = Менеджер.ПолучитьМакет(ЧастиИмени[2]); ИндексОбласти = 3; Иначе - ВызватьИсключение СтрШаблон("Некорреткное имя макета `%1`", ИмяМакета); + ВызватьИсключение СтрШаблон("Некорректное имя макета `%1`", ИмяМакета); КонецЕсли; Если ЧастиИмени.Количество() > ИндексОбласти Тогда diff --git a/exts/yaxunit/src/CommonTemplates/ЮТYaxUnitAddIn/Template.bin b/exts/yaxunit/src/CommonTemplates/ЮТYaxUnitAddIn/Template.addin similarity index 100% rename from exts/yaxunit/src/CommonTemplates/ЮТYaxUnitAddIn/Template.bin rename to exts/yaxunit/src/CommonTemplates/ЮТYaxUnitAddIn/Template.addin diff --git a/exts/yaxunit/src/CommonTemplates/ЮТYaxUnitAddIn/ЮТYaxUnitAddIn.mdo b/exts/yaxunit/src/CommonTemplates/ЮТYaxUnitAddIn/ЮТYaxUnitAddIn.mdo index 31ddd172..23825ac9 100644 --- a/exts/yaxunit/src/CommonTemplates/ЮТYaxUnitAddIn/ЮТYaxUnitAddIn.mdo +++ b/exts/yaxunit/src/CommonTemplates/ЮТYaxUnitAddIn/ЮТYaxUnitAddIn.mdo @@ -5,5 +5,5 @@ ru ЮТYax unit add in - BinaryData + AddIn diff --git a/tests/src/CommonModules/ОМ_Общий/Module.bsl b/tests/src/CommonModules/ОМ_Общий/Module.bsl index c97402e4..2e8aa1fe 100644 --- a/tests/src/CommonModules/ОМ_Общий/Module.bsl +++ b/tests/src/CommonModules/ОМ_Общий/Module.bsl @@ -32,10 +32,14 @@ Процедура Пауза() Экспорт - ЮТОбщий.Пауза(0.001); - ЮТОбщий.Пауза(0.01); - ЮТОбщий.Пауза(0.1); + Начало = ТекущаяУниверсальнаяДатаВМиллисекундах(); ЮТОбщий.Пауза(1); + ЮТОбщий.Пауза(1); + ЮТОбщий.Пауза(1); + Дельта = ТекущаяУниверсальнаяДатаВМиллисекундах() - Начало; + + ЮТест.ОжидаетЧто(Дельта) + .МеждуИсключаяГраницы(3010, 3050); КонецПроцедуры