diff --git a/exts/yaxunit/src/CommonModules/ЮТАсинхроннаяОбработкаСлужебныйКлиент/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТАсинхроннаяОбработкаСлужебныйКлиент/Module.bsl
new file mode 100644
index 00000000..adfd43a8
--- /dev/null
+++ b/exts/yaxunit/src/CommonModules/ЮТАсинхроннаяОбработкаСлужебныйКлиент/Module.bsl
@@ -0,0 +1,64 @@
+//©///////////////////////////////////////////////////////////////////////////©//
+//
+// 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.
+//
+//©///////////////////////////////////////////////////////////////////////////©//
+
+#Область СлужебныйПрограммныйИнтерфейс
+
+Процедура ВызватьОбработчик(Обработчик, Результат = Неопределено) Экспорт
+
+ Если Обработчик <> Неопределено Тогда
+ ВыполнитьОбработкуОповещения(Обработчик, Результат);
+ КонецЕсли;
+
+КонецПроцедуры
+
+Процедура ВызватьСледующийОбработчик(ПараметрыИсполнения, Результат = Неопределено) Экспорт
+
+ Обработчик = СледующийОбработчик(ПараметрыИсполнения);
+ ЮТЛогирование.Отладка("Вызов обработчика исполнителя: " + Обработчик.ИмяПроцедуры);
+ ВызватьОбработчик(Обработчик, Результат);
+
+КонецПроцедуры
+
+Функция СледующийОбработчик(ПараметрыИсполнения) Экспорт
+
+ ПараметрыИсполнения.ИндексСледующегоОбработчика = ПараметрыИсполнения.ИндексСледующегоОбработчика + 1;
+ Обработчик = ПараметрыИсполнения.Цепочка[ПараметрыИсполнения.ИндексСледующегоОбработчика];
+ ЮТЛогирование.Отладка("Следующий обработчик исполнителя: " + Обработчик.ИмяПроцедуры);
+
+ Возврат Обработчик;
+
+КонецФункции
+
+Процедура ДобавитьОбработчикЦепочки(ПараметрыИсполнения, Модуль, ИмяМетода) Экспорт
+
+ Обработчик = Новый ОписаниеОповещения(ИмяМетода, Модуль, ПараметрыИсполнения);
+ ПараметрыИсполнения.Цепочка.Добавить(Обработчик);
+
+КонецПроцедуры
+
+Функция ЦепочкаАсинхроннойОбработки() Экспорт
+
+ Параметры = Новый Структура();
+ Параметры.Вставить("Цепочка", Новый Массив());
+ Параметры.Вставить("ИндексСледующегоОбработчика", -1);
+
+ Возврат Параметры;
+
+КонецФункции
+
+#КонецОбласти
diff --git a/exts/yaxunit/src/CommonModules/ЮТАсинхроннаяОбработкаСлужебныйКлиент/ЮТАсинхроннаяОбработкаСлужебныйКлиент.mdo b/exts/yaxunit/src/CommonModules/ЮТАсинхроннаяОбработкаСлужебныйКлиент/ЮТАсинхроннаяОбработкаСлужебныйКлиент.mdo
new file mode 100644
index 00000000..40696a31
--- /dev/null
+++ b/exts/yaxunit/src/CommonModules/ЮТАсинхроннаяОбработкаСлужебныйКлиент/ЮТАсинхроннаяОбработкаСлужебныйКлиент.mdo
@@ -0,0 +1,10 @@
+
+
+ ЮТАсинхроннаяОбработкаСлужебныйКлиент
+
+ ru
+ Асинхронная обработка служебный
+
+ true
+ true
+
diff --git a/exts/yaxunit/src/CommonModules/ЮТИсполнительКлиент/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТИсполнительКлиент/Module.bsl
index ff7d9c05..d275e96f 100644
--- a/exts/yaxunit/src/CommonModules/ЮТИсполнительКлиент/Module.bsl
+++ b/exts/yaxunit/src/CommonModules/ЮТИсполнительКлиент/Module.bsl
@@ -33,7 +33,7 @@
ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикСохранитьКодВозврата");
ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикЗавершить");
- ВызватьСледующийОбработчик(ПараметрыИсполнения);
+ ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ПараметрыИсполнения);
КонецПроцедуры
@@ -47,25 +47,15 @@
ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикВыполнитьТестирование");
ПараметрыИсполнения.Цепочка.Добавить(ОбработчикЗавершения);
- ВызватьСледующийОбработчик(ПараметрыИсполнения);
-
-КонецПроцедуры
-
-Процедура ВызватьОбработчик(Обработчик, Результат = Неопределено) Экспорт
-
- Если Обработчик <> Неопределено Тогда
- ВыполнитьОбработкуОповещения(Обработчик, Результат);
- КонецЕсли;
+ ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ПараметрыИсполнения);
КонецПроцедуры
Функция ПараметрыИсполнения() Экспорт
- Параметры = Новый Структура();
+ Параметры = ЮТАсинхроннаяОбработкаСлужебныйКлиент.ЦепочкаАсинхроннойОбработки();
Параметры.Вставить("АргументыЗапуска");
Параметры.Вставить("ПараметрыЗапуска");
- Параметры.Вставить("Цепочка", Новый Массив());
- Параметры.Вставить("ИндексСледующегоОбработчика", -1);
Параметры.Вставить("ИсполняемыеТестовыеМодули");
Параметры.Вставить("РезультатыТестирования");
@@ -137,7 +127,7 @@
Процедура ОбработчикЗагрузитьПараметры(Результат, ДополнительныеПараметры) Экспорт
- Обработчик = СледующийОбработчик(ДополнительныеПараметры);
+ Обработчик = ЮТАсинхроннаяОбработкаСлужебныйКлиент.СледующийОбработчик(ДополнительныеПараметры);
ЮТПараметрыЗапуска.ПараметрыЗапуска(ДополнительныеПараметры.АргументыЗапуска, Обработчик);
КонецПроцедуры
@@ -150,7 +140,7 @@
Возврат;
КонецЕсли;
- ВызватьСледующийОбработчик(ДополнительныеПараметры);
+ ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ДополнительныеПараметры);
КонецПроцедуры
@@ -158,7 +148,7 @@
ЮТСобытия.Инициализация(ДополнительныеПараметры.ПараметрыЗапуска);
- ВызватьСледующийОбработчик(ДополнительныеПараметры);
+ ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ДополнительныеПараметры);
КонецПроцедуры
@@ -179,7 +169,7 @@
ЮТСобытия.ПослеФормированияИсполняемыхНаборовТестов(ИсполняемыеТестовыеМодули);
ДополнительныеПараметры.ИсполняемыеТестовыеМодули = ИсполняемыеТестовыеМодули;
- ВызватьСледующийОбработчик(ДополнительныеПараметры, ИсполняемыеТестовыеМодули);
+ ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ДополнительныеПараметры, ИсполняемыеТестовыеМодули);
КонецПроцедуры
@@ -199,17 +189,17 @@
ЮТСобытия.ПослеВыполненияТестов(РезультатыТестирования);
ДополнительныеПараметры.РезультатыТестирования = РезультатыТестирования;
- ВызватьСледующийОбработчик(ДополнительныеПараметры, РезультатыТестирования);
+ ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ДополнительныеПараметры, РезультатыТестирования);
КонецПроцедуры
Процедура ОбработчикСохранитьОтчет(Результат, ДополнительныеПараметры) Экспорт
Если ЗначениеЗаполнено(ДополнительныеПараметры.ПараметрыЗапуска.reportPath) Тогда
- Обработчик = СледующийОбработчик(ДополнительныеПараметры);
+ Обработчик = ЮТАсинхроннаяОбработкаСлужебныйКлиент.СледующийОбработчик(ДополнительныеПараметры);
ЮТОтчет.СформироватьОтчет(ДополнительныеПараметры.РезультатыТестирования, ДополнительныеПараметры.ПараметрыЗапуска, Обработчик);
Иначе
- ВызватьСледующийОбработчик(ДополнительныеПараметры);
+ ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ДополнительныеПараметры);
КонецЕсли;
КонецПроцедуры
@@ -217,7 +207,7 @@
Процедура ОбработчикСохранитьКодВозврата(Результат, ДополнительныеПараметры) Экспорт
ЗаписатьКодВозврата(ДополнительныеПараметры.РезультатыТестирования, ДополнительныеПараметры.ПараметрыЗапуска);
- ВызватьСледующийОбработчик(ДополнительныеПараметры);
+ ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ДополнительныеПараметры);
КонецПроцедуры
@@ -236,8 +226,8 @@
Процедура ОбработчикПодключитьКомпоненты(Результат, ДополнительныеПараметры) Экспорт
- ЮТКомпонентыКлиент.ТихаяУстановкаКомпонент();
- ВызватьСледующийОбработчик(ДополнительныеПараметры);
+ Обработчик = ЮТАсинхроннаяОбработкаСлужебныйКлиент.СледующийОбработчик(ДополнительныеПараметры);
+ ЮТКомпонентыКлиент.ТихаяУстановкаКомпонент(Обработчик);
КонецПроцедуры
@@ -262,28 +252,6 @@
#КонецОбласти
-Процедура ВызватьСледующийОбработчик(ПараметрыИсполнения, Результат = Неопределено)
-
- Обработчик = СледующийОбработчик(ПараметрыИсполнения);
- ЮТЛогирование.Отладка("Вызов обработчика исполнителя: " + Обработчик.ИмяПроцедуры);
- ВыполнитьОбработкуОповещения(Обработчик, Результат);
-
-КонецПроцедуры
-
-Функция СледующийОбработчик(ПараметрыИсполнения)
-
- Если ТипЗнч(ПараметрыИсполнения) = Тип("ОписаниеОповещения") Тогда
- Возврат ПараметрыИсполнения;
- КонецЕсли;
-
- ПараметрыИсполнения.ИндексСледующегоОбработчика = ПараметрыИсполнения.ИндексСледующегоОбработчика + 1;
- Обработчик = ПараметрыИсполнения.Цепочка[ПараметрыИсполнения.ИндексСледующегоОбработчика];
- ЮТЛогирование.Отладка("Следующий обработчик исполнителя: " + Обработчик.ИмяПроцедуры);
-
- Возврат Обработчик;
-
-КонецФункции
-
Процедура ДобавитьОбработчикЦепочки(ПараметрыИсполнения, ИмяМетода)
Обработчик = Новый ОписаниеОповещения(ИмяМетода, ЭтотОбъект, ПараметрыИсполнения, "ОбработчикОшибки", ЭтотОбъект);
diff --git a/exts/yaxunit/src/CommonModules/ЮТКомпонентыКлиент/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТКомпонентыКлиент/Module.bsl
index 90adc1bd..3301e241 100644
--- a/exts/yaxunit/src/CommonModules/ЮТКомпонентыКлиент/Module.bsl
+++ b/exts/yaxunit/src/CommonModules/ЮТКомпонентыКлиент/Module.bsl
@@ -18,28 +18,49 @@
#Область СлужебныйПрограммныйИнтерфейс
-Функция ТихаяУстановкаКомпонент() Экспорт
+Процедура ТихаяУстановкаКомпонент(ОбработчикЗавершения) Экспорт
- Успешно = Истина;
-#Если Клиент И НЕ ВебКлиент Тогда
+ ПараметрыТихойУстановки = ПараметрыТихойУстановки();
+ ПараметрыТихойУстановки.Компоненты.Добавить(ЮТКомпоненты.ОписаниеКомпонентыПауза());
- Компоненты = ЮТОбщий.ЗначениеВМассиве(ЮТКомпоненты.ОписаниеКомпонентыПауза());
+ ЮТАсинхроннаяОбработкаСлужебныйКлиент.ДобавитьОбработчикЦепочки(ПараметрыТихойУстановки,
+ ЭтотОбъект,
+ "УстановитьПараметрыОкружения");
+ ЮТАсинхроннаяОбработкаСлужебныйКлиент.ДобавитьОбработчикЦепочки(ПараметрыТихойУстановки,
+ ЭтотОбъект,
+ "ТихаяУстановкаВнешнихКомпонент");
- Для Каждого Компонента Из Компоненты Цикл
- ТихаяУстановкаВнешнейКомпоненты(Компонента.ИмяМакета);
- КонецЦикла;
-#КонецЕсли
+ ПараметрыТихойУстановки.Цепочка.Добавить(ОбработчикЗавершения);
- Возврат Успешно;
+ Обработчик = ЮТАсинхроннаяОбработкаСлужебныйКлиент.СледующийОбработчик(ПараметрыТихойУстановки);
+ НачатьПолучениеРабочегоКаталогаДанныхПользователя(Обработчик);
-КонецФункции
+КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
-Процедура ТихаяУстановкаВнешнейКомпоненты(ИмяМакета)
+Функция ПараметрыТихойУстановки()
+ ПараметрыТихойУстановки = ЮТАсинхроннаяОбработкаСлужебныйКлиент.ЦепочкаАсинхроннойОбработки();
+ ПараметрыТихойУстановки.Вставить("Компоненты", Новый Массив());
+ ПараметрыТихойУстановки.Вставить("РабочийКаталог", "");
+ ПараметрыТихойУстановки.Вставить("ОперационнаяСистема", "");
+ ПараметрыТихойУстановки.Вставить("Архитектура", "");
+ ПараметрыТихойУстановки.Вставить("ДанныеРеестра", "");
+ ПараметрыТихойУстановки.Вставить("ИзмененРеестр", Ложь);
+
+ Возврат ПараметрыТихойУстановки;
+
+КонецФункции
+
+Процедура УстановитьПараметрыОкружения(Результат, ПараметрыТихойУстановки) Экспорт
+
+ КорневойКаталог = ЮТФайлы.ОбъединитьПути(Результат, "..", "..", "..");
+ КаталогКомпонент = ЮТФайлы.ОбъединитьПути(КорневойКаталог, "ExtCompT");
+
+ ПараметрыТихойУстановки.РабочийКаталог = КаталогКомпонент;
Информация = Новый СистемнаяИнформация();
ОперационнаяСистема = Неопределено;
Архитектура = Неопределено;
@@ -47,6 +68,7 @@
Linux = "Linux";
Windows = "Windows";
MacOS = "MacOS";
+
x86 = "i386";
x64 = "x86_64";
@@ -71,43 +93,90 @@
ОперационнаяСистема = MacOS;
Архитектура = x64;
Иначе
- ВызватьИсключение "Неподдерживаемый тип платформы";
+ ЮТИсполнительКлиент.ОбработкаОшибки("Неподдерживаемый тип платформы");
КонецЕсли;
- ДанныеФайла = ЮТКомпонентыВызовСервера.ФайлКомпоненты(ИмяМакета, ОперационнаяСистема, Архитектура);
-
- Путь = РабочийКаталогДанныхПользователя();
- КорневойКаталог = ЮТФайлы.ОбъединитьПути(Путь, "..", "..", "..");
-
- КаталогКомпонент = ЮТФайлы.ОбъединитьПути(КорневойКаталог, "ExtCompT");
- ФайлРеестра = ЮТФайлы.ОбъединитьПути(КаталогКомпонент, "registry.xml");
- ФайлКомпоненты = ЮТФайлы.ОбъединитьПути(КаталогКомпонент, ДанныеФайла.ИмяФайла);
-
- ДанныеФайла.Данные.Записать(ФайлКомпоненты);
- ЗаписатьВРеестр(ФайлРеестра, ДанныеФайла.ИмяФайла);
+ ПараметрыТихойУстановки.ОперационнаяСистема = ОперационнаяСистема;
+ ПараметрыТихойУстановки.Архитектура = Архитектура;
+ ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ПараметрыТихойУстановки);
КонецПроцедуры
-Процедура ЗаписатьВРеестр(ФайлРеестра, ИмяФайла)
+Процедура ПрочитатьФайлRegistry(ПараметрыТихойУстановки) Экспорт
- Данные = Новый ДвоичныеДанные(ФайлРеестра);
- Текст = ПолучитьСтрокуИзДвоичныхДанных(Данные);
+#Если ВебКлиент Тогда
+ ЮТИсполнительКлиент.ОбработкаОшибки(ЮТОбщий.МетодНеДоступен("ЮТКомпонентыКлиент.ПрочитатьФайлRegistry"));
+ Возврат;
+#Иначе
+ ФайлРеестра = ЮТФайлы.ОбъединитьПути(ПараметрыТихойУстановки.РабочийКаталог, "registry.xml");
+ Чтение = Новый ЧтениеТекста(ФайлРеестра);
+ Данные = Чтение.Прочитать();
+ Чтение.Закрыть();
+ ПараметрыТихойУстановки.ДанныеРеестра = Данные;
- Если СтрНайти(Текст, "
+#КонецЕсли
+
+КонецПроцедуры
+
+Процедура ЗаписатьФайлRegistry(ПараметрыТихойУстановки) Экспорт
+
+#Если ВебКлиент Тогда
+ ЮТИсполнительКлиент.ОбработкаОшибки(ЮТОбщий.МетодНеДоступен("ЮТКомпонентыКлиент.ЗаписатьФайлRegistry"));
+ Возврат;
+#Иначе
+ Если ПараметрыТихойУстановки.ИзмененРеестр Тогда
+ ФайлРеестра = ЮТФайлы.ОбъединитьПути(ПараметрыТихойУстановки.РабочийКаталог, "registry.xml");
+ Запись = Новый ЗаписьТекста(ФайлРеестра);
+ Запись.Записать(ПараметрыТихойУстановки.ДанныеРеестра);
+ Запись.Закрыть();
+ КонецЕсли;
+#КонецЕсли
+
+КонецПроцедуры
+
+Процедура ТихаяУстановкаВнешнихКомпонент(Результат, ПараметрыТихойУстановки) Экспорт
+
+ ПрочитатьФайлRegistry(ПараметрыТихойУстановки);
+
+ Для Каждого Компонента Из ПараметрыТихойУстановки.Компоненты Цикл
+ ТихаяУстановкаВнешнейКомпоненты(Компонента, ПараметрыТихойУстановки);
+ КонецЦикла;
+
+ ЗаписатьФайлRegistry(ПараметрыТихойУстановки);
+
+ ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ПараметрыТихойУстановки);
+
+КонецПроцедуры
+
+Процедура ТихаяУстановкаВнешнейКомпоненты(Компонента, Параметры) Экспорт
+
+ ДанныеФайла = ЮТКомпонентыВызовСервера.ФайлКомпоненты(Компонента.ИмяМакета, Параметры.ОперационнаяСистема, Параметры.Архитектура);
+
+ Если ЗаписатьВРеестр(Параметры.ДанныеРеестра, ДанныеФайла.ИмяФайла) Тогда
+ Параметры.ИзмененРеестр = Истина;
+ КонецЕсли;
+
+ ФайлКомпоненты = ЮТФайлы.ОбъединитьПути(Параметры.РабочийКаталог, ДанныеФайла.ИмяФайла);
+ ДанныеФайла.Данные.Записать(ФайлКомпоненты);
+
+КонецПроцедуры
+
+Функция ЗаписатьВРеестр(ДанныеРеестра, ИмяФайла)
+
+ Если СтрНайти(ДанныеРеестра, "
|
|
|", ИмяФайла);
- ИначеЕсли СтрНайти(Текст, СтрШаблон("path=""%1""", ИмяФайла)) <> 0 Тогда // Компонента уже зарегистрированна
- Возврат;
+ ИначеЕсли СтрНайти(ДанныеРеестра, СтрШаблон("path=""%1""", ИмяФайла)) <> 0 Тогда // Компонента уже зарегистрированна
+ Возврат Ложь;
Иначе // Добавляем компоненту
Запись = СтрШаблон(" ", ИмяФайла);
- Текст = СтрЗаменить(Текст, "", Запись + Символы.ПС + "");
+ ДанныеРеестра = СтрЗаменить(ДанныеРеестра, "", Запись + Символы.ПС + "");
КонецЕсли;
- Данные = ПолучитьДвоичныеДанныеИзСтроки(Текст, КодировкаТекста.UTF8, Истина);
- Данные.Записать(ФайлРеестра);
+ Возврат Истина;
-КонецПроцедуры
+КонецФункции
#КонецОбласти
diff --git a/exts/yaxunit/src/CommonModules/ЮТОтчет/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТОтчет/Module.bsl
index 6df7198d..68d11ef9 100644
--- a/exts/yaxunit/src/CommonModules/ЮТОтчет/Module.bsl
+++ b/exts/yaxunit/src/CommonModules/ЮТОтчет/Module.bsl
@@ -85,7 +85,7 @@
ДанныеОтчета.Записать(ИмяФайлаОтчета);
КонецЕсли;
- ЮТИсполнительКлиент.ВызватьОбработчик(Параметры.Обработчик);
+ ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьОбработчик(Параметры.Обработчик);
КонецПроцедуры
@@ -98,7 +98,7 @@
ИмяФайла = ПутьКОтчету;
КонецЕсли;
- ЮТИсполнительКлиент.ВызватьОбработчик(Параметры.Обработчик, ИмяФайла);
+ ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьОбработчик(Параметры.Обработчик, ИмяФайла);
КонецПроцедуры
diff --git a/exts/yaxunit/src/CommonModules/ЮТПараметрыЗапуска/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТПараметрыЗапуска/Module.bsl
index b4b2cd37..e42b7e5f 100644
--- a/exts/yaxunit/src/CommonModules/ЮТПараметрыЗапуска/Module.bsl
+++ b/exts/yaxunit/src/CommonModules/ЮТПараметрыЗапуска/Module.bsl
@@ -69,7 +69,7 @@
Параметры = ЮТФабрика.ПараметрыЗапуска();
Если Не ЗначениеЗаполнено(ПараметрыЗапускаСтрокой) Тогда
- ЮТИсполнительКлиент.ВызватьОбработчик(Обработчик, Параметры);
+ ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьОбработчик(Обработчик, Параметры);
Возврат Параметры;
КонецЕсли;
@@ -111,7 +111,7 @@
КонецЕсли;
- ЮТИсполнительКлиент.ВызватьОбработчик(Обработчик, Параметры);
+ ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьОбработчик(Обработчик, Параметры);
Возврат Параметры;
diff --git a/exts/yaxunit/src/CommonModules/ЮТФайлы/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТФайлы/Module.bsl
index d3c4baec..528c0fe5 100644
--- a/exts/yaxunit/src/CommonModules/ЮТФайлы/Module.bsl
+++ b/exts/yaxunit/src/CommonModules/ЮТФайлы/Module.bsl
@@ -165,7 +165,7 @@
Процедура ПолучитьАтрибутФайла(Результат, Параметры) Экспорт
Если НЕ Результат Тогда
- ВыполнитьОбработкуОповещения(Параметры.Обработчик, Параметры.ЗначениеПоУмолчанию);
+ ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьОбработчик(Параметры.Обработчик, Параметры.ЗначениеПоУмолчанию);
Возврат;
КонецЕсли;
diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo
index 7228e2ea..de257aea 100644
--- a/exts/yaxunit/src/Configuration/Configuration.mdo
+++ b/exts/yaxunit/src/Configuration/Configuration.mdo
@@ -49,6 +49,7 @@
CommonModule.МокитоОбучение
CommonModule.МокитоПроверки
CommonModule.МокитоСлужебный
+ CommonModule.ЮТАсинхроннаяОбработкаСлужебныйКлиент
CommonModule.ЮТест
CommonModule.ЮТЗапросы
CommonModule.ЮТЗапросыВызовСервера
diff --git a/fixtures/demo-configuration/src/Configuration/Configuration.mdo b/fixtures/demo-configuration/src/Configuration/Configuration.mdo
index 5e936872..a29df40e 100644
--- a/fixtures/demo-configuration/src/Configuration/Configuration.mdo
+++ b/fixtures/demo-configuration/src/Configuration/Configuration.mdo
@@ -74,6 +74,7 @@
NotAutoFree
DontUse
DontUse
+ DontUse
8.3.21
CommonForm.ОбщиеНастройки
@@ -91,199 +92,199 @@
Subsystem.Финансы
Subsystem.ТоварныеЗапасы
Subsystem.Интеграция
- StyleItem.ЦветТекстаСущественныхИзмененийДанных
+ StyleItem.ЦветТекстаВажнойИнформации
StyleItem.ЦветТекстаНормальногоСостояния
StyleItem.ЦветТекстаОшибочногоСостояния
+ StyleItem.ЦветТекстаСущественныхИзмененийДанных
StyleItem.ШрифтВажнойИнформации
- StyleItem.ЦветТекстаВажнойИнформации
+ CommonPicture.ВыделитьВажное
+ CommonPicture.КоллекцияВидыАктивныхПользователей
+ CommonPicture.КоллекцияВидыСобытийЖурналаРегистрации
+ CommonPicture.КоллекцияДляПомеченныхНаУдалениеОбъектов
+ CommonPicture.ОткрытьХранимыйФайл
+ CommonPicture.ОтправитьСМС
CommonPicture.ПодсистемаЗакупки
CommonPicture.ПодсистемаПредприятие
CommonPicture.ПодсистемаПродажи
CommonPicture.ПодсистемаТоварныеЗапасы
CommonPicture.ПодсистемаФинансы
- CommonPicture.КоллекцияВидыАктивныхПользователей
- CommonPicture.КоллекцияВидыСобытийЖурналаРегистрации
- CommonPicture.КоллекцияДляПомеченныхНаУдалениеОбъектов
+ CommonPicture.Позвонить
CommonPicture.ПолнотекстовыйПоискДалее
CommonPicture.ПолнотекстовыйПоискНазад
- CommonPicture.ОткрытьХранимыйФайл
- CommonPicture.ВыделитьВажное
CommonPicture.ПроверитьПочту
CommonPicture.СписокЗаказов
- CommonPicture.Позвонить
CommonPicture.ШтрихКод
- CommonPicture.ОтправитьСМС
SessionParameter.ТекущийПользователь
SessionParameter.ЯщикIMAP
Role.Администратор
Role.МенеджерПоЗакупкам
Role.МенеджерПоПродажам
- Role.Продавец
Role.Помощник
+ Role.Продавец
CommonTemplate.ДрайверСканераШтрихкодов
- CommonTemplate.КомпонентаПечатиШтрихкодовWindows32
- CommonTemplate.КомпонентаПечатиШтрихкодовWindows64
CommonTemplate.КомпонентаПечатиШтрихкодовLinux32
CommonTemplate.КомпонентаПечатиШтрихкодовLinux64
+ CommonTemplate.КомпонентаПечатиШтрихкодовWindows32
+ CommonTemplate.КомпонентаПечатиШтрихкодовWindows64
FilterCriterion.ДокументыКонтрагента
- CommonModule.РаботаСТорговымОборудованием
- CommonModule.РаботаСПолнотекстовымПоиском
- CommonModule.РаботаСХранилищемОбщихНастроек
- CommonModule.РегламентныеЗаданияАгрегатов
- CommonModule.СервисныеМеханизмы
- CommonModule.РаботаСПочтой
- CommonModule.РаботаСПочтойВызовСервера
+ CommonModule.ГеопозиционированиеКлиент
+ CommonModule.ГеопозиционированиеСервер
+ CommonModule.Интеграция
+ CommonModule.ИнтеграцияМагазин
CommonModule.ОбменМобильныеОбщее
CommonModule.ОбменМобильныеПереопределяемый
CommonModule.Пользователи
- CommonModule.РаботаСПанельюЗадач
CommonModule.Помощник
CommonModule.ПомощникКлиент
CommonModule.РаботаСИсториейДанных
- CommonModule.ГеопозиционированиеКлиент
- CommonModule.ГеопозиционированиеСервер
+ CommonModule.РаботаСПанельюЗадач
+ CommonModule.РаботаСПолнотекстовымПоиском
+ CommonModule.РаботаСПочтой
+ CommonModule.РаботаСПочтойВызовСервера
+ CommonModule.РаботаСТорговымОборудованием
+ CommonModule.РаботаСХранилищемОбщихНастроек
+ CommonModule.РегистрацияОшибок
+ CommonModule.РегламентныеЗаданияАгрегатов
+ CommonModule.СервисныеМеханизмы
CommonModule.УведомленияКлиент
CommonModule.УведомленияСервер
- CommonModule.Интеграция
- CommonModule.ИнтеграцияМагазин
- CommonModule.РегистрацияОшибок
ExchangePlan.Мобильные
XDTOPackage.ОбменСМобильнымУстройством
WebService.MAExchange
- HTTPService.Товары
HTTPService.ОписанияТоваров
- ScheduledJob.ОбновлениеИндексаППД
- ScheduledJob.СлияниеИндексаППД
+ HTTPService.Товары
ScheduledJob.ОбновлениеАгрегатовПродаж
+ ScheduledJob.ОбновлениеИндексаППД
+ ScheduledJob.ОбновлениеИсторииДанных
ScheduledJob.ПерестроениеАгрегатовПродаж
ScheduledJob.ПомощникНеотработанныеЗаказы
- ScheduledJob.ОбновлениеИсторииДанных
+ ScheduledJob.СлияниеИндексаППД
SettingsStorage.ХранилищеВариантовОтчетов
+ FunctionalOption.ВалютныйУчет
FunctionalOption.РаботаСТорговымОборудованием
FunctionalOption.УчетПоСкладам
- FunctionalOption.ВалютныйУчет
FunctionalOptionsParameter.Организация
- CommonCommand.УстановитьСканерШтрихкодов
CommonCommand.НастроитьСканерШтрихКодов
- CommonCommand.УстановитьРасширениеРаботыСФайлами
- CommonCommand.УстановитьРасширениеРаботыСКриптографией
- CommonCommand.УстановитьВидимостьОбъектовЧерезODataAPI
CommonCommand.ОбщиеНастройки
+ CommonCommand.УстановитьВидимостьОбъектовЧерезODataAPI
+ CommonCommand.УстановитьРасширениеРаботыСКриптографией
+ CommonCommand.УстановитьРасширениеРаботыСФайлами
+ CommonCommand.УстановитьСканерШтрихкодов
CommandGroup.Информация
CommandGroup.Печать
- Constant.РаботаСТорговымОборудованием
- Constant.УчетПоСкладам
- Constant.АдресSMTPСервера
- Constant.ПортSMTP
- Constant.ПользовательSMTP
- Constant.ПарольSMTP
- Constant.АдресPOP3Сервера
- Constant.ПортPOP3
- Constant.ПользовательPOP3
- Constant.ПарольPOP3
- Constant.ТаймаутИнтернетПочты
- Constant.ИмяОтправителяПочтовогоСообщения
- Constant.ПользовательIMAP
- Constant.ПарольIMAP
- Constant.АдресIMAPСервера
- Constant.ПортIMAP
Constant.SSLIMAP
- Constant.ИспользоватьIMAP
Constant.SSLPOP3
Constant.SSLSMTP
+ Constant.АдресIMAPСервера
+ Constant.АдресPOP3Сервера
+ Constant.АдресSMTPСервера
+ Constant.ВоспроизводитьТекстУведомления
+ Constant.ВыборПровайдераГеопозиционирования
+ Constant.ИдентификаторПриложенияWNS
+ Constant.ИмяОтправителяПочтовогоСообщения
+ Constant.ИмяПровайдера
+ Constant.ИспользоватьAPNS
+ Constant.ИспользоватьGCM
+ Constant.ИспользоватьIMAP
+ Constant.ИспользоватьPushУведомления
+ Constant.ИспользоватьWNS
+ Constant.ИспользоватьСетьПередачиДанных
+ Constant.ИспользоватьСотовуюСеть
+ Constant.ИспользоватьСпутники
+ Constant.КлючCервераОтправителяGCM
+ Constant.КлючПриложенияWNS
+ Constant.КодНовогоУзлаПланаОбмена
+ Constant.ЛогинСервисаПередачиPushУведомлений
+ Constant.МаркерДоступаWNS
+ Constant.НомерПриложенияGoogleCloud
+ Constant.ПарольIMAP
+ Constant.ПарольPOP3
+ Constant.ПарольSMTP
+ Constant.ПериодПроверкиНеотработанныхЗаказов
+ Constant.ПользовательIMAP
+ Constant.ПользовательPOP3
+ Constant.ПользовательSMTP
+ Constant.ПортIMAP
+ Constant.ПортPOP3
+ Constant.ПортSMTP
+ Constant.РаботаСТорговымОборудованием
+ Constant.СертификатМобильногоПриложенияIOS
+ Constant.ТаймаутИнтернетПочты
+ Constant.ТолькоБесплатные
Constant.ТолькоЗащищеннаяАутентификацияIMAP
Constant.ТолькоЗащищеннаяАутентификацияPOP3
Constant.ТолькоЗащищеннаяАутентификацияSMTP
- Constant.КодНовогоУзлаПланаОбмена
- Constant.ИспользоватьPushУведомления
- Constant.ИспользоватьAPNS
- Constant.СертификатМобильногоПриложенияIOS
- Constant.ИспользоватьGCM
- Constant.НомерПриложенияGoogleCloud
- Constant.КлючCервераОтправителяGCM
- Constant.ИспользоватьWNS
- Constant.КлючПриложенияWNS
- Constant.МаркерДоступаWNS
- Constant.ИдентификаторПриложенияWNS
- Constant.ЛогинСервисаПередачиPushУведомлений
- Constant.ПериодПроверкиНеотработанныхЗаказов
- Constant.ВоспроизводитьТекстУведомления
- Constant.ВыборПровайдераГеопозиционирования
- Constant.ИмяПровайдера
- Constant.ТолькоБесплатные
- Constant.ИспользоватьСотовуюСеть
- Constant.ИспользоватьСетьПередачиДанных
- Constant.ИспользоватьСпутники
- CommonForm.ОбщиеНастройки
- CommonForm.НастройкиМобильногоУстройства
- CommonForm.НастройкаПочты
- CommonForm.ФормаПодбора
- CommonForm.НастройкаПомощникаНеотработанныхЗаказов
- CommonForm.НастройкаPushУведомлений
- CommonForm.ФормаПодбораМобильная
+ Constant.УчетПоСкладам
CommonForm.Звонок
- Catalog.Товары
- Catalog.Контрагенты
- Catalog.Склады
- Catalog.Валюты
- Catalog.Регионы
- Catalog.ВидыЦен
- Catalog.РасчетныеСчетаКонтрагентов
- Catalog.ЗначенияХарактеристик
+ CommonForm.НастройкаPushУведомлений
+ CommonForm.НастройкаПомощникаНеотработанныхЗаказов
+ CommonForm.НастройкаПочты
+ CommonForm.НастройкиМобильногоУстройства
+ CommonForm.ОбщиеНастройки
+ CommonForm.ФормаПодбора
+ CommonForm.ФормаПодбораМобильная
Catalog.Банки
- Catalog.РасчетныеСчета
- Catalog.ХранимыеФайлы
- Catalog.НастройкиТорговогоОборудования
- Catalog.ХранилищеВариантовОтчетов
- Catalog.Организации
- Catalog.ВходящиеПисьма
- Catalog.ИсходящиеПисьма
- Catalog.ПочтовыеВложения
- Catalog.Пользователи
+ Catalog.Валюты
+ Catalog.ВидыЦен
Catalog.Встречи
+ Catalog.ВходящиеПисьма
+ Catalog.ЗначенияХарактеристик
+ Catalog.ИсходящиеПисьма
+ Catalog.Контрагенты
Catalog.МобильныеУстройства
Catalog.НастройкиИнтеграции
- Document.ПриходТовара
- Document.РасходТовара
+ Catalog.НастройкиТорговогоОборудования
+ Catalog.Организации
+ Catalog.Пользователи
+ Catalog.ПочтовыеВложения
+ Catalog.РасчетныеСчета
+ Catalog.РасчетныеСчетаКонтрагентов
+ Catalog.Регионы
+ Catalog.Склады
+ Catalog.Товары
+ Catalog.ХранилищеВариантовОтчетов
+ Catalog.ХранимыеФайлы
+ Document.Заказ
+ Document.ОперацияПоУчетуТоваров
Document.Оплата
Document.ПоступлениеДенег
- Document.ОперацияПоУчетуТоваров
- Document.Заказ
- DocumentJournal.ФинансовыеДокументы
+ Document.ПриходТовара
+ Document.РасходТовара
DocumentJournal.ДокументыПродаж
- Enum.ВидыТоваров
- Enum.НазначениеХарактеристик
- Enum.ВидНастройкиАутентификацииSMTP
- Enum.ВидыМобильныхОтчетов
- Enum.СостоянияЗаказов
- Enum.ВидСодержимогоВходящегоПисьма
+ DocumentJournal.ФинансовыеДокументы
Enum.PushУведомления
+ Enum.ВидНастройкиАутентификацииSMTP
+ Enum.ВидСодержимогоВходящегоПисьма
+ Enum.ВидыМобильныхОтчетов
+ Enum.ВидыТоваров
Enum.ИспользоватьПровайдерГеопозиционирования
- Report.ОстаткиТоваровНаСкладах
- Report.ДинамикаПродаж
- Report.ОтчетПоВзаиморасчетам
- Report.ДокументыОплата
+ Enum.НазначениеХарактеристик
+ Enum.СостоянияЗаказов
Report.ВзаимосвязьПродажТоваров
- DataProcessor.УправлениеПолнотекстовымПоиском
+ Report.ДинамикаПродаж
+ Report.ДокументыОплата
+ Report.ОстаткиТоваровНаСкладах
+ Report.ОтчетПоВзаиморасчетам
DataProcessor.АдминистративныйСервис
+ DataProcessor.ЖурналРегистрации
+ DataProcessor.НастройкиПользователя
DataProcessor.ПроведениеДокументов
DataProcessor.Путеводитель
DataProcessor.СписокАктивныхПользователей
- DataProcessor.ЖурналРегистрации
DataProcessor.УдалениеПомеченныхОбъектов
- DataProcessor.УправлениеНастройкамиФорм
- DataProcessor.НастройкиПользователя
DataProcessor.УправлениеАгрегатамиПродаж
- DataProcessor.ЭлектроннаяПочта
+ DataProcessor.УправлениеНастройкамиФорм
+ DataProcessor.УправлениеПолнотекстовымПоиском
DataProcessor.УправлениеСистемойВзаимодействия
+ DataProcessor.ЭлектроннаяПочта
InformationRegister.КурсыВалют
- InformationRegister.Характеристики
- InformationRegister.ЦеныТоваров
+ InformationRegister.МобильныеОтчеты
InformationRegister.СостояниеВходящихПисем
InformationRegister.СостояниеИсходящихПисем
- InformationRegister.МобильныеОтчеты
- AccumulationRegister.ТоварныеЗапасы
+ InformationRegister.Характеристики
+ InformationRegister.ЦеныТоваров
AccumulationRegister.Взаиморасчеты
AccumulationRegister.Продажи
+ AccumulationRegister.ТоварныеЗапасы
ChartOfCharacteristicTypes.ВидыХарактеристик