From adff514e2840c7c5dd440995c019c0e05f0e0a04 Mon Sep 17 00:00:00 2001
From: Yuri Goncharuk <yukon39@gmail.com>
Date: Tue, 12 Nov 2024 23:10:39 +0200
Subject: [PATCH 01/32] =?UTF-8?q?=D0=A3=D0=BB=D1=83=D1=87=D1=88=D0=B5?=
 =?UTF-8?q?=D0=BD=D0=B0=20=D0=B4=D0=B8=D0=B0=D0=B3=D0=BD=D0=BE=D1=81=D1=82?=
 =?UTF-8?q?=D0=B8=D0=BA=D0=B0=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BE=D0=BA=20?=
 =?UTF-8?q?=D0=BF=D1=80=D0=B8=20=D0=B7=D0=B0=D0=BF=D1=83=D1=81=D0=BA=D0=B5?=
 =?UTF-8?q?=20=D0=B2=20=D1=80=D0=B5=D0=B6=D0=B8=D0=BC=D0=B5=20=D0=BF=D1=80?=
 =?UTF-8?q?=D0=B5=D0=B4=D0=BF=D1=80=D0=B8=D1=8F=D1=82=D0=B8=D1=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ...20\260\321\202\320\276\321\200\320\260.os" | 25 ++++++++-----------
 1 file changed, 11 insertions(+), 14 deletions(-)

diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os"
index a2665ddf..9d5884c7 100644
--- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os"
+++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os"
@@ -1591,22 +1591,19 @@
 	Лог.Отладка(Приложение);
 
 	Попытка
-		ЗапуститьПроцесс1С(Приложение, ПутьЛогаВыполненияСценариев );
-		Результат = ВыводПредприятия(ПутьДамп);
-
-		ПроверитьЛогПредприятияНаИзвестныеОшибки(Результат);
-
-		ПоказатьВыводПредприятия(Результат, ДопСообщения.ПоказыватьДополнительноЛогПредприятия);
-
+		ЗапуститьПроцесс1С(Приложение, ПутьЛогаВыполненияСценариев);
 	Исключение
-		ОписаниеОшибки = ОписаниеОшибки();
+		ТекстВывода = ВыводПредприятия(ПутьДамп);
+		ПоказатьВыводПредприятия(ТекстВывода, Истина);
+		
+		ВызватьИсключение;
+	КонецПопытки;
 
-		Результат = ВыводПредприятия(ПутьДамп);
-		ПоказатьВыводПредприятия(Результат, Истина);
+	ТекстВывода = ВыводПредприятия(ПутьДамп);
 
-		Лог.Ошибка(ОписаниеОшибки);
-		ВызватьИсключение ТекущаяПроцедура;
-	КонецПопытки;
+	ПроверитьЛогПредприятияНаИзвестныеОшибки(ТекстВывода);
+
+	ПоказатьВыводПредприятия(ТекстВывода, ДопСообщения.ПоказыватьДополнительноЛогПредприятия);
 
 	Лог.Информация("Выполнение команды/действия в режиме 1С:Предприятие завершено.");
 
@@ -1766,7 +1763,7 @@
 	НормализованныйЛог = НРег(ЛогПредприятия);
 	Для каждого Ошибка Из ИзвестныеНормализованныеОшибки() Цикл
 		Если Найти(НормализованныйЛог, Ошибка) > 0 Тогда
-			ВызватьИсключение Ошибка;
+			ВызватьИсключение ЛогПредприятия;
 		КонецЕсли;
 	КонецЦикла;
 

From a4ea7bde7d2f7ef09820d593bc6175ac94c782e2 Mon Sep 17 00:00:00 2001
From: Yuri Goncharuk <yukon39@gmail.com>
Date: Wed, 13 Nov 2024 17:22:52 +0200
Subject: [PATCH 02/32] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?=
 =?UTF-8?q?=D0=B5=D0=BD=20=D0=BA=D0=BB=D0=B0=D1=81=D1=81=20=D0=BE=D0=B1?=
 =?UTF-8?q?=D0=B5=D1=80=D1=82=D0=BA=D0=B0=20=D0=B4=D0=BB=D1=8F=20=D0=B7?=
 =?UTF-8?q?=D0=B0=D0=BF=D1=83=D1=81=D0=BA=D0=B0=20ibcmd?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ...5\320\264\320\266\320\265\321\200Ibsrv.os" | 276 ++++++++++++++++++
 ...20\265\321\202\320\276\320\264\321\213.os" |  73 +++++
 2 files changed, 349 insertions(+)
 create mode 100644 "src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200Ibsrv.os"

diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200Ibsrv.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200Ibsrv.os"
new file mode 100644
index 00000000..a063a224
--- /dev/null
+++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200Ibsrv.os"
@@ -0,0 +1,276 @@
+
+#Использовать ibcmdrunner
+
+// BSLLS:LatinAndCyrillicSymbolInWord-off
+
+#Область ОписаниеПеременных
+
+Перем Лог; // Содержит объект лога
+Перем ВременныйКаталогДанныхСервера; // Временный каталог данных автономного сервера
+Перем МенеджерАС; // Вложенный объект упрапвления автономным сервером
+Перем ПортHttpДоступа; // Основной сетевой порт, обслуживаемый сервером.
+
+Перем ИспользоватьПрямоеСоединение; // Режим использования прямого соединения
+Перем ПортПрямогоСоединения; // Основной сетевой порт установки прямого соединения с сервером
+
+Перем ИспользоватьОтладку; // Режим использования отладки
+Перем ПортОтладки; // Основной порт отладки
+
+#КонецОбласти
+
+#Область ПрограммныйИнтерфейс
+
+// Выполняет действие запуска платформы 1С через автономный сервер
+//
+// Параметры:
+//   Действие - Действие - Метод выполняющий запуск платформы 1С.
+//   ПараметрыКоманды - Структура - Параметры команды
+//
+//  Возвращаемое значение:
+//   Число - Код возврата команды запуска.
+//
+Функция ВыполнитьДействие(Действие, ПараметрыКоманды) Экспорт
+
+	ЗапуститьМенеджерАС();
+	Лог.Информация("Запущен ibsrv на основном порту %1", ПортHttpДоступа);
+
+	УстановитьДанныеПодключения(ПараметрыКоманды);
+		
+	Попытка
+		Результат = Действие.Выполнить(ПараметрыКоманды);	
+	Исключение
+		МенеджерАС.Остановить();
+		Лог.Информация("Процесс ibsrv остановлен");
+		ВызватьИсключение;
+	КонецПопытки;
+
+	МенеджерАС.Остановить();
+	Лог.Информация("Процесс ibsrv остановлен");
+
+	Возврат Результат;
+
+КонецФункции
+
+// Включает режим прямого соединения с автономным сервером
+//
+Процедура ВключитьПрямоеСоединение() Экспорт
+	ИспользоватьПрямоеСоединение = Истина;
+КонецПроцедуры
+
+// Включает режим отладки на автоновном сервере
+//
+Процедура ВключитьОтладку() Экспорт
+	ИспользоватьОтладку = Истина;
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область ОбработчикиСобытий
+
+Процедура ПриСозданииОбъекта()
+	
+	Лог = Логирование.ПолучитьЛог(ПараметрыСистемы.ИмяЛогаСистемы());
+	ВременныйКаталогДанныхСервера = ВременныеФайлы.СоздатьКаталог();
+	
+	МенеджерАС = Новый УправлениеАС();
+	МенеджерАС.УстановитьКаталогДанных(ВременныйКаталогДанныхСервера);
+	
+	ПортHttpДоступа = ПортHttpДоступа();
+	
+	ИспользоватьПрямоеСоединение = Ложь;
+	ПортПрямогоСоединения = ПортПрямогоСоединения();
+	
+	ИспользоватьОтладку = Ложь;
+	ПортОтладки = ПортОтладки();
+
+КонецПроцедуры
+
+Процедура Конструктор(ДанныеПодключения, ПараметрыКоманды) Экспорт
+
+	ВерсияПлатформы = ДанныеПодключения.ВерсияПлатформы;
+	Если ЗначениеЗаполнено(ВерсияПлатформы) Тогда
+		Если ЗначениеЗаполнено(ДанныеПодключения.РазрядностьПлатформы) Тогда
+			Разрядность = ОбщиеМетоды.РазрядностьПлатформы(ДанныеПодключения.РазрядностьПлатформы);
+			Лог.Отладка("Разрядность платформы 1С указана %1", ДанныеПодключения.РазрядностьПлатформы);
+		Иначе
+			Разрядность = ОбщиеМетоды.РазрядностьПлатформы("x64x86");
+			Лог.Отладка("Разрядность платформы 1С не указана");
+		КонецЕсли;
+
+		МенеджерАС.УстановитьВерсию(ВерсияПлатформы, Разрядность);
+	КонецЕсли;
+
+	Лог.Информация("Используется ibsrv платформы %1", МенеджерАС.Версия());
+
+	КаталогБазы = ОбщиеМетоды.КаталогФайловойИБ(ДанныеПодключения.ПутьБазы);
+	МенеджерАС.УстановитьПараметрыФайловойИБ(КаталогБазы);
+
+КонецПроцедуры
+
+Процедура Деструктор() Экспорт
+
+	Попытка
+		ВременныеФайлы.УдалитьФайл(ВременныйКаталогДанныхСервера);
+	Исключение
+		ИнформацияОбОшибке = ИнформацияОбОшибке();
+		Лог.Отладка(КраткоеПредставлениеОшибки(ИнформацияОбОшибке));
+	КонецПопытки;
+
+	ВременныйКаталогДанныхСервера = "";
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+Функция СтрокаПрямогоСоединения()
+	Возврат СтрШаблон("/S localhost:%1\DefAlias", XMLСтрока(ПортПрямогоСоединения));
+КонецФункции
+
+Функция СтрокаВебСоединения()
+	Возврат СтрШаблон("/WS http://localhost:%1/", XMLСтрока(ПортHttpДоступа));
+КонецФункции
+
+Процедура УстановитьДанныеПодключения(ПараметрыКоманды)
+
+	ДанныеПодключения = ПараметрыКоманды["ДанныеПодключения"];
+
+	Если ИспользоватьПрямоеСоединение Тогда
+		СтрокаСоединения = СтрокаПрямогоСоединения();
+	Иначе
+		СтрокаСоединения = СтрокаВебСоединения();
+	КонецЕсли;
+
+	НовыеДанныеПодключения = Новый Структура(ДанныеПодключения);
+	НовыеДанныеПодключения.ПутьБазы = СтрокаСоединения;
+	НовыеДанныеПодключения.СтрокаПодключения = СтрокаСоединения;
+	Лог.Отладка("Установлена строка подключения к ИБ: %1", СтрокаСоединения);
+	
+	ПараметрыКоманды["ДанныеПодключения"] = НовыеДанныеПодключения;
+
+КонецПроцедуры
+
+Процедура ЗапуститьМенеджерАС()
+
+	СдвигПортов = ДоступныйСдвигПортов();
+	ПортHttpДоступа = ПортHttpДоступа(СдвигПортов);
+	ПортПрямогоСоединения = ПортПрямогоСоединения(СдвигПортов);
+	ПортОтладки = ПортОтладки(СдвигПортов);
+
+	СформироватьФайлКонфигурацииАС(СдвигПортов);
+
+	МенеджерАС.Запустить();
+
+КонецПроцедуры
+
+Функция ДоступныйСдвигПортов()
+
+	ДиапазонПортов = 0; // Стандартный сдвиг
+	КоличествоПопыток = 8;
+	КоличествоДиапазонов = 32;
+
+	Генератор = Новый ГенераторСлучайныхЧисел(ТекущаяУниверсальнаяДатаВМиллисекундах());
+
+	Результат = Ложь;
+	ТекущаяПопытка = 0;
+	Пока Не Результат И ТекущаяПопытка < КоличествоПопыток Цикл
+		
+		СдвигПортов = СдвигПортовДляДиапазона(ДиапазонПортов);
+		ПортПроверки = ПортHttpДоступа(СдвигПортов);
+		Если ПортДоступен(ПортПроверки) Тогда
+			Лог.Отладка("Порт %1 доступен для запуска ibsrv", ПортПроверки);
+			Результат = Истина;
+			Прервать;
+		Иначе
+			Лог.Отладка("Порт %1 недоступен для запуска ibsrv!", ПортПроверки);
+		КонецЕсли;
+
+		ТекущаяПопытка = ТекущаяПопытка + 1;
+		ДиапазонПортов = Генератор.СлучайноеЧисло(1, КоличествоДиапазонов);
+		
+	КонецЦикла;
+
+	Если Результат Тогда
+		Возврат СдвигПортов;
+	Иначе
+		ВызватьИсключение "Не найден доступный порт для запуска автономного сервера!";
+	КонецЕсли;
+
+КонецФункции
+
+Функция СдвигПортовДляДиапазона(ДиапазонПортов)
+	Возврат 100 * ДиапазонПортов; // BSLLS:MagicNumber-off 
+КонецФункции
+
+Функция ПортПрямогоСоединения(СдвигПортов = 0)
+	Возврат 8341 + СдвигПортов; // BSLLS:MagicNumber-off
+КонецФункции
+
+Функция ПортHttpДоступа(СдвигПортов = 0)
+	Возврат 8314 + СдвигПортов; // BSLLS:MagicNumber-off
+КонецФункции
+
+Функция ПортОтладки(СдвигПортов = 0)
+	Возврат 8350 + СдвигПортов; // BSLLS:MagicNumber-off
+КонецФункции
+
+Функция МинимальныйПортПодключения(СдвигПортов = 0)
+	Возврат 8360 + СдвигПортов; // BSLLS:MagicNumber-off
+КонецФункции
+
+Функция МаксимальныйПортПодключения(СдвигПортов = 0)
+	Возврат 8391 + СдвигПортов; // BSLLS:MagicNumber-off
+КонецФункции
+
+Функция ПортДоступен(ПортПроверки)
+
+	TCPСервер = Новый TCPСервер(ПортПроверки);
+	Попытка
+		TCPСервер.Запустить();	
+	Исключение
+		Возврат Ложь;
+	КонецПопытки;
+	
+	TCPСервер.Остановить();
+	Возврат Истина;
+
+КонецФункции
+
+Процедура СформироватьФайлКонфигурацииАС(СдвигПортов) 
+
+	СетевойИнтерфейс = "any";
+	ИмяИБ = "DefAlias";
+	РазрешитьВыдачуЛицензий = Истина;
+	РазрешитьРегламентныеЗадания = Ложь;
+
+	КонфигурацияАС = Новый КонфигурационныйФайлАС;
+	КонфигурацияАС.ПараметрыСервера(ПортHttpДоступа, СетевойИнтерфейс);
+	КонфигурацияАС.ПараметрыИБ(ИмяИБ, РазрешитьВыдачуЛицензий, РазрешитьРегламентныеЗадания);
+
+	ИспользоватьШлюзПрямогоДоступа = ИспользоватьПрямоеСоединение;
+	ИспользоватьШлюзHTTP = Неопределено;
+	ИспользоватьШлюзSSH = Ложь;
+	ИспользоватьРасширеннуюФункциональностьКонфигуратора = Неопределено;
+	КонфигурацияАС.ПараметрыФункциональностиСервера(
+		ИспользоватьШлюзПрямогоДоступа,	ИспользоватьШлюзHTTP, 
+		ИспользоватьШлюзSSH, ИспользоватьРасширеннуюФункциональностьКонфигуратора);
+
+	Если ИспользоватьПрямоеСоединение Тогда
+		КонфигурацияАС.ПараметрыШлюзаПрямогоДоступа(ПортПрямогоСоединения, 
+			МинимальныйПортПодключения(СдвигПортов), 
+			МаксимальныйПортПодключения(СдвигПортов));
+	КонецЕсли;
+
+	Если ИспользоватьОтладку Тогда
+		КонфигурацияАС.ПараметрыОтладкиСервера("http", ПортОтладки, СетевойИнтерфейс);
+	КонецЕсли;
+
+	ФайлКонфигурации = ОбъединитьПути(ВременныйКаталогДанныхСервера, "ibsrv.yaml");
+	КонфигурацияАС.СоздатьКонфигурационныйФайл(ФайлКонфигурации);
+
+	МенеджерАС.УстановитьКонфигурационныйФайл(ФайлКонфигурации);
+
+КонецПроцедуры
+
+#КонецОбласти
diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os"
index f0c4d8c7..de17516b 100644
--- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os"
+++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os"
@@ -623,6 +623,79 @@
 	Возврат НайденныйФайл;
 КонецФункции
 
+Функция ВыполнитьКомандуСУчетомIbsrv(ПараметрыКоманды, Действие, ПараметрыАвтономногоСервера) Экспорт
+	
+	Если ИспользоватьIbsrv(ПараметрыКоманды) Тогда
+		Возврат ВыполнитьЧерезIbsrv(ПараметрыКоманды, Действие, ПараметрыАвтономногоСервера);
+	Иначе
+		Возврат Действие.Выполнить(ПараметрыКоманды);
+	КонецЕсли;
+
+КонецФункции
+
+Функция ИспользоватьIbSrv(ПараметрыКоманды)
+
+	ИспользоватьIbsrv = ПараметрыКоманды["--ibsrv"];
+	ОжидатьЗавершения = НЕ (ПараметрыКоманды["--no-wait"] = Истина);
+	СтрокаПодключенияИБ = ПараметрыКоманды["ДанныеПодключения"].ПутьБазы;
+	
+	Если Не ИспользоватьIbsrv Тогда
+		Лог.Отладка("Не указан флаг использования ibsrv");
+		Возврат Ложь;
+	
+	ИначеЕсли Не ОбщиеМетоды.ЭтоФайловаяИБ(СтрокаПодключенияИБ) Тогда 
+		Лог.Предупреждение("Серверные ИБ не поддерживаются ibsrv!");
+		Возврат Ложь;
+	
+	ИначеЕсли Не ОжидатьЗавершения Тогда
+		Лог.Предупреждение("Запуск без ожидания не поддерживается при работе с ibsrv!");
+		Возврат Ложь;
+
+	Иначе
+		Лог.Отладка("Используем ibsrv.");
+		Возврат Истина;
+
+	КонецЕсли;
+
+КонецФункции
+
+Функция НовыеПараметрыАвтономногоСервера() Экспорт
+
+	ПараметрыАС = Новый Структура;
+	ПараметрыАС.Вставить("ИспользоватьПрямоеСоединение", Ложь);
+	ПараметрыАС.Вставить("ИспользоватьОтладку", Ложь);
+
+	Возврат ПараметрыАС;
+
+КонецФункции
+
+Функция ВыполнитьЧерезIbsrv(ПараметрыКоманды, Действие, ПараметрыАвтономногоСервера) 
+	
+	ДанныеПодключения = ПараметрыКоманды["ДанныеПодключения"];
+	МенеджерIbsrv = Новый МенеджерIbsrv;
+	МенеджерIbsrv.Конструктор(ДанныеПодключения, ПараметрыКоманды);
+
+	Если ПараметрыАвтономногоСервера.ИспользоватьПрямоеСоединение Тогда
+		МенеджерIbsrv.ВключитьПрямоеСоединение();
+	КонецЕсли;
+	
+	Если ПараметрыАвтономногоСервера.ИспользоватьОтладку Тогда
+		МенеджерIbsrv.ВключитьОтладку();
+	КонецЕсли;
+
+	Попытка
+		Результат = МенеджерIbsrv.ВыполнитьДействие(Действие, ПараметрыКоманды);
+	Исключение
+		МенеджерIbsrv.Деструктор();
+		ВызватьИсключение;
+	КонецПопытки;
+	
+	МенеджерIbsrv.Деструктор();
+	
+	Возврат Результат;
+
+КонецФункции
+
 Функция НовыйМенеджерКонфигуратора() Экспорт
 	Логирование.ПолучитьЛог("oscript.lib.v8runner").УстановитьУровень(Лог.Уровень());
 	Возврат Новый МенеджерКонфигуратора();

From 0090fed8e2a920cee02b189d678efd9b216bbf7a Mon Sep 17 00:00:00 2001
From: Yuri Goncharuk <yukon39@gmail.com>
Date: Wed, 13 Nov 2024 17:27:05 +0200
Subject: [PATCH 03/32] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?=
 =?UTF-8?q?=D0=B5=D0=BD=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80?=
 =?UTF-8?q?=20--ibsrv=20=D0=B4=D0=BB=D1=8F=20=D0=BA=D0=BE=D0=BC=D0=B0?=
 =?UTF-8?q?=D0=BD=D0=B4=D1=8B=20xunit?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ...260\320\275\320\270\320\265_xUnitFor1C.os" | 40 ++++++---
 ...0\276\320\264\321\203\320\273\321\214.xml" | 18 ++++
 .../Ext/Module.bsl"                           | 10 +++
 tests/fixtures/xdd_cfe_FAIL/Configuration.xml | 72 ++++++++++++++++
 ...1\201\321\201\320\272\320\270\320\271.xml" | 12 +++
 ...1\217\320\240\320\276\320\273\321\214.xml" | 10 +++
 ...0\276\320\264\321\203\320\273\321\214.xml" | 18 ++++
 .../Ext/Module.bsl"                           | 12 +++
 ...\276\320\264\321\203\320\273\321\2141.xml" | 18 ++++
 .../Ext/Module.bsl"                           |  7 ++
 tests/fixtures/xdd_cfe_OK/Configuration.xml   | 72 ++++++++++++++++
 ...1\201\321\201\320\272\320\270\320\271.xml" | 12 +++
 ...1\217\320\240\320\276\320\273\321\214.xml" | 10 +++
 ...1\217\320\240\320\276\320\273\321\214.xml" | 10 +++
 ...20\276\320\274\320\260\320\275\320\264.os" | 13 ++-
 tests/xunits/xunit.os                         | 84 +++++++++++++++++++
 16 files changed, 405 insertions(+), 13 deletions(-)
 create mode 100644 "tests/fixtures/xdd_cfe_FAIL/CommonModules/\320\242\320\265\321\201\321\202FAIL_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\214.xml"
 create mode 100644 "tests/fixtures/xdd_cfe_FAIL/CommonModules/\320\242\320\265\321\201\321\202FAIL_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\214/Ext/Module.bsl"
 create mode 100644 tests/fixtures/xdd_cfe_FAIL/Configuration.xml
 create mode 100644 "tests/fixtures/xdd_cfe_FAIL/Languages/\320\240\321\203\321\201\321\201\320\272\320\270\320\271.xml"
 create mode 100644 "tests/fixtures/xdd_cfe_FAIL/Roles/\320\242\320\265\321\201\321\202FAIL_\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\240\320\276\320\273\321\214.xml"
 create mode 100644 "tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202OK_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\214.xml"
 create mode 100644 "tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202OK_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\214/Ext/Module.bsl"
 create mode 100644 "tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\2141.xml"
 create mode 100644 "tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\2141/Ext/Module.bsl"
 create mode 100644 tests/fixtures/xdd_cfe_OK/Configuration.xml
 create mode 100644 "tests/fixtures/xdd_cfe_OK/Languages/\320\240\321\203\321\201\321\201\320\272\320\270\320\271.xml"
 create mode 100644 "tests/fixtures/xdd_cfe_OK/Roles/\320\242\320\265\321\201\321\202OK_\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\240\320\276\320\273\321\214.xml"
 create mode 100644 "tests/fixtures/xdd_cfe_OK/Roles/\320\242\320\265\321\201\321\202_\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\240\320\276\320\273\321\214.xml"
 create mode 100644 tests/xunits/xunit.os

diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os"
index edc744dd..bfc4991c 100644
--- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os"
+++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os"
@@ -12,17 +12,18 @@
 //
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-#Использовать logos
-#Использовать v8runner
 #Использовать asserts
 #Использовать fs
 
-Перем Лог;
+#Область ОписаниеПеременных
+
+Перем Лог; // Экземпляр логгера
 Перем МенеджерКонфигуратора;
 Перем ВанессаАДД;
 
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Прикладной интерфейс
+#КонецОбласти
+
+#Область ОбработчикиСобытий
 
 Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт
 
@@ -94,6 +95,9 @@
 	Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--no-shutdown",
 		"Не завершать работу 1С:Предприятие после выполнения тестов");
 
+	Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--ibsrv",
+		"Запуск команды с использованием утилиты ibsrv");
+
 	Парсер.ДобавитьКоманду(ОписаниеКоманды);
 
 КонецПроцедуры
@@ -106,11 +110,21 @@
 //
 Функция ВыполнитьКоманду(Знач ПараметрыКоманды, Знач ДополнительныеПараметры = Неопределено) Экспорт
 
-	Попытка
-		Лог = ДополнительныеПараметры.Лог;
-	Исключение
-		Лог = Логирование.ПолучитьЛог(ПараметрыСистемы.ИмяЛогаСистемы());
-	КонецПопытки;
+	Лог = ОбщиеМетоды.ЛогКоманды(ДополнительныеПараметры);
+
+	ПараметрыАвтономногоСервера = ОбщиеМетоды.НовыеПараметрыАвтономногоСервера();
+	ПараметрыАвтономногоСервера.ИспользоватьОтладку = Истина;
+
+	Действие = Новый Действие(ЭтотОбъект, "ВыполнитьТестирование");
+	Возврат ОбщиеМетоды.ВыполнитьКомандуСУчетомIbsrv(ПараметрыКоманды, Действие, ПараметрыАвтономногоСервера);
+
+КонецФункции
+
+#КонецОбласти
+
+#Область СлужебныйПрограммныйИнтерфейс
+
+Функция ВыполнитьТестирование(Знач ПараметрыКоманды, Знач ДополнительныеПараметры = Неопределено) Экспорт
 
 	ЗапускатьТолстыйКлиент = ОбщиеМетоды.УказанПараметрТолстыйКлиент(ПараметрыКоманды["--ordinaryapp"], Лог);
 	ОжидатьЗавершения = Не ПараметрыКоманды["--no-wait"];
@@ -161,6 +175,10 @@
 	Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех;
 КонецФункции
 
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
 // Выполняем запуск тестов для xunit
 //
 // Параметры:
@@ -361,3 +379,5 @@
 		ВызватьИсключение СообщениеОшибки;
 	КонецЕсли;
 КонецПроцедуры
+
+#КонецОбласти
diff --git "a/tests/fixtures/xdd_cfe_FAIL/CommonModules/\320\242\320\265\321\201\321\202FAIL_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\214.xml" "b/tests/fixtures/xdd_cfe_FAIL/CommonModules/\320\242\320\265\321\201\321\202FAIL_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\214.xml"
new file mode 100644
index 00000000..5f7d7790
--- /dev/null
+++ "b/tests/fixtures/xdd_cfe_FAIL/CommonModules/\320\242\320\265\321\201\321\202FAIL_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\214.xml"
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.16">
+	<CommonModule uuid="8c1c8a49-eb73-43ec-9e0c-fa0b778ecb5c">
+		<Properties>
+			<Name>ТестFAIL_ОбщийМодуль</Name>
+			<Synonym/>
+			<Comment/>
+			<Global>false</Global>
+			<ClientManagedApplication>false</ClientManagedApplication>
+			<Server>true</Server>
+			<ExternalConnection>true</ExternalConnection>
+			<ClientOrdinaryApplication>false</ClientOrdinaryApplication>
+			<ServerCall>false</ServerCall>
+			<Privileged>false</Privileged>
+			<ReturnValuesReuse>DontUse</ReturnValuesReuse>
+		</Properties>
+	</CommonModule>
+</MetaDataObject>
\ No newline at end of file
diff --git "a/tests/fixtures/xdd_cfe_FAIL/CommonModules/\320\242\320\265\321\201\321\202FAIL_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\214/Ext/Module.bsl" "b/tests/fixtures/xdd_cfe_FAIL/CommonModules/\320\242\320\265\321\201\321\202FAIL_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\214/Ext/Module.bsl"
new file mode 100644
index 00000000..437d39ff
--- /dev/null
+++ "b/tests/fixtures/xdd_cfe_FAIL/CommonModules/\320\242\320\265\321\201\321\202FAIL_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\214/Ext/Module.bsl"
@@ -0,0 +1,10 @@
+                                    
+Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт
+	НаборТестов.Добавить("ТестFail");	
+КонецПроцедуры
+
+Процедура ТестFail(Ванесса) Экспорт 
+	
+	ВызватьИсключение "Тест FAIL!";
+	
+КонецПроцедуры
\ No newline at end of file
diff --git a/tests/fixtures/xdd_cfe_FAIL/Configuration.xml b/tests/fixtures/xdd_cfe_FAIL/Configuration.xml
new file mode 100644
index 00000000..16ae3c91
--- /dev/null
+++ b/tests/fixtures/xdd_cfe_FAIL/Configuration.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.16">
+	<Configuration uuid="c7fbfe37-6d69-455e-a4ca-69fc795cb65e">
+		<InternalInfo>
+			<xr:ContainedObject>
+				<xr:ClassId>9cd510cd-abfc-11d4-9434-004095e12fc7</xr:ClassId>
+				<xr:ObjectId>986648a2-0daa-4f7c-90f6-55b99394ca68</xr:ObjectId>
+			</xr:ContainedObject>
+			<xr:ContainedObject>
+				<xr:ClassId>9fcd25a0-4822-11d4-9414-008048da11f9</xr:ClassId>
+				<xr:ObjectId>78e5b327-4d98-46ce-8e1d-6ce2913a42b3</xr:ObjectId>
+			</xr:ContainedObject>
+			<xr:ContainedObject>
+				<xr:ClassId>e3687481-0a87-462c-a166-9f34594f9bba</xr:ClassId>
+				<xr:ObjectId>ff659aab-ce9b-4126-9941-cdd1533eb0c4</xr:ObjectId>
+			</xr:ContainedObject>
+			<xr:ContainedObject>
+				<xr:ClassId>9de14907-ec23-4a07-96f0-85521cb6b53b</xr:ClassId>
+				<xr:ObjectId>8ae1a01d-72f2-4079-9934-d186b374c4d8</xr:ObjectId>
+			</xr:ContainedObject>
+			<xr:ContainedObject>
+				<xr:ClassId>51f2d5d8-ea4d-4064-8892-82951750031e</xr:ClassId>
+				<xr:ObjectId>d86f397b-5b9d-48d0-aeb4-596a4f003c30</xr:ObjectId>
+			</xr:ContainedObject>
+			<xr:ContainedObject>
+				<xr:ClassId>e68182ea-4237-4383-967f-90c1e3370bc7</xr:ClassId>
+				<xr:ObjectId>955aa924-ae4d-461c-92d5-004ca627de16</xr:ObjectId>
+			</xr:ContainedObject>
+			<xr:ContainedObject>
+				<xr:ClassId>fb282519-d103-4dd3-bc12-cb271d631dfc</xr:ClassId>
+				<xr:ObjectId>031b5158-f0a7-40ab-a84d-93a307da1563</xr:ObjectId>
+			</xr:ContainedObject>
+		</InternalInfo>
+		<Properties>
+			<ObjectBelonging>Adopted</ObjectBelonging>
+			<Name>ТестFAIL</Name>
+			<Synonym>
+				<v8:item>
+					<v8:lang>ru</v8:lang>
+					<v8:content>Тест FAIL</v8:content>
+				</v8:item>
+			</Synonym>
+			<Comment/>
+			<ConfigurationExtensionPurpose>Customization</ConfigurationExtensionPurpose>
+			<KeepMappingToExtendedConfigurationObjectsByIDs>true</KeepMappingToExtendedConfigurationObjectsByIDs>
+			<NamePrefix>ТестFAIL_</NamePrefix>
+			<ConfigurationExtensionCompatibilityMode>Version8_3_23</ConfigurationExtensionCompatibilityMode>
+			<DefaultRunMode>ManagedApplication</DefaultRunMode>
+			<UsePurposes>
+				<v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
+			</UsePurposes>
+			<ScriptVariant>Russian</ScriptVariant>
+			<DefaultRoles>
+				<xr:Item xsi:type="xr:MDObjectRef">Role.ТестFAIL_ОсновнаяРоль</xr:Item>
+			</DefaultRoles>
+			<Vendor/>
+			<Version/>
+			<DefaultLanguage>Language.Русский</DefaultLanguage>
+			<BriefInformation/>
+			<DetailedInformation/>
+			<Copyright/>
+			<VendorInformationAddress/>
+			<ConfigurationInformationAddress/>
+			<InterfaceCompatibilityMode>Taxi</InterfaceCompatibilityMode>
+		</Properties>
+		<ChildObjects>
+			<Language>Русский</Language>
+			<Role>ТестFAIL_ОсновнаяРоль</Role>
+			<CommonModule>ТестFAIL_ОбщийМодуль</CommonModule>
+		</ChildObjects>
+	</Configuration>
+</MetaDataObject>
\ No newline at end of file
diff --git "a/tests/fixtures/xdd_cfe_FAIL/Languages/\320\240\321\203\321\201\321\201\320\272\320\270\320\271.xml" "b/tests/fixtures/xdd_cfe_FAIL/Languages/\320\240\321\203\321\201\321\201\320\272\320\270\320\271.xml"
new file mode 100644
index 00000000..6dbda9fa
--- /dev/null
+++ "b/tests/fixtures/xdd_cfe_FAIL/Languages/\320\240\321\203\321\201\321\201\320\272\320\270\320\271.xml"
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.16">
+	<Language uuid="25e86f6a-e363-4003-8503-13611c845248">
+		<InternalInfo/>
+		<Properties>
+			<ObjectBelonging>Adopted</ObjectBelonging>
+			<Name>Русский</Name>
+			<Comment/>
+			<LanguageCode>ru</LanguageCode>
+		</Properties>
+	</Language>
+</MetaDataObject>
\ No newline at end of file
diff --git "a/tests/fixtures/xdd_cfe_FAIL/Roles/\320\242\320\265\321\201\321\202FAIL_\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\240\320\276\320\273\321\214.xml" "b/tests/fixtures/xdd_cfe_FAIL/Roles/\320\242\320\265\321\201\321\202FAIL_\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\240\320\276\320\273\321\214.xml"
new file mode 100644
index 00000000..98795e0b
--- /dev/null
+++ "b/tests/fixtures/xdd_cfe_FAIL/Roles/\320\242\320\265\321\201\321\202FAIL_\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\240\320\276\320\273\321\214.xml"
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.16">
+	<Role uuid="d9e5bc47-f13f-4ff6-af91-cb619ced3928">
+		<Properties>
+			<Name>ТестFAIL_ОсновнаяРоль</Name>
+			<Synonym/>
+			<Comment/>
+		</Properties>
+	</Role>
+</MetaDataObject>
\ No newline at end of file
diff --git "a/tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202OK_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\214.xml" "b/tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202OK_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\214.xml"
new file mode 100644
index 00000000..10934c54
--- /dev/null
+++ "b/tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202OK_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\214.xml"
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.16">
+	<CommonModule uuid="fac09fec-a379-43d6-b857-f2444831c44c">
+		<Properties>
+			<Name>ТестOK_ОбщийМодуль</Name>
+			<Synonym/>
+			<Comment/>
+			<Global>false</Global>
+			<ClientManagedApplication>false</ClientManagedApplication>
+			<Server>true</Server>
+			<ExternalConnection>true</ExternalConnection>
+			<ClientOrdinaryApplication>false</ClientOrdinaryApplication>
+			<ServerCall>false</ServerCall>
+			<Privileged>false</Privileged>
+			<ReturnValuesReuse>DontUse</ReturnValuesReuse>
+		</Properties>
+	</CommonModule>
+</MetaDataObject>
\ No newline at end of file
diff --git "a/tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202OK_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\214/Ext/Module.bsl" "b/tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202OK_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\214/Ext/Module.bsl"
new file mode 100644
index 00000000..d8e3f435
--- /dev/null
+++ "b/tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202OK_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\214/Ext/Module.bsl"
@@ -0,0 +1,12 @@
+
+Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт
+	НаборТестов.Добавить("ТестOK");	
+КонецПроцедуры
+
+Процедура ТестOK(Ванесса) Экспорт 
+	
+	Сообщение = Новый СообщениеПользователю;
+	Сообщение.Текст = "Тест OK!";
+	Сообщение.Сообщить();
+	
+КонецПроцедуры
\ No newline at end of file
diff --git "a/tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\2141.xml" "b/tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\2141.xml"
new file mode 100644
index 00000000..c393e0f3
--- /dev/null
+++ "b/tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\2141.xml"
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.16">
+	<CommonModule uuid="fac09fec-a379-43d6-b857-f2444831c44c">
+		<Properties>
+			<Name>Тест_ОбщийМодуль1</Name>
+			<Synonym/>
+			<Comment/>
+			<Global>false</Global>
+			<ClientManagedApplication>false</ClientManagedApplication>
+			<Server>true</Server>
+			<ExternalConnection>false</ExternalConnection>
+			<ClientOrdinaryApplication>false</ClientOrdinaryApplication>
+			<ServerCall>false</ServerCall>
+			<Privileged>false</Privileged>
+			<ReturnValuesReuse>DontUse</ReturnValuesReuse>
+		</Properties>
+	</CommonModule>
+</MetaDataObject>
\ No newline at end of file
diff --git "a/tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\2141/Ext/Module.bsl" "b/tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\2141/Ext/Module.bsl"
new file mode 100644
index 00000000..3de44fce
--- /dev/null
+++ "b/tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\2141/Ext/Module.bsl"
@@ -0,0 +1,7 @@
+
+Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт
+	НаборТестов.Добавить("Тест_Выполняется");	
+КонецПроцедуры
+
+Процедура Тест_Выполняется(Ванесса) Экспорт
+КонецПроцедуры
diff --git a/tests/fixtures/xdd_cfe_OK/Configuration.xml b/tests/fixtures/xdd_cfe_OK/Configuration.xml
new file mode 100644
index 00000000..79475495
--- /dev/null
+++ b/tests/fixtures/xdd_cfe_OK/Configuration.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.16">
+	<Configuration uuid="9a8b2748-d314-4404-a506-370f99085557">
+		<InternalInfo>
+			<xr:ContainedObject>
+				<xr:ClassId>9cd510cd-abfc-11d4-9434-004095e12fc7</xr:ClassId>
+				<xr:ObjectId>c68551a9-4e35-4db1-9a4e-d2bf7c6224d4</xr:ObjectId>
+			</xr:ContainedObject>
+			<xr:ContainedObject>
+				<xr:ClassId>9fcd25a0-4822-11d4-9414-008048da11f9</xr:ClassId>
+				<xr:ObjectId>45b51908-9aba-4ff0-9dde-96fec0c1a8d5</xr:ObjectId>
+			</xr:ContainedObject>
+			<xr:ContainedObject>
+				<xr:ClassId>e3687481-0a87-462c-a166-9f34594f9bba</xr:ClassId>
+				<xr:ObjectId>a7007268-2b03-4157-b9cb-a9e597e0831e</xr:ObjectId>
+			</xr:ContainedObject>
+			<xr:ContainedObject>
+				<xr:ClassId>9de14907-ec23-4a07-96f0-85521cb6b53b</xr:ClassId>
+				<xr:ObjectId>53328cf7-8389-4b5c-89f7-1cbf09324b07</xr:ObjectId>
+			</xr:ContainedObject>
+			<xr:ContainedObject>
+				<xr:ClassId>51f2d5d8-ea4d-4064-8892-82951750031e</xr:ClassId>
+				<xr:ObjectId>cc8b9d47-7eeb-4d3d-a94c-b58b25ea35f6</xr:ObjectId>
+			</xr:ContainedObject>
+			<xr:ContainedObject>
+				<xr:ClassId>e68182ea-4237-4383-967f-90c1e3370bc7</xr:ClassId>
+				<xr:ObjectId>8dc87c7e-a71e-4c7e-aedf-aebc06cd7599</xr:ObjectId>
+			</xr:ContainedObject>
+			<xr:ContainedObject>
+				<xr:ClassId>fb282519-d103-4dd3-bc12-cb271d631dfc</xr:ClassId>
+				<xr:ObjectId>13d6e80b-14c7-44d6-a997-41eece31b85e</xr:ObjectId>
+			</xr:ContainedObject>
+		</InternalInfo>
+		<Properties>
+			<ObjectBelonging>Adopted</ObjectBelonging>
+			<Name>ТестOK</Name>
+			<Synonym>
+				<v8:item>
+					<v8:lang>ru</v8:lang>
+					<v8:content>Тест OK</v8:content>
+				</v8:item>
+			</Synonym>
+			<Comment/>
+			<ConfigurationExtensionPurpose>Customization</ConfigurationExtensionPurpose>
+			<KeepMappingToExtendedConfigurationObjectsByIDs>true</KeepMappingToExtendedConfigurationObjectsByIDs>
+			<NamePrefix>ТестOK_</NamePrefix>
+			<ConfigurationExtensionCompatibilityMode>Version8_3_23</ConfigurationExtensionCompatibilityMode>
+			<DefaultRunMode>ManagedApplication</DefaultRunMode>
+			<UsePurposes>
+				<v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
+			</UsePurposes>
+			<ScriptVariant>Russian</ScriptVariant>
+			<DefaultRoles>
+				<xr:Item xsi:type="xr:MDObjectRef">Role.ТестOK_ОсновнаяРоль</xr:Item>
+			</DefaultRoles>
+			<Vendor/>
+			<Version/>
+			<DefaultLanguage>Language.Русский</DefaultLanguage>
+			<BriefInformation/>
+			<DetailedInformation/>
+			<Copyright/>
+			<VendorInformationAddress/>
+			<ConfigurationInformationAddress/>
+			<InterfaceCompatibilityMode>Taxi</InterfaceCompatibilityMode>
+		</Properties>
+		<ChildObjects>
+			<Language>Русский</Language>
+			<Role>ТестOK_ОсновнаяРоль</Role>
+			<CommonModule>ТестOK_ОбщийМодуль</CommonModule>
+		</ChildObjects>
+	</Configuration>
+</MetaDataObject>
\ No newline at end of file
diff --git "a/tests/fixtures/xdd_cfe_OK/Languages/\320\240\321\203\321\201\321\201\320\272\320\270\320\271.xml" "b/tests/fixtures/xdd_cfe_OK/Languages/\320\240\321\203\321\201\321\201\320\272\320\270\320\271.xml"
new file mode 100644
index 00000000..2adb33dc
--- /dev/null
+++ "b/tests/fixtures/xdd_cfe_OK/Languages/\320\240\321\203\321\201\321\201\320\272\320\270\320\271.xml"
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.16">
+	<Language uuid="26738bc4-7b68-4670-b4ea-b8bfa00073e7">
+		<InternalInfo/>
+		<Properties>
+			<ObjectBelonging>Adopted</ObjectBelonging>
+			<Name>Русский</Name>
+			<Comment/>
+			<LanguageCode>ru</LanguageCode>
+		</Properties>
+	</Language>
+</MetaDataObject>
\ No newline at end of file
diff --git "a/tests/fixtures/xdd_cfe_OK/Roles/\320\242\320\265\321\201\321\202OK_\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\240\320\276\320\273\321\214.xml" "b/tests/fixtures/xdd_cfe_OK/Roles/\320\242\320\265\321\201\321\202OK_\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\240\320\276\320\273\321\214.xml"
new file mode 100644
index 00000000..83ae99ce
--- /dev/null
+++ "b/tests/fixtures/xdd_cfe_OK/Roles/\320\242\320\265\321\201\321\202OK_\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\240\320\276\320\273\321\214.xml"
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.16">
+	<Role uuid="674804d7-f3e4-4339-a789-cfb7f3efa6b9">
+		<Properties>
+			<Name>ТестOK_ОсновнаяРоль</Name>
+			<Synonym/>
+			<Comment/>
+		</Properties>
+	</Role>
+</MetaDataObject>
\ No newline at end of file
diff --git "a/tests/fixtures/xdd_cfe_OK/Roles/\320\242\320\265\321\201\321\202_\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\240\320\276\320\273\321\214.xml" "b/tests/fixtures/xdd_cfe_OK/Roles/\320\242\320\265\321\201\321\202_\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\240\320\276\320\273\321\214.xml"
new file mode 100644
index 00000000..cded8de4
--- /dev/null
+++ "b/tests/fixtures/xdd_cfe_OK/Roles/\320\242\320\265\321\201\321\202_\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\240\320\276\320\273\321\214.xml"
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.16">
+	<Role uuid="674804d7-f3e4-4339-a789-cfb7f3efa6b9">
+		<Properties>
+			<Name>Тест_ОсновнаяРоль</Name>
+			<Synonym/>
+			<Comment/>
+		</Properties>
+	</Role>
+</MetaDataObject>
\ No newline at end of file
diff --git "a/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\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\276\320\274\320\260\320\275\320\264.os" "b/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\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\276\320\274\320\260\320\275\320\264.os"
index ca0bc7aa..b8c4fad1 100644
--- "a/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\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\276\320\274\320\260\320\275\320\264.os"
+++ "b/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\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\276\320\274\320\260\320\275\320\264.os"
@@ -28,7 +28,7 @@
 	Аргументы.Добавить(ИмяФлага);
 КонецПроцедуры
 
-Процедура ВыполнитьКоманду() Экспорт
+Функция ВыполнитьКоманду() Экспорт
 
 	СистемнаяИнформация = Новый СистемнаяИнформация;
 	ПараметрыСистемы.ЭтоWindows = Найти(ВРег(СистемнаяИнформация.ВерсияОС), "WINDOWS") > 0;
@@ -43,9 +43,10 @@
 	Парсер = Новый ПарсерАргументовКоманднойСтроки();
 	МенеджерКомандПриложения.ЗарегистрироватьКоманды(Парсер);
 	ПараметрыКоманды = Парсер.Разобрать(Аргументы);
-	МенеджерКомандПриложения.ВыполнитьКоманду(Команда, ПараметрыКоманды.ЗначенияПараметров);
 
-КонецПроцедуры
+	Возврат МенеджерКомандПриложения.ВыполнитьКоманду(Команда, ПараметрыКоманды.ЗначенияПараметров);
+
+КонецФункции
 
 Функция ЛогКоманды() Экспорт
 	Возврат СпособВывода;
@@ -90,6 +91,7 @@
 	КаталогПустойИБ = ОбъединитьПути(КаталогКоманды, "db-data");
 
 	УправлениеИБ = Новый УправлениеИБ;
+	УправлениеИБ.УстановитьПараметрыАвтономногоСервера(КаталогКоманды);
 	УправлениеИБ.УстановитьПараметрыФайловойИБ(КаталогПустойИБ);
 	УправлениеИБ.СоздатьИБИзФайлаВыгрузки("");
 
@@ -103,6 +105,7 @@
 	КаталогИБ = ОбъединитьПути(КаталогКоманды, "db-data");
 
 	УправлениеИБ = Новый УправлениеИБ;
+	УправлениеИБ.УстановитьПараметрыАвтономногоСервера(КаталогКоманды);
 	УправлениеИБ.УстановитьПараметрыФайловойИБ(КаталогИБ);
 	УправлениеИБ.СоздатьИБИзФайловКонфигурации(Каталог);
 	УправлениеИБ.ВыгрузитьВФайлСостояниеКонфигурации(Каталог);
@@ -120,6 +123,10 @@
 	УправлениеИБ.ЗагрузитьКонфигурациюИзФайлов(КаталогИсходников, ИмяРасширения);
 КонецПроцедуры
 
+Процедура ОбновитьКонфигурациюБазыДанных(ИмяРасширения = "") Экспорт
+	УправлениеИБ.ОбновитьКонфигурациюБазыДанных(ИмяРасширения);
+КонецПроцедуры
+
 #КонецОбласти
 
 #Область ОбработчикиСобытий
diff --git a/tests/xunits/xunit.os b/tests/xunits/xunit.os
new file mode 100644
index 00000000..65e91a6b
--- /dev/null
+++ b/tests/xunits/xunit.os
@@ -0,0 +1,84 @@
+#Использовать asserts
+#Использовать tempfiles
+#Использовать "utils"
+#Использовать "..\.."
+
+#Область ОписаниеПеременных
+
+Перем НакопленныеВременныеФайлы; // фиксация накопленных времнных файлов для сброса
+
+#КонецОбласти
+
+#Область СлужебныйПрограммныйИнтерфейс
+
+&Тест
+Процедура ТестДолжен_ВыполнитьУспешноеТестированиеПроектаIbcmd() Экспорт
+
+	// Дано
+	ИмяРасширения = "ТестOK";
+
+	Исполнитель = Новый Тест_ИсполнительКоманд("xunit");
+	Исполнитель.УстановитьКонтекстПустаяИБ();
+
+	КаталогSrc = Исполнитель.ПутьТестовыхДанных("xdd_cfe_OK");
+	Исполнитель.СоздатьРасширениеИзФайлов(ИмяРасширения, КаталогSrc);
+	Исполнитель.ОбновитьКонфигурациюБазыДанных(ИмяРасширения);
+
+	Исполнитель.ДобавитьПараметр(ИмяРасширения);
+	Исполнитель.ДобавитьФлаг("--config-tests");
+	Исполнитель.ДобавитьПараметр("--xddExitCodePath", "./exitCode.txt");
+	Исполнитель.ДобавитьФлаг("--ibsrv");
+	
+	// Когда
+	Исполнитель.ВыполнитьКоманду();
+
+	// Тогда
+	Исполнитель.ОжидаемЧтоВыводСодержит("Используется ibsrv");
+	Исполнитель.ОжидаемЧтоВыводСодержит("Все тесты выполнены!");
+	
+КонецПроцедуры
+
+&Тест
+Процедура ТестДолжен_ВыполнитьОшибочноеТестированиеПроектаIbcmd() Экспорт
+
+	// Дано
+	ИмяРасширения = "ТестFAIL";
+
+	Исполнитель = Новый Тест_ИсполнительКоманд("xunit");
+	Исполнитель.УстановитьКонтекстПустаяИБ();
+
+	КаталогSrc = Исполнитель.ПутьТестовыхДанных("xdd_cfe_FAIL");
+	Исполнитель.СоздатьРасширениеИзФайлов(ИмяРасширения, КаталогSrc);
+	Исполнитель.ОбновитьКонфигурациюБазыДанных(ИмяРасширения);
+	
+	// Когда
+	Исполнитель.ДобавитьПараметр(ИмяРасширения);
+	Исполнитель.ДобавитьФлаг("--config-tests");
+	Исполнитель.ДобавитьПараметр("--xddExitCodePath", "./exitCode.txt");
+	Исполнитель.ДобавитьФлаг("--ibsrv");
+
+	// Тогда
+	Ожидаем.Что(Исполнитель)
+		.Метод("ВыполнитьКоманду")
+		.ВыбрасываетИсключение("Часть тестов упала!");
+	Исполнитель.ОжидаемЧтоВыводСодержит("Используется ibsrv");
+	
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область ОбработчикиСобытий
+
+Процедура ПередЗапускомТеста() Экспорт
+	
+	НакопленныеВременныеФайлы = ВременныеФайлы.Файлы();
+	
+КонецПроцедуры
+
+Процедура ПослеЗапускаТеста() Экспорт
+	
+	ВременныеФайлы.УдалитьНакопленныеВременныеФайлы(НакопленныеВременныеФайлы);
+	
+КонецПроцедуры
+
+#КонецОбласти

From b0dcb2695427e398d8e59c7629dd95941b5ef9a9 Mon Sep 17 00:00:00 2001
From: Yuri Goncharuk <yukon39@gmail.com>
Date: Wed, 13 Nov 2024 17:27:50 +0200
Subject: [PATCH 04/32] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?=
 =?UTF-8?q?=D0=B5=D0=BD=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80?=
 =?UTF-8?q?=20--ibsrv=20=D0=B4=D0=BB=D1=8F=20=D0=BA=D0=BE=D0=BC=D0=B0?=
 =?UTF-8?q?=D0=BD=D0=B4=D1=8B=20vanessa?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ...20\264\320\265\320\275\320\270\321\217.os" | 41 +++++++---
 ...0\320\260\320\263\320\276\320\274.feature" |  5 ++
 ...7\320\260\321\203\320\267\320\260.feature" |  5 ++
 tests/xunits/vanessa.os                       | 76 +++++++++++++++++++
 4 files changed, 117 insertions(+), 10 deletions(-)
 create mode 100644 "tests/fixtures/feature/\320\221\320\265\320\267 \321\200\320\265\320\260\320\273\320\270\320\267\320\260\321\206\320\270\320\270 \321\210\320\260\320\263\320\260/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\271 \321\201 \320\275\320\265\321\200\320\265\320\260\320\273\320\270\320\267\320\276\320\262\320\260\320\275\320\275\321\213\320\274 \321\210\320\260\320\263\320\276\320\274.feature"
 create mode 100644 "tests/fixtures/feature/\320\237\320\260\321\203\320\267\320\260/\320\237\320\260\321\203\320\267\320\260.feature"
 create mode 100644 tests/xunits/vanessa.os

diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os"
index 85ae6202..4fe60fcf 100644
--- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os"
+++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os"
@@ -9,17 +9,18 @@
 //
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-#Использовать logos
-#Использовать v8runner
 #Использовать asserts
 #Использовать json
 
-Перем Лог;
+#Область ОписаниеПеременных
+
+Перем Лог; // Экземпляр логгера
 Перем МенеджерКонфигуратора;
 Перем ВанессаАДД;
 
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Прикладной интерфейс
+#КонецОбласти
+
+#Область ОбработчикиСобытий
 
 Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт
 
@@ -57,6 +58,9 @@
 	Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--no-wait",
 		"Не ожидать завершения запущенной команды/действия");
 
+	Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--ibsrv",
+		"Запуск команды с использованием утилиты ibsrv");
+
 	Парсер.ДобавитьКоманду(ОписаниеКоманды);
 
 КонецПроцедуры
@@ -69,12 +73,22 @@
 //
 Функция ВыполнитьКоманду(Знач ПараметрыКоманды, Знач ДополнительныеПараметры = Неопределено) Экспорт
 
-	Попытка
-		Лог = ДополнительныеПараметры.Лог;
-	Исключение
-		Лог = Логирование.ПолучитьЛог(ПараметрыСистемы.ИмяЛогаСистемы());
-	КонецПопытки;
+	Лог = ОбщиеМетоды.ЛогКоманды(ДополнительныеПараметры);
+
+	ПараметрыАвтономногоСервера = ОбщиеМетоды.НовыеПараметрыАвтономногоСервера();
+	ПараметрыАвтономногоСервера.ИспользоватьОтладку = Истина;
+
+	Действие = Новый Действие(ЭтотОбъект, "ТестированиеПоведения");
+	Возврат ОбщиеМетоды.ВыполнитьКомандуСУчетомIbsrv(ПараметрыКоманды, Действие, ПараметрыАвтономногоСервера);
 
+КонецФункции
+
+#КонецОбласти
+
+#Область СлужебныйПрограммныйИнтерфейс
+
+Функция ТестированиеПоведения(Знач ПараметрыКоманды) Экспорт
+	
 	ДанныеПодключения = ПараметрыКоманды["ДанныеПодключения"];
 
 	ЗапускатьТолстыйКлиент = ОбщиеМетоды.УказанПараметрТолстыйКлиент(ПараметрыКоманды["--ordinaryapp"], Лог);
@@ -113,8 +127,13 @@
 	МенеджерКонфигуратора.Деструктор();
 
 	Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех;
+
 КонецФункции
 
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
 // Выполняем запуск тестов для vannessa
 //
 //	Параметры:
@@ -217,3 +236,5 @@
 	Лог.Информация("Тестирование поведения завершено");
 
 КонецПроцедуры
+
+#КонецОбласти
diff --git "a/tests/fixtures/feature/\320\221\320\265\320\267 \321\200\320\265\320\260\320\273\320\270\320\267\320\260\321\206\320\270\320\270 \321\210\320\260\320\263\320\260/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\271 \321\201 \320\275\320\265\321\200\320\265\320\260\320\273\320\270\320\267\320\276\320\262\320\260\320\275\320\275\321\213\320\274 \321\210\320\260\320\263\320\276\320\274.feature" "b/tests/fixtures/feature/\320\221\320\265\320\267 \321\200\320\265\320\260\320\273\320\270\320\267\320\260\321\206\320\270\320\270 \321\210\320\260\320\263\320\260/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\271 \321\201 \320\275\320\265\321\200\320\265\320\260\320\273\320\270\320\267\320\276\320\262\320\260\320\275\320\275\321\213\320\274 \321\210\320\260\320\263\320\276\320\274.feature"
new file mode 100644
index 00000000..11735e03
--- /dev/null
+++ "b/tests/fixtures/feature/\320\221\320\265\320\267 \321\200\320\265\320\260\320\273\320\270\320\267\320\260\321\206\320\270\320\270 \321\210\320\260\320\263\320\260/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\271 \321\201 \320\275\320\265\321\200\320\265\320\260\320\273\320\270\320\267\320\276\320\262\320\260\320\275\320\275\321\213\320\274 \321\210\320\260\320\263\320\276\320\274.feature"	
@@ -0,0 +1,5 @@
+# language: ru
+Функционал: Выполнение несуществующего шага
+
+Сценарий: Выполнение несуществующего шага
+    Когда я выполняю несуществующий шаг
diff --git "a/tests/fixtures/feature/\320\237\320\260\321\203\320\267\320\260/\320\237\320\260\321\203\320\267\320\260.feature" "b/tests/fixtures/feature/\320\237\320\260\321\203\320\267\320\260/\320\237\320\260\321\203\320\267\320\260.feature"
new file mode 100644
index 00000000..e175beb1
--- /dev/null
+++ "b/tests/fixtures/feature/\320\237\320\260\321\203\320\267\320\260/\320\237\320\260\321\203\320\267\320\260.feature"
@@ -0,0 +1,5 @@
+# language: ru
+Функционал: Сделать паузу в указанное число секунд
+
+Сценарий: Пауза
+    Когда Пауза 1
diff --git a/tests/xunits/vanessa.os b/tests/xunits/vanessa.os
new file mode 100644
index 00000000..f603a438
--- /dev/null
+++ b/tests/xunits/vanessa.os
@@ -0,0 +1,76 @@
+#Использовать asserts
+#Использовать tempfiles
+#Использовать "utils"
+#Использовать "..\.."
+
+#Область ОписаниеПеременных
+
+Перем НакопленныеВременныеФайлы; // фиксация накопленных времнных файлов для сброса
+
+#КонецОбласти
+
+#Область СлужебныйПрограммныйИнтерфейс
+
+&Тест
+Процедура ТестДолжен_ВыполнитьФичуПаузаIbcmd() Экспорт
+
+	// Дано
+	Исполнитель = Новый Тест_ИсполнительКоманд("vanessa");
+	Исполнитель.УстановитьКонтекстПустаяИБ();
+
+	ФайлНастроек = Исполнитель.ПутьТестовыхДанных("feature/vb-conf.json");
+	ПутьКФичам = Исполнитель.ПутьТестовыхДанных("feature/Пауза");
+
+	Исполнитель.ДобавитьПараметр("--vanessasettings", ФайлНастроек);
+	Исполнитель.ДобавитьПараметр("--path", ПутьКФичам);
+	Исполнитель.ДобавитьФлаг("--ibsrv");
+	
+	// Когда
+	Исполнитель.ВыполнитьКоманду();
+
+	// Тогда
+	Исполнитель.ОжидаемЧтоВыводСодержит("Используется ibsrv");
+	Исполнитель.ОжидаемЧтоВыводСодержит("Все фичи/сценарии выполнены!");
+		
+КонецПроцедуры
+
+&Тест
+Процедура ТестДолжен_ВыполнитьНереализованнуюФичуIbcmd() Экспорт
+
+	// Дано
+	Исполнитель = Новый Тест_ИсполнительКоманд("vanessa");
+	Исполнитель.УстановитьКонтекстПустаяИБ();
+
+	ФайлНастроек = Исполнитель.ПутьТестовыхДанных("feature/vb-conf.json");
+	ПутьКФичам = Исполнитель.ПутьТестовыхДанных("feature/Без реализации шага");
+
+	Исполнитель.ДобавитьПараметр("--vanessasettings", ФайлНастроек);
+	Исполнитель.ДобавитьПараметр("--path", ПутьКФичам);
+	Исполнитель.ДобавитьФлаг("--ibsrv");
+	
+	// Когда
+	Исполнитель.ВыполнитьКоманду();
+
+	// Тогда
+	Исполнитель.ОжидаемЧтоВыводСодержит("Используется ibsrv");
+	Исполнитель.ОжидаемЧтоВыводСодержит("Пустой адрес снипета у шага: Когда я выполняю несуществующий шаг");
+			
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область ОбработчикиСобытий
+
+Процедура ПередЗапускомТеста() Экспорт
+	
+	НакопленныеВременныеФайлы = ВременныеФайлы.Файлы();
+	
+КонецПроцедуры
+
+Процедура ПослеЗапускаТеста() Экспорт
+	
+	ВременныеФайлы.УдалитьНакопленныеВременныеФайлы(НакопленныеВременныеФайлы);
+	
+КонецПроцедуры
+
+#КонецОбласти

From a1d082f13e331137a3fcc0ac6a4410c1f875e10e Mon Sep 17 00:00:00 2001
From: Yuri Goncharuk <yukon39@gmail.com>
Date: Wed, 13 Nov 2024 17:28:27 +0200
Subject: [PATCH 05/32] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?=
 =?UTF-8?q?=D0=B5=D0=BD=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80?=
 =?UTF-8?q?=20--ibsrv=20=D0=B4=D0=BB=D1=8F=20=D0=BA=D0=BE=D0=BC=D0=B0?=
 =?UTF-8?q?=D0=BD=D0=B4=D1=8B=20run?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ...20\270\321\217\321\202\320\270\321\217.os" | 39 +++++++--
 tests/xunits/run.os                           | 87 +++++++++++++++++++
 2 files changed, 120 insertions(+), 6 deletions(-)
 create mode 100644 tests/xunits/run.os

diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\222\320\240\320\265\320\266\320\270\320\274\320\265\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\222\320\240\320\265\320\266\320\270\320\274\320\265\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\321\217.os"
index bf23e46f..a10fb1c9 100644
--- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\222\320\240\320\265\320\266\320\270\320\274\320\265\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\321\217.os"
+++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\222\320\240\320\265\320\266\320\270\320\274\320\265\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\321\217.os"
@@ -1,6 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 //
-// Выполнение команды/действия в 1С:Предприятие в режиме тонкого/толстого клиента с передачей запускаемых обработок и параметров
+// Выполнение команды/действия в 1С:Предприятие в режиме тонкого/толстого клиента с передачей 
+// запускаемых обработок и параметров
 //
 // TODO добавить фичи для проверки команды
 //
@@ -11,13 +12,13 @@
 //
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-#Использовать logos
-#Использовать v8runner
+#Область ОписаниеПеременных
 
 Перем Лог;
 
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Прикладной интерфейс
+#КонецОбласти
+
+#Область ОбработчикиСобытий
 
 // Регистрация команды и ее аргументов/ключей
 //
@@ -55,6 +56,9 @@
 		|  Значение ""2"" означает выполнение запуска с предупреждением.
 		|  Любое другое значение эквивалентно отсутствию файла.");
 
+	Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--ibsrv",
+		"Запуск команды с использованием утилиты ibsrv");
+
 	Парсер.ДобавитьКоманду(ОписаниеКоманды);
 
 КонецПроцедуры // ЗарегистрироватьКоманду
@@ -65,9 +69,25 @@
 //   ПараметрыКоманды - Соответствие - Соответствие ключей командной строки и их значений
 //   ДополнительныеПараметры - Соответствие - дополнительные параметры (необязательно)
 //
+//  Возвращаемое значение:
+//   Число - Код возврата команды
+//
 Функция ВыполнитьКоманду(Знач ПараметрыКоманды, Знач ДополнительныеПараметры = Неопределено) Экспорт
 
-	Лог = ДополнительныеПараметры.Лог;
+	Лог = ОбщиеМетоды.ЛогКоманды(ДополнительныеПараметры);
+
+	ПараметрыАвтономногоСервера = ОбщиеМетоды.НовыеПараметрыАвтономногоСервера();
+
+	Действие = Новый Действие(ЭтотОбъект, "ЗапуститьВРежимеПредприятия");
+	Возврат ОбщиеМетоды.ВыполнитьКомандуСУчетомIbsrv(ПараметрыКоманды, Действие, ПараметрыАвтономногоСервера);
+
+КонецФункции
+
+#КонецОбласти
+
+#Область СлужебныйПрограммныйИнтерфейс
+
+Функция ЗапуститьВРежимеПредприятия(ПараметрыКоманды) Экспорт
 
 	// TODO отрефакторить получение ЗапускатьТолстыйКлиент
 	ЗапускатьТолстыйКлиент = ОбщиеМетоды.УказанПараметрТолстыйКлиент(ПараметрыКоманды["--ordinaryapp"], Лог);
@@ -115,8 +135,13 @@
 	МенеджерКонфигуратора.Деструктор();
 
 	Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех;
+
 КонецФункции // ВыполнитьКоманду
 
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
 Функция КомандаЗапуска(Знач ПараметрКомандаЗапуска, Знач ПутьКФайлуСтатусаВыполнения)
 
 	КомандыЗапуска = Новый Массив;
@@ -148,3 +173,5 @@
 Функция Заменить_runnerRoot_на_КаталогVanessaRunner(Знач ИсходнаяСтрока)
 	Возврат СтрЗаменить(ИсходнаяСтрока, "$runnerRoot", ОбщиеМетоды.КаталогПроекта());
 КонецФункции
+
+#КонецОбласти
diff --git a/tests/xunits/run.os b/tests/xunits/run.os
new file mode 100644
index 00000000..c778a9fb
--- /dev/null
+++ b/tests/xunits/run.os
@@ -0,0 +1,87 @@
+#Использовать asserts
+#Использовать tempfiles
+#Использовать "utils"
+#Использовать "..\.."
+
+#Область ОписаниеПеременных
+
+Перем НакопленныеВременныеФайлы; // фиксация накопленных времнных файлов для сброса
+
+#КонецОбласти
+
+#Область СлужебныйПрограммныйИнтерфейс
+
+&Тест
+Процедура ТестДолжен_ЗапуститьОбработкуЗакрытьПредприятиеIbsrv() Экспорт
+
+	// Дано
+	Исполнитель = Новый Тест_ИсполнительКоманд("run");
+	Исполнитель.УстановитьКонтекстПустаяИБ();
+	Исполнитель.ДобавитьПараметр("--execute", "$runnerRoot/epf/ЗакрытьПредприятие.epf");
+	Исполнитель.ДобавитьФлаг("--ibsrv");
+	
+	// Когда
+	Исполнитель.ВыполнитьКоманду();
+
+	// Тогда
+	Исполнитель.ОжидаемЧтоВыводСодержит("Используется ibsrv");
+	Исполнитель.ОжидаемЧтоВыводСодержит("Выполнение команды/действия в режиме 1С:Предприятие завершено.");
+		
+КонецПроцедуры
+
+&Тест
+Процедура ТестДолжен_ЗапуститьСНевернымИменемПользователяIbsrv() Экспорт
+
+	// Дано
+	Исполнитель = Новый Тест_ИсполнительКоманд("run");
+	Исполнитель.УстановитьКонтекстПустаяИБ();
+	Исполнитель.ДобавитьПараметр("--execute", "$runnerRoot/epf/ЗакрытьПредприятие.epf");
+	Исполнитель.ДобавитьФлаг("--ibsrv");
+	
+	// Когда
+	Исполнитель.ДобавитьПараметр("--db-user", "НеизвестныйПользователь");
+
+	// Тогда
+	Ожидаем.Что(Исполнитель)
+		.Метод("ВыполнитьКоманду")
+		.ВыбрасываетИсключение("Пользователь ИБ не идентифицирован");
+	Исполнитель.ОжидаемЧтоВыводСодержит("Используется ibsrv");
+		
+КонецПроцедуры
+
+&Тест
+Процедура ТестДолжен_ЗапуститьСОткрытиемНавигационнойСсылкиIbsrv() Экспорт
+
+	// Дано
+	Исполнитель = Новый Тест_ИсполнительКоманд("run");
+	Исполнитель.УстановитьКонтекстПустаяИБ();
+	Исполнитель.ДобавитьПараметр("--execute", "$runnerRoot/epf/ЗакрытьПредприятие.epf");
+	Исполнитель.ДобавитьПараметр("--url", "e1cib/navigationpoint/startpage");
+	Исполнитель.ДобавитьФлаг("--ibsrv");
+	
+	// Когда
+	Исполнитель.ВыполнитьКоманду();
+
+	// Тогда
+	Исполнитель.ОжидаемЧтоВыводСодержит("Используется ibsrv");
+	Исполнитель.ОжидаемЧтоВыводСодержит("Выполнение команды/действия в режиме 1С:Предприятие завершено.");
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область ОбработчикиСобытий
+
+Процедура ПередЗапускомТеста() Экспорт
+	
+	НакопленныеВременныеФайлы = ВременныеФайлы.Файлы();
+	
+КонецПроцедуры
+
+Процедура ПослеЗапускаТеста() Экспорт
+	
+	ВременныеФайлы.УдалитьНакопленныеВременныеФайлы(НакопленныеВременныеФайлы);
+	
+КонецПроцедуры
+
+#КонецОбласти

From 43df4f4429042f51d9b4a50f88db3d28b602e67d Mon Sep 17 00:00:00 2001
From: Yuri Goncharuk <yukon39@gmail.com>
Date: Wed, 13 Nov 2024 17:28:52 +0200
Subject: [PATCH 06/32] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?=
 =?UTF-8?q?=D0=B5=D0=BD=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80?=
 =?UTF-8?q?=20--ibsrv=20=D0=B4=D0=BB=D1=8F=20=D0=BA=D0=BE=D0=BC=D0=B0?=
 =?UTF-8?q?=D0=BD=D0=B4=D1=8B=20designer?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ...21\200\320\260\321\202\320\276\321\200.os" | 31 +++++++++---
 tests/xunits/designer.os                      | 48 +++++++++++++++++++
 2 files changed, 73 insertions(+), 6 deletions(-)
 create mode 100644 tests/xunits/designer.os

diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200.os"
index f5d0e92f..15d27b5a 100644
--- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200.os"
+++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200.os"
@@ -9,13 +9,13 @@
 //
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-#Использовать logos
-#Использовать v8runner
+#Область ОписаниеПеременных
 
 Перем Лог;
 
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Прикладной интерфейс
+#КонецОбласти
+
+#Область ОбработчикиСобытий
 
 // Регистрация команды и ее аргументов/ключей
 //
@@ -39,6 +39,9 @@
 	Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-user", "Пользователь хранилища");
 	Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-pwd", "Пароль");
 
+	Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--ibsrv",
+		"Запуск команды с использованием утилиты ibsrv");
+
 	Парсер.ДобавитьКоманду(ОписаниеКоманды);
 
 КонецПроцедуры // ЗарегистрироватьКоманду
@@ -51,7 +54,21 @@
 //
 Функция ВыполнитьКоманду(Знач ПараметрыКоманды, Знач ДополнительныеПараметры = Неопределено) Экспорт
 
-	Лог = ДополнительныеПараметры.Лог;
+	Лог = ОбщиеМетоды.ЛогКоманды(ДополнительныеПараметры);
+
+	ПараметрыАвтономногоСервера = ОбщиеМетоды.НовыеПараметрыАвтономногоСервера();
+	ПараметрыАвтономногоСервера.ИспользоватьПрямоеСоединение = Истина;
+
+	Действие = Новый Действие(ЭтотОбъект, "ЗапуститьКонфигуратор");
+	Возврат ОбщиеМетоды.ВыполнитьКомандуСУчетомIbsrv(ПараметрыКоманды, Действие, ПараметрыАвтономногоСервера);
+
+КонецФункции // ВыполнитьКоманду
+
+#КонецОбласти
+
+#Область СлужебныйПрограммныйИнтерфейс
+
+Функция  ЗапуститьКонфигуратор(ПараметрыКоманды) Экспорт
 
 	ДанныеПодключения = ПараметрыКоманды["ДанныеПодключения"];
 
@@ -87,4 +104,6 @@
 	МенеджерКонфигуратора.Деструктор();
 
 	Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех;
-КонецФункции // ВыполнитьКоманду
+КонецФункции
+
+#КонецОбласти
diff --git a/tests/xunits/designer.os b/tests/xunits/designer.os
new file mode 100644
index 00000000..c9466234
--- /dev/null
+++ b/tests/xunits/designer.os
@@ -0,0 +1,48 @@
+#Использовать asserts
+#Использовать tempfiles
+#Использовать "utils"
+#Использовать "..\.."
+
+#Область ОписаниеПеременных
+
+Перем НакопленныеВременныеФайлы; // фиксация накопленных времнных файлов для сброса
+
+#КонецОбласти
+
+#Область СлужебныйПрограммныйИнтерфейс
+
+&Тест
+Процедура ТестДолжен_ВыгрузитьИнформационноюБазуВФайлIbcmd() Экспорт
+
+	// Дано
+	Исполнитель = Новый Тест_ИсполнительКоманд("designer");
+	Исполнитель.УстановитьКонтекстПустаяИБ();
+	Исполнитель.ДобавитьПараметр("--additional", """/DumpDBCfgList -AllExtensions""");
+	Исполнитель.ДобавитьФлаг("--ibsrv");
+	
+	// Когда
+	Исполнитель.ВыполнитьКоманду();
+
+	// Тогда
+	Исполнитель.ОжидаемЧтоВыводСодержит("Используется ibsrv");
+	Исполнитель.ОжидаемЧтоВыводСодержит("Работа Конфигуратора завершена");
+		
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область ОбработчикиСобытий
+
+Процедура ПередЗапускомТеста() Экспорт
+	
+	НакопленныеВременныеФайлы = ВременныеФайлы.Файлы();
+	
+КонецПроцедуры
+
+Процедура ПослеЗапускаТеста() Экспорт
+	
+	ВременныеФайлы.УдалитьНакопленныеВременныеФайлы(НакопленныеВременныеФайлы);
+	
+КонецПроцедуры
+
+#КонецОбласти

From 5f1a43f927c70a21cd5da4e785f44bcad5bef413 Mon Sep 17 00:00:00 2001
From: Yuri Goncharuk <yukon39@gmail.com>
Date: Wed, 13 Nov 2024 17:31:56 +0200
Subject: [PATCH 07/32] =?UTF-8?q?=D0=A3=D0=BB=D1=83=D1=87=D1=88=D0=B5?=
 =?UTF-8?q?=D0=BD=D0=B0=20=D0=B4=D0=B8=D0=B0=D0=B3=D0=BD=D0=BE=D1=81=D1=82?=
 =?UTF-8?q?=D0=B8=D0=BA=D0=B0=20=D0=B2=D1=8B=D0=BF=D0=BE=D0=BB=D0=BD=D0=B5?=
 =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ...21\200\321\203\320\266\320\265\320\275\320\270\321\217.os" | 4 ++++
 ...21\210\320\270\321\200\320\265\320\275\320\270\320\271.os" | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\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\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\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\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os"
index c0160c8e..301b7393 100644
--- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\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\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os"
+++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\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\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os"
@@ -245,6 +245,8 @@
 
 Процедура ОбновитьКонфигурациюБД(МенеджерСборки)
 
+	Лог.Информация("Обновление конфигурации базы данных...");
+
 	Попытка
 		Если РежимРазработчика = Ложь Или РежимыРеструктуризации.Первый Или РежимыРеструктуризации.Второй Тогда
 			ОбщиеМетоды.ОбновитьКонфигурациюБД(МенеджерСборки,
@@ -255,6 +257,8 @@
 		ВызватьИсключение;
 	КонецПопытки;
 
+	Лог.Информация("Обновление конфигурации базы данных завершено.");
+
 КонецПроцедуры
 
 Процедура ДобавитьБазуВСписокБаз(НеДобавлятьВСписокБаз, ВерсияПлатформы, СтрокаПодключения)
diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\261\320\276\321\200\320\272\320\260\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\271.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\261\320\276\321\200\320\272\320\260\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\271.os"
index 3ee241d9..b5f29a09 100644
--- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\261\320\276\321\200\320\272\320\260\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\271.os"
+++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\261\320\276\321\200\320\272\320\260\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\271.os"
@@ -61,7 +61,7 @@
 		МенеджерСборки.Деструктор();
 		ВызватьИсключение ПодробноеПредставлениеОшибки(ИнформацияОбОшибке);
 	КонецПопытки;
-	Лог.Информация("Сборка расширения из исходников завершена.");
+	Лог.Информация("Сборка расширения %1 из исходников завершена.", ИмяРасширения);
 
 	МенеджерСборки.Деструктор();
 

From 82c14c9b2926356971f65ff897af7ed915cacf29 Mon Sep 17 00:00:00 2001
From: Yuri Goncharuk <yukon39@gmail.com>
Date: Wed, 13 Nov 2024 17:33:38 +0200
Subject: [PATCH 08/32] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?=
 =?UTF-8?q?=D0=B5=D0=BD=D1=8B=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82?=
 =?UTF-8?q?=D1=80=D1=8B=20=D0=B4=D0=BB=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE?=
 =?UTF-8?q?=D1=82=D1=8B=20=D1=81=20ibsrv=20=D0=B2=20=D1=81=D1=85=D0=B5?=
 =?UTF-8?q?=D0=BC=D1=83=20=D0=BD=D0=B0=D1=81=D1=82=D1=80=D0=BE=D0=B5=D0=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 vanessa-runner-schema.json | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/vanessa-runner-schema.json b/vanessa-runner-schema.json
index ef5773ab..5e1e87a5 100644
--- a/vanessa-runner-schema.json
+++ b/vanessa-runner-schema.json
@@ -356,6 +356,13 @@
                     "id": "/properties/default/properties/--additional",
                     "title": "The --additional Schema",
                     "type": "string"
+                },
+                "--ibsrv": {
+                    "default": false,
+                    "description": "Запуск команды с использованием утилиты ibsrv.",
+                    "id": "/properties/vanessa/properties/--ibsrv",
+                    "title": "The --ibsrv Schema",
+                    "type": "boolean"
                 }
             },
             "type": "object"
@@ -539,6 +546,13 @@
                     "id": "/properties/default/properties/--additional",
                     "title": "The --additional Schema",
                     "type": "string"
+                },
+                "--ibsrv": {
+                    "default": false,
+                    "description": "Запуск команды с использованием утилиты ibsrv.",
+                    "id": "/properties/xunit/properties/--ibsrv",
+                    "title": "The --ibsrv Schema",
+                    "type": "boolean"
                 }
             },
             "type": "object"

From 49b0ae30686766aa7434ec55e3478fe6e343a6da Mon Sep 17 00:00:00 2001
From: Yuri Goncharuk <yukon39@gmail.com>
Date: Wed, 13 Nov 2024 17:46:19 +0200
Subject: [PATCH 09/32] =?UTF-8?q?=D0=94=D0=BE=D1=80=D0=B0=D0=B1=D0=BE?=
 =?UTF-8?q?=D1=82=D0=B0=D0=BD=D1=8B=20=D1=82=D0=B5=D1=81=D1=82=D1=8B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 tests/xunits/compileext.os | 4 ++--
 tests/xunits/designer.os   | 2 +-
 tests/xunits/run.os        | 2 +-
 tests/xunits/vanessa.os    | 2 +-
 tests/xunits/xunit.os      | 2 +-
 5 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/tests/xunits/compileext.os b/tests/xunits/compileext.os
index ee0feefc..3b49beb5 100644
--- a/tests/xunits/compileext.os
+++ b/tests/xunits/compileext.os
@@ -30,7 +30,7 @@
 
 	// Тогда
 	Исполнитель.ОжидаемЧтоВыводСодержит("Используется ibcmd");
-	Исполнитель.ОжидаемЧтоВыводСодержит("Сборка расширения из исходников завершена.");
+	Исполнитель.ОжидаемЧтоВыводСодержит("Сборка расширения testNew из исходников завершена.");
 		
 КонецПроцедуры
 
@@ -50,4 +50,4 @@
 	
 КонецПроцедуры
 
-#КонецОбласти
\ No newline at end of file
+#КонецОбласти
diff --git a/tests/xunits/designer.os b/tests/xunits/designer.os
index c9466234..ef9c44f2 100644
--- a/tests/xunits/designer.os
+++ b/tests/xunits/designer.os
@@ -1,7 +1,7 @@
 #Использовать asserts
 #Использовать tempfiles
 #Использовать "utils"
-#Использовать "..\.."
+#Использовать "../.."
 
 #Область ОписаниеПеременных
 
diff --git a/tests/xunits/run.os b/tests/xunits/run.os
index c778a9fb..8b7acccd 100644
--- a/tests/xunits/run.os
+++ b/tests/xunits/run.os
@@ -1,7 +1,7 @@
 #Использовать asserts
 #Использовать tempfiles
 #Использовать "utils"
-#Использовать "..\.."
+#Использовать "../.."
 
 #Область ОписаниеПеременных
 
diff --git a/tests/xunits/vanessa.os b/tests/xunits/vanessa.os
index f603a438..3a274d87 100644
--- a/tests/xunits/vanessa.os
+++ b/tests/xunits/vanessa.os
@@ -1,7 +1,7 @@
 #Использовать asserts
 #Использовать tempfiles
 #Использовать "utils"
-#Использовать "..\.."
+#Использовать "../.."
 
 #Область ОписаниеПеременных
 
diff --git a/tests/xunits/xunit.os b/tests/xunits/xunit.os
index 65e91a6b..91b8feed 100644
--- a/tests/xunits/xunit.os
+++ b/tests/xunits/xunit.os
@@ -1,7 +1,7 @@
 #Использовать asserts
 #Использовать tempfiles
 #Использовать "utils"
-#Использовать "..\.."
+#Использовать "../.."
 
 #Область ОписаниеПеременных
 

From 95feb682a77d6bd11d802ebed37b9bb8513fd1a2 Mon Sep 17 00:00:00 2001
From: Yuri Goncharuk <yukon39@gmail.com>
Date: Thu, 14 Nov 2024 12:19:30 +0200
Subject: [PATCH 10/32] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?=
 =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B7=D0=B0=D0=BC=D0=B5=D1=87?=
 =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D0=B9=20=D0=A1=D0=BE=D0=BD=D0=B0=D1=80=D0=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ...20\266\320\265\320\275\320\270\321\217.os" | 16 ++--
 ...20\266\320\265\320\275\320\270\321\217.os" | 22 +++--
 ...21\202\320\260\320\262\320\272\320\270.os" | 34 ++++---
 ...5\320\264\320\266\320\265\321\200Ibcmd.os" | 93 +++++++++++++++++--
 ...20\260\321\202\320\276\321\200\320\260.os" |  7 ++
 ...20\266\320\265\320\275\320\270\321\217.os" | 15 ++-
 ...20\265\321\202\320\276\320\264\321\213.os" |  1 -
 ...0\276\320\264\321\203\320\273\321\214.xml" |  4 +-
 ...\276\320\264\321\203\320\273\321\2141.xml" |  6 +-
 ...20\264\320\233\320\276\320\263\320\260.os" | 15 ++-
 ...20\276\320\274\320\260\320\275\320\264.os" | 10 +-
 11 files changed, 165 insertions(+), 58 deletions(-)

diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\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\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\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\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os"
index 98eb192d..3604e941 100644
--- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\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\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os"
+++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\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\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os"
@@ -10,16 +10,16 @@
 #Область ОписаниеПеременных
 
 Перем Лог; // Экземпляр логгера
-Перем КорневойПутьПроекта;
+Перем КорневойПутьПроекта; // Путь к корневой папке проекта
 
 // Параметры команды
-Перем ДанныеПодключения;
-Перем ПараметрыХранилища;
-Перем РежимыРеструктуризации;
-Перем РежимРазработчика;
-Перем ПутьКФайлуКонфигурации;
-Перем ПутьКИсходникам;
-Перем ПутьКФайлуВыгрузки;
+Перем ДанныеПодключения; // Данные подключения к ИБ
+Перем ПараметрыХранилища; // Параметры подключения к хранилищу
+Перем РежимыРеструктуризации; // Доступные режимы реструктуризации
+Перем РежимРазработчика; // Режим разработчика
+Перем ПутьКФайлуКонфигурации; // Путь к файлу конфигурации
+Перем ПутьКИсходникам; // Путь к исходным файлам кофнигурации
+Перем ПутьКФайлуВыгрузки; // Путь к файлу выгрузки информационной базы
 
 #КонецОбласти
 
diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os"
index d9f9bfb9..fd1216bf 100644
--- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os"
+++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os"
@@ -6,20 +6,22 @@
 // oscript-app-template (C) EvilBeaver
 //
 ///////////////////////////////////////////////////////////////////
+
 #Использовать gitrunner
+
 #Область ОписаниеПеременных
 
 Перем Лог; // Экземпляр логгера
-Перем КорневойПутьПроекта;
-
-Перем ДанныеПодключения;
-Перем ПараметрыХранилища;
-Перем РежимыРеструктуризации;
-Перем РежимРазработчика;
-Перем ПутьКИсходникам;
-Перем ПутьКФайлуВыгрузки;
-Перем ИнкрементальнаяЗагрузкаGit;
-Перем СниматьСПоддержки;
+Перем КорневойПутьПроекта; // Путь к корневой папке проекта
+
+Перем ДанныеПодключения; // Данные подключения к ИБ
+Перем ПараметрыХранилища; // Параметры подключения к хранилищу
+Перем РежимыРеструктуризации; // Доступные режимы реструктуризации
+Перем РежимРазработчика; // Режим разработчика
+Перем ПутьКИсходникам; // Путь к исходным файлам кофнигурации
+Перем ПутьКФайлуВыгрузки; // Путь к файлу выгрузки информационной базы
+Перем ИнкрементальнаяЗагрузкаGit; // Использовать инкрементальную загрузку из репозитория git
+Перем СниматьСПоддержки; // Снимать конфигурацию с поддержки перед загрузкой
 
 #КонецОбласти
 
diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\276\320\267\320\264\320\260\321\202\321\214\320\244\320\260\320\271\320\273\320\237\320\276\321\201\321\202\320\260\320\262\320\272\320\270.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\276\320\267\320\264\320\260\321\202\321\214\320\244\320\260\320\271\320\273\320\237\320\276\321\201\321\202\320\260\320\262\320\272\320\270.os"
index b7c05dc4..289117ce 100644
--- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\276\320\267\320\264\320\260\321\202\321\214\320\244\320\260\320\271\320\273\320\237\320\276\321\201\321\202\320\260\320\262\320\272\320\270.os"
+++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\276\320\267\320\264\320\260\321\202\321\214\320\244\320\260\320\271\320\273\320\237\320\276\321\201\321\202\320\260\320\262\320\272\320\270.os"
@@ -9,21 +9,21 @@
 //
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-#Использовать logos
-#Использовать v8runner
+#Область ОписаниеПеременных
 
-Перем Лог;
-Перем МенеджерКонфигуратора;
-Перем МенеджерВерсий;
+Перем Лог; // Экземпляр логгера
+Перем МенеджерКонфигуратора; // Экземпляр менеджера работы с конфигурацией
+Перем МенеджерВерсий; // Эксземпляр менеджера работы с версиями
 
 // Параметры команды
-Перем ИмяФайлаПоставки;
-Перем КаталогИсходников;
-Перем НомерСборки;
-Перем ЗагружатьВТекущую;
+Перем ИмяФайлаПоставки; // Путь к файлу конфигурации поставки 
+Перем КаталогИсходников; // Каталог с исходниками конфигурации
+Перем НомерСборки; // Текущий номер сборки 
+Перем ЗагружатьВТекущую; // Флаг загрузки в текущую информационную базу
 
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Прикладной интерфейс
+#КонецОбласти
+
+#Область ОбработчикиСобытий
 
 Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт
 
@@ -41,7 +41,8 @@
 	Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--src", "Каталог с исходниками конфигурации");
 	Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--build-number", "Номер сборки");
 	Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--current", "Флаг загрузки в указанную базу или -с");
-	Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "-c", "Флаг загрузки в указанную базу, краткая форма от --current");
+	Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "-c", 
+		"Флаг загрузки в указанную базу, краткая форма от --current");
 
 	Парсер.ДобавитьКоманду(ОписаниеКоманды);
 
@@ -53,6 +54,9 @@
 //   ПараметрыКоманды - Соответствие - Соответствие ключей командной строки и их значений
 //   ДополнительныеПараметры - Соответствие - дополнительные параметры (необязательно)
 //
+//  Возвращаемое значение:
+//   Число - Код возврата команды.
+//
 Функция ВыполнитьКоманду(Знач ПараметрыКоманды, Знач ДополнительныеПараметры = Неопределено) Экспорт
 
 	Лог = ДополнительныеПараметры.Лог;
@@ -86,6 +90,10 @@
 
 КонецФункции // ВыполнитьКоманду
 
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
 Процедура СоздатьФайлПоставки()
 
 	Если ЗначениеЗаполнено(КаталогИсходников) Тогда
@@ -119,3 +127,5 @@
 	КонецЦикла;
 
 КонецПроцедуры
+
+#КонецОбласти
diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200Ibcmd.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200Ibcmd.os"
index 79eee776..7aa231fb 100644
--- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200Ibcmd.os"
+++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200Ibcmd.os"
@@ -43,6 +43,13 @@
 
 КонецПроцедуры
 
+// Создать новую файловую базу из файла выгрузки или пустую.
+//
+// Параметры:
+//   КаталогБазы - Строка - Каталог информационной базы
+//   ПутьКШаблону - Строка - Путь к файлу выгрузки конфигурации.
+//   ИмяБазыВСписке - Строка - Имя базы для показа в списке баз стартера 1С.
+//
 Процедура СоздатьФайловуюБазу(Знач КаталогБазы, Знач ПутьКШаблону = "", Знач ИмяБазыВСписке = "") Экспорт
 
 	ОбщиеМетоды.ОбеспечитьПустойКаталог(Новый Файл(КаталогБазы));
@@ -55,6 +62,14 @@
 
 КонецПроцедуры
 
+// Создать информационную базу из исходников
+//
+// Параметры:
+//   ВходнойКаталог - Строка - Каталог с исходниками конфигурации
+//   СписокФайловДляЗагрузки - Строка, Массив из Строка - Файлы для инкрементальной загрузки.
+//   СниматьСПоддержки - Булево - Снимать конфигурацию с поддержки перед загрузкой.
+//   ОбновитьФайлВерсий - Булево - Обновлять файл версий метаданных.
+//
 Процедура СобратьИзИсходниковТекущуюКонфигурацию(Знач ВходнойКаталог,
 	Знач СписокФайловДляЗагрузки = "", СниматьСПоддержки = Ложь, ОбновитьФайлВерсий = Истина) Экспорт
 
@@ -88,7 +103,13 @@
 //  ПутьКВыгружаемомуФайлуСДанными - Строка - Путь к результату - выгружаемому файлу с данными (*.dt)
 //
 Процедура ВыгрузитьИнфобазуВФайл(Знач ПутьКВыгружаемомуФайлуСДанными) Экспорт
+
+	Лог.Информация("Запускаю выгрузку информационной базы в файл");
+	
 	УправлениеИБ.ВыгрузитьДанныеИБ(ПутьКВыгружаемомуФайлуСДанными);
+
+	Лог.Информация("Выгрузка в файл завершена.");
+
 КонецПроцедуры
 
 // Загружает информационную базу из файла
@@ -98,59 +119,101 @@
 //  КоличествоЗаданий - Число - Количество заданий (потоков) загрузки из файла с данными
 //
 Процедура ЗагрузитьИнфобазуИзФайла(Знач ПутьКЗагружаемомуФайлуСДанными, Знач КоличествоЗаданий = 0) Экспорт
+	
+	Лог.Информация("Запускаю загрузку информационной базы из файла");
+
 	УправлениеИБ.ЗагрузитьДанныеИБ(ПутьКЗагружаемомуФайлуСДанными);
+
+	Лог.Информация("Загрузка из файла завершена.");
+
 КонецПроцедуры
 
+// Загружает файл конфигурации в текущую базу данных.
+//
+// Параметры:
+//   ПутьКФайлу - Строка - Путь к файлу *.cf
+//   СниматьСПоддержки - Булево - Перед загрузкой снять текущую конфигурацию ИБ с поддержки.
+//
 Процедура ЗагрузитьФайлКонфигурации(Знач ПутьКФайлу, Знач СниматьСПоддержки = Истина) Экспорт
 
 	ИмяРасширения = "";
 
+	Лог.Информация("Загружаем файл конфигурации %1", ПутьКФайлу);
+
 	Если СниматьСПоддержки Тогда
 		УправлениеИБ.СнятьСПоддержки();
    	КонецЕсли;
 
 	УправлениеИБ.ЗагрузитьКонфигурацию(ПутьКФайлу, ИмяРасширения);
 
+	Лог.Информация("Загрузка конфигурации из файла cf успешно завершена!");
+
 КонецПроцедуры
 
+// Обновить конфигурацию базы данных
+//
+// Параметры:
+//   ДинамическоеОбновление - Булево - Выполнять динамическое обновление.
+//
 Процедура ОбновитьКонфигурациюБазыДанных(ДинамическоеОбновление = Ложь) Экспорт
 
 	Если ДинамическоеОбновление Тогда
-		РежимДинамическогоОбновления = "disable";
-	Иначе
 		РежимДинамическогоОбновления = "auto";
+	Иначе
+		РежимДинамическогоОбновления = "disable";
 	КонецЕсли;
-	ЗавершатьСеансы = "force";
 
+	ЗавершатьСеансы = "force";
 	ИмяРасширения = "";
+
+	Лог.Информация("Запускаю обновление конфигурации БД");
+
 	УправлениеИБ.ОбновитьКонфигурациюБазыДанных(ИмяРасширения, РежимДинамическогоОбновления, ЗавершатьСеансы);
 
 	Лог.Информация("Обновление конфигурации БД завершено.");
 
 КонецПроцедуры
 
-// ОбновитьРасширение
+// Обновить конфигурацию базы данных для расширения
 //
 // Параметры:
-//   ИмяРасширения - Строка - <описание параметра>
+//   ИмяРасширения - Строка - имя расширения
 //
 Процедура ОбновитьРасширение(Знач ИмяРасширения) Экспорт
 
 	РежимДинамическогоОбновления = "disable";
 	ЗавершатьСеансы = "force";
 
+	Лог.Информация("Запускаю обновление конфигурации БД для расширения %1", ИмяРасширения);
+
 	УправлениеИБ.ОбновитьКонфигурациюБазыДанных(ИмяРасширения, РежимДинамическогоОбновления, ЗавершатьСеансы);
+	
+	Лог.Информация("Обновление конфигурации БД для расширения %1 завершено.", ИмяРасширения);
+
 КонецПроцедуры
 
+// Вывести в консоль список всех расширений информационной базы.
+//
 Процедура ПоказатьСписокВсехРасширенийКонфигурации() Экспорт
+
 	СписокРасширений = УправлениеИБ.СписокРасширений();
 	Лог.Информация("Список расширений конфигурации:%2%1", СписокРасширений, Символы.ПС);
+
 КонецПроцедуры
 
+// Выгружает файл конфигурации из ИБ
+//
+// Параметры:
+//   ПутьКНужномуФайлуКонфигурации - Строка - Путь к выгружаемому файлу конфигурации (*.cf)
+//
 Процедура ВыгрузитьКонфигурациюВФайл(Знач ПутьКНужномуФайлуКонфигурации) Экспорт
 
+	Лог.Информация("Запускаю выгрузку конфигурации в файл");
+
 	УправлениеИБ.ВыгрузитьКонфигурациюВФайл(ПутьКНужномуФайлуКонфигурации);
 
+	Лог.Информация("Выгрузка в файл завершена.");
+
 КонецПроцедуры
 
 // Разбор текущей конфигураций на исходники штатной выгрузкой 1С
@@ -159,7 +222,8 @@
 //   КаталогВыгрузки - Строка - Путь к каталогу выгрузки
 //   ФайлВерсии - Строка - Путь к файлу версии
 //   ТолькоИзмененные - Булево - Выгружать только измененные файлы для ускорения выгрузки
-//   ИспользоватьПереименования - Булево - Переименовывать файлы в удобные имена и раскладывать по папкам согласно иерархии метаданных
+//   ИспользоватьПереименования - Булево - Переименовывать файлы в удобные имена и раскладывать 
+//		по папкам согласно иерархии метаданных
 //
 Процедура РазобратьНаИсходникиТекущуюКонфигурацию(КаталогВыгрузки, Знач ФайлВерсии = "",
 	Знач ТолькоИзмененные = Истина,
@@ -209,7 +273,8 @@
 //  ФайлКонфигурации - Строка - Путь к источнику - выгружаемому файлу конфигурации (*.cf)
 //  ВыходнойКаталог - Строка - Путь к каталогу выгрузки
 //  ФайлВерсии - Строка - Путь к файлу версии
-//  ИспользоватьПереименования - Булево - Переименовывать файлы в удобные имена и раскладывать по папкам согласно иерархии метаданных
+//  ИспользоватьПереименования - Булево - Переименовывать файлы в удобные имена и раскладывать 
+//		по папкам согласно иерархии метаданных
 //
 Процедура ВыгрузитьКонфигурациюВИсходники(Знач ФайлКонфигурации, Знач ВыходнойКаталог,
 	Знач ФайлВерсии = "", Знач ИспользоватьПереименования = Ложь) Экспорт
@@ -219,14 +284,25 @@
 
 КонецПроцедуры
 
+// Собирает из исходников расширение с указанным имененм
+//
+// Параметры:
+//   Каталог - Строка - путь каталогу с иходниками расширения
+//   ИмяРасширения - Строка - Имя расширения
+//   Обновить - Булево - Признак обновления расширения в базе, имеет смысл только на пустой базе или первой загрузке.
+//
 Процедура СобратьИзИсходниковРасширение(Каталог, ИмяРасширения, Обновить = Ложь) Экспорт
 
+	Лог.Информация("Выполняю сборку/загрузку расширения %1 из каталога %2", ИмяРасширения, Каталог);
+
 	УправлениеИБ.ЗагрузитьКонфигурациюИзФайлов(Каталог, ИмяРасширения);
 
 	Если Обновить Тогда
 		УправлениеИБ.ОбновитьКонфигурациюБазыДанных(ИмяРасширения);
 	КонецЕсли;
 
+	Лог.Информация("Сборка/загрузка расширения %1 завершена", ИмяРасширения);
+
 КонецПроцедуры
 
 // Выгружает файл расширения из ИБ
@@ -305,7 +381,8 @@
 	КонецЕсли;
 
 	Возврат ИзмененияКонфигурации;
-КонецФункции		
+КонецФункции
+
 #КонецОбласти
 
 #Область ОбработчикиСобытий
diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os"
index 9d5884c7..75adc42c 100644
--- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os"
+++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os"
@@ -202,6 +202,13 @@
 
 КонецПроцедуры
 
+// Создать новую файловую базу из файла выгрузки или пустую.
+//
+// Параметры:
+//   КаталогБазы - Строка - Каталог информационной базы
+//   ПутьКШаблону - Строка - Путь к файлу выгрузки конфигурации.
+//   ИмяБазыВСписке - Строка - Имя базы для показа в списке баз стартера 1С.
+//
 Процедура СоздатьФайловуюБазу(Знач КаталогБазы, Знач ПутьКШаблону = "", Знач ИмяБазыВСписке = "") Экспорт
 
 	Попытка
diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os"
index c1de0fb5..6d179ef2 100644
--- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os"
+++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os"
@@ -200,11 +200,10 @@
 	ЗначениеПараметраФайлНастроек = ЗначенияПараметров["--settings"];
 	Если ЗначениеЗаполнено(ЗначениеПараметраФайлНастроек) Тогда
 		ФайлОбщихНастроек = Новый Файл(ОбщиеМетоды.ПолныйПуть(ЗначениеПараметраФайлНастроек));
-		Ожидаем.Что(ФайлОбщихНастроек.Существует(),
-			СтрШаблон("Ожидаем, что указанный в --settings <%1> файл по пути <%2> существует, а его нет!",
-				ЗначениеПараметраФайлНастроек,
-				ФайлОбщихНастроек.ПолноеИмя)
-			).ЭтоИстина();
+		Сообщение = СтрШаблон("Ожидаем, что указанный в --settings <%1> файл по пути <%2> существует, а его нет!",
+			ЗначениеПараметраФайлНастроек,
+			ФайлОбщихНастроек.ПолноеИмя);
+		Ожидаем.Что(ФайлОбщихНастроек.Существует(), Сообщение).ЭтоИстина();
 	КонецЕсли;
 
 	НастройкиИзФайла = ОбщиеМетоды.ПрочитатьНастройкиФайлJSON(ТекущийКаталогПроекта,
@@ -275,7 +274,7 @@
 		// специально не через ВременныеФайлы для возможности сохранения файла после завершения
 		ПутьФайлаВывода = ПолучитьИмяВременногоФайла(".log"); // BSLLS:MissingTemporaryFileDeletion-off
 		ФайлВывода = Новый Файл(ПутьФайлаВывода);
-		ПутьФайлаВывода = ОбъединитьПути(ФайлВывода.Путь, "vrunner-" + ФайлВывода.Имя); // BSLLS:MissingTemporaryFileDeletion-off
+		ПутьФайлаВывода = ОбъединитьПути(ФайлВывода.Путь, "vrunner-" + ФайлВывода.Имя); 
 	Иначе
 		Возврат;
 	КонецЕсли;
@@ -397,8 +396,8 @@
 		Значение = КлючЗначение.Значение;
 		Если ЗначениеЗаполнено(Значение) И РегулярноеВыражение.Совпадает(Значение) Тогда
 			ВызватьИсключение СтрШаблон(
-				"Запрещено использование слешей как последних символов в параметрах.%1" +
-				" Это может привести к проблемам при запуске в командной строке.%1%1 Ключ %2 = %3",
+				"Запрещено использование слэшей как последних символов в параметрах.%1"
+				+ " Это может привести к проблемам при запуске в командной строке.%1%1 Ключ %2 = %3",
 				Символы.ПС, КлючЗначение.Ключ, Значение);
 		КонецЕсли;
 	КонецЦикла;
diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os"
index de17516b..8b32ee07 100644
--- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os"
+++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os"
@@ -277,7 +277,6 @@
 
 КонецФункции // ПолныйПуть()
 
-
 Функция ЭтоОтносительныйПуть(Знач Путь)
 
 	// BSLLS:IfElseDuplicatedCodeBlock-off
diff --git "a/tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202OK_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\214.xml" "b/tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202OK_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\214.xml"
index 10934c54..29890491 100644
--- "a/tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202OK_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\214.xml"
+++ "b/tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202OK_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\214.xml"
@@ -9,10 +9,10 @@
 			<ClientManagedApplication>false</ClientManagedApplication>
 			<Server>true</Server>
 			<ExternalConnection>true</ExternalConnection>
-			<ClientOrdinaryApplication>false</ClientOrdinaryApplication>
+			<ClientOrdinaryApplication>true</ClientOrdinaryApplication>
 			<ServerCall>false</ServerCall>
 			<Privileged>false</Privileged>
 			<ReturnValuesReuse>DontUse</ReturnValuesReuse>
 		</Properties>
 	</CommonModule>
-</MetaDataObject>
\ No newline at end of file
+</MetaDataObject>
diff --git "a/tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\2141.xml" "b/tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\2141.xml"
index c393e0f3..74ec0bdb 100644
--- "a/tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\2141.xml"
+++ "b/tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\2141.xml"
@@ -8,11 +8,11 @@
 			<Global>false</Global>
 			<ClientManagedApplication>false</ClientManagedApplication>
 			<Server>true</Server>
-			<ExternalConnection>false</ExternalConnection>
-			<ClientOrdinaryApplication>false</ClientOrdinaryApplication>
+			<ExternalConnection>true</ExternalConnection>
+			<ClientOrdinaryApplication>true</ClientOrdinaryApplication>
 			<ServerCall>false</ServerCall>
 			<Privileged>false</Privileged>
 			<ReturnValuesReuse>DontUse</ReturnValuesReuse>
 		</Properties>
 	</CommonModule>
-</MetaDataObject>
\ No newline at end of file
+</MetaDataObject>
diff --git "a/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\320\222\321\213\320\262\320\276\320\264\320\233\320\276\320\263\320\260.os" "b/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\320\222\321\213\320\262\320\276\320\264\320\233\320\276\320\263\320\260.os"
index 4a3ed034..b79f866b 100644
--- "a/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\320\222\321\213\320\262\320\276\320\264\320\233\320\276\320\263\320\260.os"
+++ "b/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\320\222\321\213\320\262\320\276\320\264\320\233\320\276\320\263\320\260.os"
@@ -1,9 +1,18 @@
 #Использовать tempfiles
 
-Перем ТекстовыйДокумент;
+#Область ОписаниеПеременных
+
+Перем ТекстовыйДокумент; // Экземпляр документа для хренения лога вывода.
+
+#КонецОбласти
 
 #Область ПрограммныйИнтерфейс
 
+// Возвращает вывод лога
+//
+//  Возвращаемое значение:
+//   Строка - Сожержимое лога
+//
 Функция ВыводЛога() Экспорт
 	Возврат ТекстовыйДокумент.ПолучитьТекст();
 КонецФункции
@@ -24,6 +33,10 @@
 
 // Устанавливает свойство аппендера, заданное в конфигурационном файле
 //
+// Параметры:
+//   ИмяСвойства - Строка - Имя свойства
+//   Значение - Строка, Число, Булево - Значение свойства
+//
 Процедура УстановитьСвойство(Знач ИмяСвойства, Знач Значение) Экспорт
 КонецПроцедуры // УстановитьСвойство()
 
diff --git "a/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\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\276\320\274\320\260\320\275\320\264.os" "b/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\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\276\320\274\320\260\320\275\320\264.os"
index b8c4fad1..684d1bb4 100644
--- "a/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\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\276\320\274\320\260\320\275\320\264.os"
+++ "b/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\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\276\320\274\320\260\320\275\320\264.os"
@@ -5,11 +5,11 @@
 
 #Область ОписаниеПеременных
 
-Перем Команда;
-Перем Аргументы;
-Перем СпособВывода;
-Перем КаталогКоманды;
-Перем УправлениеИБ;
+Перем Команда; // Текущая команда приложения
+Перем Аргументы; // Аргументы команды приложения
+Перем СпособВывода; // Экземпляр вывода лога команды приложения
+Перем КаталогКоманды; // Каталог в котором выполняется команда
+Перем УправлениеИБ; // Экземпляр менеджера ibcmd
 
 #КонецОбласти
 

From e6504e58beaa8d91d31f4e401e6632f77a0aeb56 Mon Sep 17 00:00:00 2001
From: Yuri Goncharuk <yukon39@gmail.com>
Date: Thu, 14 Nov 2024 19:20:56 +0200
Subject: [PATCH 11/32] =?UTF-8?q?=D0=9B=D0=BE=D0=B3=D0=B8=D1=80=D0=BE?=
 =?UTF-8?q?=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D1=80=D0=B5=D0=B0=D0=BB=D0=B8?=
 =?UTF-8?q?=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=BE=20=D0=B2=20=D0=BC=D0=B5?=
 =?UTF-8?q?=D1=82=D0=BE=D0=B4=D0=B0=D1=85=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1?=
 =?UTF-8?q?=D0=BE=D1=82=D1=87=D0=B8=D0=BA=D0=B0=D1=85?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ...21\200\321\203\320\266\320\265\320\275\320\270\321\217.os" | 4 ----
 1 file changed, 4 deletions(-)

diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\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\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\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\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os"
index 3604e941..4427b48b 100644
--- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\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\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os"
+++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\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\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os"
@@ -243,8 +243,6 @@
 
 Процедура ОбновитьКонфигурациюБД(МенеджерСборки)
 
-	Лог.Информация("Обновление конфигурации базы данных...");
-
 	Попытка
 		Если РежимРазработчика = Ложь Или РежимыРеструктуризации.Первый Или РежимыРеструктуризации.Второй Тогда
 			ОбщиеМетоды.ОбновитьКонфигурациюБД(МенеджерСборки,
@@ -255,8 +253,6 @@
 		ВызватьИсключение;
 	КонецПопытки;
 
-	Лог.Информация("Обновление конфигурации базы данных завершено.");
-
 КонецПроцедуры
 
 Процедура ДобавитьБазуВСписокБаз(НеДобавлятьВСписокБаз, ВерсияПлатформы, СтрокаПодключения)

From 07fa8229037560cf0b7b4e53d128fa5716b799eb Mon Sep 17 00:00:00 2001
From: Yuri Goncharuk <yukon39@gmail.com>
Date: Thu, 14 Nov 2024 21:00:42 +0200
Subject: [PATCH 12/32] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?=
 =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BF=D0=BE=20=D0=B7=D0=B0?=
 =?UTF-8?q?=D0=BC=D0=B5=D1=87=D0=B5=D0=BD=D0=B8=D1=8F=D0=BC=20=D1=80=D0=B5?=
 =?UTF-8?q?=D0=B2=D1=8C=D1=8E?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ...265\320\275\320\265\320\264\320\266\320\265\321\200Ibsrv.os" | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200Ibsrv.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200Ibsrv.os"
index a063a224..40793186 100644
--- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200Ibsrv.os"
+++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200Ibsrv.os"
@@ -245,7 +245,7 @@
 	РазрешитьРегламентныеЗадания = Ложь;
 
 	КонфигурацияАС = Новый КонфигурационныйФайлАС;
-	КонфигурацияАС.ПараметрыСервера(ПортHttpДоступа, СетевойИнтерфейс);
+	КонфигурацияАС.ПараметрыСервера(СетевойИнтерфейс, ПортHttpДоступа);
 	КонфигурацияАС.ПараметрыИБ(ИмяИБ, РазрешитьВыдачуЛицензий, РазрешитьРегламентныеЗадания);
 
 	ИспользоватьШлюзПрямогоДоступа = ИспользоватьПрямоеСоединение;

From c6c4260108f6bb0a7249cc6f895da3324654e52c Mon Sep 17 00:00:00 2001
From: Artur Ayukhanov <aartbear@gmail.com>
Date: Sat, 16 Nov 2024 13:50:26 +0300
Subject: [PATCH 13/32] =?UTF-8?q?.=D0=97=D0=B0=D0=B2=D0=B8=D1=81=D0=B8?=
 =?UTF-8?q?=D1=82=D0=9E=D1=82("ibcmdrunner",=20"0.3.0")?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 packagedef | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packagedef b/packagedef
index f4e59c54..41e45578 100644
--- a/packagedef
+++ b/packagedef
@@ -126,7 +126,7 @@
 		.ЗависитОт("cmdline", "1.0.0")
 		.ЗависитОт("fluent", "0.6.1")
 		.ЗависитОт("fs", "1.2.0")
-		.ЗависитОт("ibcmdrunner", "0.2.5")
+		.ЗависитОт("ibcmdrunner", "0.3.0")
 		.ЗависитОт("json", "1.1.1")
 		.ЗависитОт("logos", "1.7.0")
 		.ЗависитОт("ParserFileV8i", "0.0.5")

From 394f1a87fc14528ede198764c6576426d7337cc0 Mon Sep 17 00:00:00 2001
From: Yuri Goncharuk <yukon39@gmail.com>
Date: Mon, 18 Nov 2024 23:27:01 +0200
Subject: [PATCH 14/32] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?=
 =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D1=8B=20=D0=B7=D0=B0=D0=BC=D0=B5=D1=87=D0=B0?=
 =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D1=80=D0=B5=D0=B2=D1=8C=D1=8E?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ...5\320\264\320\266\320\265\321\200Ibsrv.os" | 24 +++++++--------
 ...20\265\321\202\320\276\320\264\321\213.os" | 29 ++++++++++++++++---
 tests/xunits/designer.os                      |  2 +-
 3 files changed, 37 insertions(+), 18 deletions(-)

diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200Ibsrv.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200Ibsrv.os"
index 40793186..f336ee45 100644
--- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200Ibsrv.os"
+++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200Ibsrv.os"
@@ -24,7 +24,7 @@
 //
 // Параметры:
 //   Действие - Действие - Метод выполняющий запуск платформы 1С.
-//   ПараметрыКоманды - Структура - Параметры команды
+//   ПараметрыКоманды - Соответствие - Параметры команды
 //
 //  Возвращаемое значение:
 //   Число - Код возврата команды запуска.
@@ -67,7 +67,7 @@
 
 #Область ОбработчикиСобытий
 
-Процедура ПриСозданииОбъекта()
+Процедура ПриСозданииОбъекта(ПараметрыКоманды)
 	
 	Лог = Логирование.ПолучитьЛог(ПараметрыСистемы.ИмяЛогаСистемы());
 	ВременныйКаталогДанныхСервера = ВременныеФайлы.СоздатьКаталог();
@@ -83,9 +83,7 @@
 	ИспользоватьОтладку = Ложь;
 	ПортОтладки = ПортОтладки();
 
-КонецПроцедуры
-
-Процедура Конструктор(ДанныеПодключения, ПараметрыКоманды) Экспорт
+	ДанныеПодключения = ОбщиеМетоды.ДанныеПодключения(ПараметрыКоманды);
 
 	ВерсияПлатформы = ДанныеПодключения.ВерсияПлатформы;
 	Если ЗначениеЗаполнено(ВерсияПлатформы) Тогда
@@ -244,30 +242,30 @@
 	РазрешитьВыдачуЛицензий = Истина;
 	РазрешитьРегламентныеЗадания = Ложь;
 
-	КонфигурацияАС = Новый КонфигурационныйФайлАС;
-	КонфигурацияАС.ПараметрыСервера(СетевойИнтерфейс, ПортHttpДоступа);
-	КонфигурацияАС.ПараметрыИБ(ИмяИБ, РазрешитьВыдачуЛицензий, РазрешитьРегламентныеЗадания);
-
+	КонфигурационныйФайлАС = Новый КонфигурационныйФайлАС;
+	КонфигурационныйФайлАС.ПараметрыСервера(СетевойИнтерфейс, ПортHttpДоступа);
+	КонфигурационныйФайлАС.ПараметрыИБ(ИмяИБ, РазрешитьВыдачуЛицензий, РазрешитьРегламентныеЗадания);
+	
 	ИспользоватьШлюзПрямогоДоступа = ИспользоватьПрямоеСоединение;
 	ИспользоватьШлюзHTTP = Неопределено;
 	ИспользоватьШлюзSSH = Ложь;
 	ИспользоватьРасширеннуюФункциональностьКонфигуратора = Неопределено;
-	КонфигурацияАС.ПараметрыФункциональностиСервера(
+	КонфигурационныйФайлАС.ПараметрыФункциональностиСервера(
 		ИспользоватьШлюзПрямогоДоступа,	ИспользоватьШлюзHTTP, 
 		ИспользоватьШлюзSSH, ИспользоватьРасширеннуюФункциональностьКонфигуратора);
 
 	Если ИспользоватьПрямоеСоединение Тогда
-		КонфигурацияАС.ПараметрыШлюзаПрямогоДоступа(ПортПрямогоСоединения, 
+		КонфигурационныйФайлАС.ПараметрыШлюзаПрямогоДоступа(ПортПрямогоСоединения, 
 			МинимальныйПортПодключения(СдвигПортов), 
 			МаксимальныйПортПодключения(СдвигПортов));
 	КонецЕсли;
 
 	Если ИспользоватьОтладку Тогда
-		КонфигурацияАС.ПараметрыОтладкиСервера("http", ПортОтладки, СетевойИнтерфейс);
+		КонфигурационныйФайлАС.ПараметрыОтладкиСервера("http", ПортОтладки, СетевойИнтерфейс);
 	КонецЕсли;
 
 	ФайлКонфигурации = ОбъединитьПути(ВременныйКаталогДанныхСервера, "ibsrv.yaml");
-	КонфигурацияАС.СоздатьКонфигурационныйФайл(ФайлКонфигурации);
+	КонфигурационныйФайлАС.СоздатьКонфигурационныйФайл(ФайлКонфигурации);
 
 	МенеджерАС.УстановитьКонфигурационныйФайл(ФайлКонфигурации);
 
diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os"
index 8b32ee07..db30f0c0 100644
--- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os"
+++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os"
@@ -622,6 +622,16 @@
 	Возврат НайденныйФайл;
 КонецФункции
 
+// Выполняет запуск команды приложения с дополнительным запуском ibsrv или напрямую.
+//
+// Параметры:
+//   ПараметрыКоманды - Соотвествие - Параметры команды
+//   Действие - Действие - Метод выполняющий запуск платформы 1С.
+//   ПараметрыАвтономногоСервера - см. НовыеПараметрыАвтономногоСервера
+//
+//  Возвращаемое значение:
+//   Число - Код возврата команды запуска.
+//
 Функция ВыполнитьКомандуСУчетомIbsrv(ПараметрыКоманды, Действие, ПараметрыАвтономногоСервера) Экспорт
 	
 	Если ИспользоватьIbsrv(ПараметрыКоманды) Тогда
@@ -636,7 +646,8 @@
 
 	ИспользоватьIbsrv = ПараметрыКоманды["--ibsrv"];
 	ОжидатьЗавершения = НЕ (ПараметрыКоманды["--no-wait"] = Истина);
-	СтрокаПодключенияИБ = ПараметрыКоманды["ДанныеПодключения"].ПутьБазы;
+	ДанныеПодключения = ДанныеПодключения(ПараметрыКоманды);
+	СтрокаПодключенияИБ = ДанныеПодключения.ПутьБазы;
 	
 	Если Не ИспользоватьIbsrv Тогда
 		Лог.Отладка("Не указан флаг использования ibsrv");
@@ -670,9 +681,7 @@
 
 Функция ВыполнитьЧерезIbsrv(ПараметрыКоманды, Действие, ПараметрыАвтономногоСервера) 
 	
-	ДанныеПодключения = ПараметрыКоманды["ДанныеПодключения"];
-	МенеджерIbsrv = Новый МенеджерIbsrv;
-	МенеджерIbsrv.Конструктор(ДанныеПодключения, ПараметрыКоманды);
+	МенеджерIbsrv = Новый МенеджерIbsrv(ПараметрыКоманды);
 
 	Если ПараметрыАвтономногоСервера.ИспользоватьПрямоеСоединение Тогда
 		МенеджерIbsrv.ВключитьПрямоеСоединение();
@@ -728,5 +737,17 @@
 
 КонецПроцедуры
 
+// Получает данные подключения из параметров команды
+//
+// Параметры:
+//   ПараметрыКоманды - Соответствие - Парвметры команды
+//
+//  Возвращаемое значение:
+//   Структура - Парметры подключения к ИБ
+//
+Функция ДанныеПодключения(ПараметрыКоманды) Экспорт
+	Возврат ПараметрыКоманды["ДанныеПодключения"];
+КонецФункции
+
 // из-за особенностей загрузки модуль ОбщиеМетоды грузится раньше ПараметрыСистемы,
 // поэтому сразу в конце кода модуля использовать ПараметрыСистемы нельзя
diff --git a/tests/xunits/designer.os b/tests/xunits/designer.os
index ef9c44f2..59a57013 100644
--- a/tests/xunits/designer.os
+++ b/tests/xunits/designer.os
@@ -12,7 +12,7 @@
 #Область СлужебныйПрограммныйИнтерфейс
 
 &Тест
-Процедура ТестДолжен_ВыгрузитьИнформационноюБазуВФайлIbcmd() Экспорт
+Процедура ТестДолжен_ВыгрузитьИнформационноюБазуВФайлIbsrv() Экспорт
 
 	// Дано
 	Исполнитель = Новый Тест_ИсполнительКоманд("designer");

From 9157d1064021dbee9a04e305e7ee9d57cbf88167 Mon Sep 17 00:00:00 2001
From: Yuri Goncharuk <yukon39@gmail.com>
Date: Mon, 18 Nov 2024 23:28:20 +0200
Subject: [PATCH 15/32] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5?=
 =?UTF-8?q?=D0=BD=20=D0=BF=D0=BE=D1=80=D1=82=20=D0=BE=D1=82=D0=BB=D0=B0?=
 =?UTF-8?q?=D0=B4=D0=BA=D0=B8=20=D0=BF=D0=BE=20=D1=83=D0=BC=D0=BE=D0=BB?=
 =?UTF-8?q?=D1=87=D0=B0=D0=BD=D0=B8=D1=8E?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ...265\320\275\320\265\320\264\320\266\320\265\321\200Ibsrv.os" | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200Ibsrv.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200Ibsrv.os"
index f336ee45..75937c9a 100644
--- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200Ibsrv.os"
+++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200Ibsrv.os"
@@ -210,7 +210,7 @@
 КонецФункции
 
 Функция ПортОтладки(СдвигПортов = 0)
-	Возврат 8350 + СдвигПортов; // BSLLS:MagicNumber-off
+	Возврат 8325 + СдвигПортов; // BSLLS:MagicNumber-off
 КонецФункции
 
 Функция МинимальныйПортПодключения(СдвигПортов = 0)

From da82c887990bb3e57ec2f599f44945d2ad6b8a4a Mon Sep 17 00:00:00 2001
From: Yuri Goncharuk <yukon39@gmail.com>
Date: Fri, 22 Nov 2024 18:16:48 +0200
Subject: [PATCH 16/32] =?UTF-8?q?=D0=A3=D0=B1=D0=B8=D1=80=D0=B0=D0=B5?=
 =?UTF-8?q?=D0=BC=20=D0=BD=D0=B5=D1=81=D1=82=D0=B0=D0=B1=D0=B8=D0=BB=D1=8C?=
 =?UTF-8?q?=D0=BD=D1=8B=D0=B9=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=BE?=
 =?UTF-8?q?=D0=BD=D0=B0=D0=BB=20=D0=BF=D0=BB=D0=B0=D1=82=D1=84=D0=BE=D1=80?=
 =?UTF-8?q?=D0=BC=D1=8B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ...6\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os" | 1 -
 ...\262\320\265\320\264\320\265\320\275\320\270\321\217.os" | 1 -
 ...320\275\320\265\320\264\320\266\320\265\321\200Ibsrv.os" | 6 +++---
 3 files changed, 3 insertions(+), 5 deletions(-)

diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os"
index bfc4991c..bb33aed6 100644
--- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os"
+++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os"
@@ -113,7 +113,6 @@
 	Лог = ОбщиеМетоды.ЛогКоманды(ДополнительныеПараметры);
 
 	ПараметрыАвтономногоСервера = ОбщиеМетоды.НовыеПараметрыАвтономногоСервера();
-	ПараметрыАвтономногоСервера.ИспользоватьОтладку = Истина;
 
 	Действие = Новый Действие(ЭтотОбъект, "ВыполнитьТестирование");
 	Возврат ОбщиеМетоды.ВыполнитьКомандуСУчетомIbsrv(ПараметрыКоманды, Действие, ПараметрыАвтономногоСервера);
diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os"
index 4fe60fcf..012dfbe0 100644
--- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os"
+++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os"
@@ -76,7 +76,6 @@
 	Лог = ОбщиеМетоды.ЛогКоманды(ДополнительныеПараметры);
 
 	ПараметрыАвтономногоСервера = ОбщиеМетоды.НовыеПараметрыАвтономногоСервера();
-	ПараметрыАвтономногоСервера.ИспользоватьОтладку = Истина;
 
 	Действие = Новый Действие(ЭтотОбъект, "ТестированиеПоведения");
 	Возврат ОбщиеМетоды.ВыполнитьКомандуСУчетомIbsrv(ПараметрыКоманды, Действие, ПараметрыАвтономногоСервера);
diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200Ibsrv.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200Ibsrv.os"
index 75937c9a..c3c41468 100644
--- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200Ibsrv.os"
+++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200Ibsrv.os"
@@ -57,7 +57,7 @@
 	ИспользоватьПрямоеСоединение = Истина;
 КонецПроцедуры
 
-// Включает режим отладки на автоновном сервере
+// Включает режим отладки на автономном сервере
 //
 Процедура ВключитьОтладку() Экспорт
 	ИспользоватьОтладку = Истина;
@@ -123,7 +123,7 @@
 #Область СлужебныеПроцедурыИФункции
 
 Функция СтрокаПрямогоСоединения()
-	Возврат СтрШаблон("/S localhost:%1\DefAlias", XMLСтрока(ПортПрямогоСоединения));
+	Возврат СтрШаблон("/S localhost:%1/DefAlias", XMLСтрока(ПортПрямогоСоединения));
 КонецФункции
 
 Функция СтрокаВебСоединения()
@@ -210,7 +210,7 @@
 КонецФункции
 
 Функция ПортОтладки(СдвигПортов = 0)
-	Возврат 8325 + СдвигПортов; // BSLLS:MagicNumber-off
+	Возврат 8350 + СдвигПортов; // BSLLS:MagicNumber-off
 КонецФункции
 
 Функция МинимальныйПортПодключения(СдвигПортов = 0)

From d071d42fde58ace6a361dd7c72dc175411737507 Mon Sep 17 00:00:00 2001
From: Yuri Goncharuk <yukon39@gmail.com>
Date: Sat, 23 Nov 2024 13:33:59 +0200
Subject: [PATCH 17/32] =?UTF-8?q?=D0=A3=D0=BB=D1=83=D1=87=D1=88=D0=B5?=
 =?UTF-8?q?=D0=BD=D0=B0=20=D0=B4=D0=B8=D0=B0=D0=B3=D0=BD=D0=BE=D1=81=D1=82?=
 =?UTF-8?q?=D0=B8=D0=BA=D0=B0=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BE=D0=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ...00\320\260\321\202\320\276\321\200\320\260.os" |  3 +--
 ...32\320\276\320\274\320\260\320\275\320\264.os" | 15 ++++++++++++++-
 tests/xunits/vanessa.os                           |  4 ++--
 tests/xunits/xunit.os                             |  4 ++--
 4 files changed, 19 insertions(+), 7 deletions(-)

diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os"
index 75adc42c..13fc4a11 100644
--- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os"
+++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os"
@@ -295,7 +295,6 @@
 //   ИмяРасширения - Строка - <описание параметра>
 //
 Процедура ОбновитьРасширение(Знач ИмяРасширения) Экспорт
-	ТекущаяПроцедура = "ОбновитьРасширение";
 
 	Лог.Информация("Запускаю обновление расширения %1", ИмяРасширения);
 
@@ -307,7 +306,7 @@
 		КонецЕсли;
 	Исключение
 		Лог.Ошибка(УправлениеКонфигуратором.ВыводКоманды());
-		ВызватьИсключение ТекущаяПроцедура;
+		ВызватьИсключение;
 	КонецПопытки;
 
 	Лог.Информация("Обновление расширения завершено.");
diff --git "a/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\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\276\320\274\320\260\320\275\320\264.os" "b/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\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\276\320\274\320\260\320\275\320\264.os"
index 684d1bb4..cdcae671 100644
--- "a/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\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\276\320\274\320\260\320\275\320\264.os"
+++ "b/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\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\276\320\274\320\260\320\275\320\264.os"
@@ -44,7 +44,20 @@
 	МенеджерКомандПриложения.ЗарегистрироватьКоманды(Парсер);
 	ПараметрыКоманды = Парсер.Разобрать(Аргументы);
 
-	Возврат МенеджерКомандПриложения.ВыполнитьКоманду(Команда, ПараметрыКоманды.ЗначенияПараметров);
+	Сообщить(">>>");
+	Сообщить("vrunner " + СтрСоединить(Аргументы, " "));
+	Попытка
+		Результат = МенеджерКомандПриложения.ВыполнитьКоманду(Команда, ПараметрыКоманды.ЗначенияПараметров);	
+	Исключение
+		Сообщить(СпособВывода.ВыводЛога());
+		Сообщить("<<<");
+		ВызватьИсключение;
+	КонецПопытки;
+
+	Сообщить(СпособВывода.ВыводЛога());
+	Сообщить("<<<");
+
+	Возврат Результат;
 
 КонецФункции
 
diff --git a/tests/xunits/vanessa.os b/tests/xunits/vanessa.os
index 3a274d87..89173827 100644
--- a/tests/xunits/vanessa.os
+++ b/tests/xunits/vanessa.os
@@ -12,7 +12,7 @@
 #Область СлужебныйПрограммныйИнтерфейс
 
 &Тест
-Процедура ТестДолжен_ВыполнитьФичуПаузаIbcmd() Экспорт
+Процедура ТестДолжен_ВыполнитьФичуПаузаIbsrv() Экспорт
 
 	// Дано
 	Исполнитель = Новый Тест_ИсполнительКоманд("vanessa");
@@ -35,7 +35,7 @@
 КонецПроцедуры
 
 &Тест
-Процедура ТестДолжен_ВыполнитьНереализованнуюФичуIbcmd() Экспорт
+Процедура ТестДолжен_ВыполнитьНереализованнуюФичуIbsrv() Экспорт
 
 	// Дано
 	Исполнитель = Новый Тест_ИсполнительКоманд("vanessa");
diff --git a/tests/xunits/xunit.os b/tests/xunits/xunit.os
index 91b8feed..d8cfac44 100644
--- a/tests/xunits/xunit.os
+++ b/tests/xunits/xunit.os
@@ -12,7 +12,7 @@
 #Область СлужебныйПрограммныйИнтерфейс
 
 &Тест
-Процедура ТестДолжен_ВыполнитьУспешноеТестированиеПроектаIbcmd() Экспорт
+Процедура ТестДолжен_ВыполнитьУспешноеТестированиеПроектаIbsrv() Экспорт
 
 	// Дано
 	ИмяРасширения = "ТестOK";
@@ -39,7 +39,7 @@
 КонецПроцедуры
 
 &Тест
-Процедура ТестДолжен_ВыполнитьОшибочноеТестированиеПроектаIbcmd() Экспорт
+Процедура ТестДолжен_ВыполнитьОшибочноеТестированиеПроектаIbsrv() Экспорт
 
 	// Дано
 	ИмяРасширения = "ТестFAIL";

From f5b204d5d2bc534eb7c170a36dd45ad81d439031 Mon Sep 17 00:00:00 2001
From: Yuri Goncharuk <yukon39@gmail.com>
Date: Sat, 23 Nov 2024 14:38:53 +0200
Subject: [PATCH 18/32] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?=
 =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D0=BE=D1=82=D0=BB=D0=B0=D0=B4=D0=BA=D0=B0?=
 =?UTF-8?q?=20=D0=B2=20=D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4=D0=B5=20run?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 tests/xunits/run.os                                 |  5 ++++-
 ...\276\320\264\320\233\320\276\320\263\320\260.os" |  1 +
 ...\232\320\276\320\274\320\260\320\275\320\264.os" | 13 +++++++++++--
 3 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/tests/xunits/run.os b/tests/xunits/run.os
index 8b7acccd..6e257f09 100644
--- a/tests/xunits/run.os
+++ b/tests/xunits/run.os
@@ -19,7 +19,8 @@
 	Исполнитель.УстановитьКонтекстПустаяИБ();
 	Исполнитель.ДобавитьПараметр("--execute", "$runnerRoot/epf/ЗакрытьПредприятие.epf");
 	Исполнитель.ДобавитьФлаг("--ibsrv");
-	
+	Исполнитель.УстановитьУровеньЛога(УровниЛога.Отладка);
+
 	// Когда
 	Исполнитель.ВыполнитьКоманду();
 
@@ -37,6 +38,7 @@
 	Исполнитель.УстановитьКонтекстПустаяИБ();
 	Исполнитель.ДобавитьПараметр("--execute", "$runnerRoot/epf/ЗакрытьПредприятие.epf");
 	Исполнитель.ДобавитьФлаг("--ibsrv");
+	Исполнитель.УстановитьУровеньЛога(УровниЛога.Отладка);
 	
 	// Когда
 	Исполнитель.ДобавитьПараметр("--db-user", "НеизвестныйПользователь");
@@ -58,6 +60,7 @@
 	Исполнитель.ДобавитьПараметр("--execute", "$runnerRoot/epf/ЗакрытьПредприятие.epf");
 	Исполнитель.ДобавитьПараметр("--url", "e1cib/navigationpoint/startpage");
 	Исполнитель.ДобавитьФлаг("--ibsrv");
+	Исполнитель.УстановитьУровеньЛога(УровниЛога.Отладка);
 	
 	// Когда
 	Исполнитель.ВыполнитьКоманду();
diff --git "a/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\320\222\321\213\320\262\320\276\320\264\320\233\320\276\320\263\320\260.os" "b/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\320\222\321\213\320\262\320\276\320\264\320\233\320\276\320\263\320\260.os"
index b79f866b..c82bef68 100644
--- "a/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\320\222\321\213\320\262\320\276\320\264\320\233\320\276\320\263\320\260.os"
+++ "b/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\320\222\321\213\320\262\320\276\320\264\320\233\320\276\320\263\320\260.os"
@@ -25,6 +25,7 @@
 	
 	Сообщение = СобытиеЛога.ПолучитьФорматированноеСообщение();
 	ТекстовыйДокумент.ДобавитьСтроку(Сообщение);
+	Консоль.ВывестиСтроку(Сообщение);
 
 КонецПроцедуры
 
diff --git "a/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\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\276\320\274\320\260\320\275\320\264.os" "b/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\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\276\320\274\320\260\320\275\320\264.os"
index cdcae671..8fb0628a 100644
--- "a/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\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\276\320\274\320\260\320\275\320\264.os"
+++ "b/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\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\276\320\274\320\260\320\275\320\264.os"
@@ -10,6 +10,7 @@
 Перем СпособВывода; // Экземпляр вывода лога команды приложения
 Перем КаталогКоманды; // Каталог в котором выполняется команда
 Перем УправлениеИБ; // Экземпляр менеджера ibcmd
+Перем УровеньЛога; // Уровень логирования
 
 #КонецОбласти
 
@@ -49,12 +50,10 @@
 	Попытка
 		Результат = МенеджерКомандПриложения.ВыполнитьКоманду(Команда, ПараметрыКоманды.ЗначенияПараметров);	
 	Исключение
-		Сообщить(СпособВывода.ВыводЛога());
 		Сообщить("<<<");
 		ВызватьИсключение;
 	КонецПопытки;
 
-	Сообщить(СпособВывода.ВыводЛога());
 	Сообщить("<<<");
 
 	Возврат Результат;
@@ -140,6 +139,10 @@
 	УправлениеИБ.ОбновитьКонфигурациюБазыДанных(ИмяРасширения);
 КонецПроцедуры
 
+Процедура УстановитьУровеньЛога(Знач Уровень) Экспорт
+	УровеньЛога = Уровень;
+КонецПроцедуры
+
 #КонецОбласти
 
 #Область ОбработчикиСобытий
@@ -153,6 +156,7 @@
 	КаталогКоманды = ВременныеФайлы.СоздатьКаталог();
 
 	СпособВывода = Новый Тест_ВыводЛога();
+	УровеньЛога = УровниЛога.Информация;
 	
 КонецПроцедуры
 
@@ -161,8 +165,13 @@
 #Область СлужебныеПроцедурыИФункции
 
 Процедура ДобавитьСпособВывода(МенеджерКомандПриложения) 
+
 	Лог = МенеджерКомандПриложения.Лог();
+	
+	Лог.Закрыть();
 	Лог.ДобавитьСпособВывода(СпособВывода);
+	Лог.УстановитьУровень(УровеньЛога);
+	
 КонецПроцедуры
 
 #КонецОбласти

From e2ba4051123823938894e0653b413f8e9996dcbd Mon Sep 17 00:00:00 2001
From: Yuri Goncharuk <yukon39@gmail.com>
Date: Sat, 23 Nov 2024 15:27:37 +0200
Subject: [PATCH 19/32] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?=
 =?UTF-8?q?=D0=B5=D0=BD=20=D1=88=D0=B0=D0=B3=20=D1=81=D0=B1=D0=BE=D1=80?=
 =?UTF-8?q?=D0=BA=D0=B8=20=D0=BF=D1=80=D0=BE=D0=B5=D0=BA=D1=82=D0=B0=20?=
 =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B5=D0=B4=20=D1=82=D0=B5=D1=81=D1=82=D0=B8?=
 =?UTF-8?q?=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=D0=BC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .github/workflows/testing.yml | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml
index e01382c0..82779a79 100644
--- a/.github/workflows/testing.yml
+++ b/.github/workflows/testing.yml
@@ -149,6 +149,12 @@ jobs:
               '@
         shell: pwsh           
 
+      - name: build
+        uses: coactions/setup-xvfb@v1
+        continue-on-error: false
+        with:
+          run: oscript ./tasks/build.os
+
       - name: Тестирование
         uses: coactions/setup-xvfb@v1
         continue-on-error: true

From fab3653d36e91382addcc16b37742d2f5942b343 Mon Sep 17 00:00:00 2001
From: Yuri Goncharuk <yukon39@gmail.com>
Date: Sat, 23 Nov 2024 16:04:23 +0200
Subject: [PATCH 20/32] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?=
 =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BA?=
 =?UTF-8?q?=D0=B0=20=D1=81=D1=83=D1=89=D0=B5=D1=81=D1=82=D0=B2=D0=BE=D0=B2?=
 =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D1=8F=20=D1=84=D0=B0=D0=B9=D0=BB=D0=B0=20?=
 =?UTF-8?q?=D0=B2=D0=BD=D0=B5=D1=88=D0=BD=D0=B5=D0=B9=20=D0=BE=D0=B1=D1=80?=
 =?UTF-8?q?=D0=B0=D0=B1=D0=BE=D1=82=D0=BA=D0=B8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ...20\270\321\217\321\202\320\270\321\217.os" | 35 ++++++++++++++-----
 tests/xunits/run.os                           |  3 --
 2 files changed, 27 insertions(+), 11 deletions(-)

diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\222\320\240\320\265\320\266\320\270\320\274\320\265\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\222\320\240\320\265\320\266\320\270\320\274\320\265\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\321\217.os"
index a10fb1c9..0ccc3be8 100644
--- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\222\320\240\320\265\320\266\320\270\320\274\320\265\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\321\217.os"
+++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\222\320\240\320\265\320\266\320\270\320\274\320\265\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\321\217.os"
@@ -12,9 +12,12 @@
 //
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
+#Использовать fs
+
 #Область ОписаниеПеременных
 
-Перем Лог;
+Перем Лог; // Экземпляер логгера
+Перем ПутьОбработкиДляЗапуска; // Путь внешней обработки 1С для запуска в предприятии
 
 #КонецОбласти
 
@@ -76,6 +79,8 @@
 
 	Лог = ОбщиеМетоды.ЛогКоманды(ДополнительныеПараметры);
 
+	ПутьОбработкиДляЗапуска = ПолучитьПроверитьПутьОбработкиДляЗапуска(ПараметрыКоманды);
+
 	ПараметрыАвтономногоСервера = ОбщиеМетоды.НовыеПараметрыАвтономногоСервера();
 
 	Действие = Новый Действие(ЭтотОбъект, "ЗапуститьВРежимеПредприятия");
@@ -94,15 +99,10 @@
 	ДанныеПодключения = ПараметрыКоманды["ДанныеПодключения"];
 
 	МенеджерКонфигуратора = Новый МенеджерКонфигуратора;
-
-	ПутьОбработки1С = ПараметрыКоманды["--execute"];
-	ПутьОбработки1С = Заменить_runnerRoot_на_КаталогVanessaRunner(ПутьОбработки1С);
-	ПутьОбработки1С = ОбщиеМетоды.ПолныйПуть(ПутьОбработки1С);
+	МенеджерКонфигуратора.Конструктор(ДанныеПодключения, ПараметрыКоманды);
 
 	ОжидатьЗавершения = Не ПараметрыКоманды["--no-wait"];
 
-	МенеджерКонфигуратора.Конструктор(ДанныеПодключения, ПараметрыКоманды);
-
 	ПутьКФайлуСтатусаВыполнения = ПараметрыКоманды["--exitCodePath"];
 	КомандаЗапуска = КомандаЗапуска(ПараметрыКоманды["--command"], ПутьКФайлуСтатусаВыполнения);
 	ПутьЛогаВыполнения =  ПараметрыКоманды["--online-file"];
@@ -122,7 +122,7 @@
 	Попытка
 		МенеджерКонфигуратора.ЗапуститьВРежимеПредприятияСПроверкойВыполнения(
 			ДопСообщения,
-			КомандаЗапуска, ПутьОбработки1С,
+			КомандаЗапуска, ПутьОбработкиДляЗапуска,
 			ЗапускатьТолстыйКлиент, ДополнительныеПараметры,
 			ОжидатьЗавершения,
 			ПутьЛогаВыполнения,
@@ -174,4 +174,23 @@
 	Возврат СтрЗаменить(ИсходнаяСтрока, "$runnerRoot", ОбщиеМетоды.КаталогПроекта());
 КонецФункции
 
+Функция ПолучитьПроверитьПутьОбработкиДляЗапуска(ПараметрыКоманды)
+
+	ПутьОбработки1С = ПараметрыКоманды["--execute"];
+	Если ПустаяСтрока(ПутьОбработки1С) Тогда
+		Возврат "";
+	КонецЕсли;
+	
+	ПутьОбработки1С = Заменить_runnerRoot_на_КаталогVanessaRunner(ПутьОбработки1С);
+	ПутьОбработки1С = ОбщиеМетоды.ПолныйПуть(ПутьОбработки1С);
+
+	Если ФС.ФайлСуществует(ПутьОбработки1С) Тогда
+		Возврат ПутьОбработки1С;
+	Иначе
+		ВызватьИсключение СтрШаблон("Файл внешней обработки ""%1"" не существует на диске!",
+			ПутьОбработки1С);
+	КонецЕсли;
+
+КонецФункции
+
 #КонецОбласти
diff --git a/tests/xunits/run.os b/tests/xunits/run.os
index 6e257f09..4b746c03 100644
--- a/tests/xunits/run.os
+++ b/tests/xunits/run.os
@@ -19,7 +19,6 @@
 	Исполнитель.УстановитьКонтекстПустаяИБ();
 	Исполнитель.ДобавитьПараметр("--execute", "$runnerRoot/epf/ЗакрытьПредприятие.epf");
 	Исполнитель.ДобавитьФлаг("--ibsrv");
-	Исполнитель.УстановитьУровеньЛога(УровниЛога.Отладка);
 
 	// Когда
 	Исполнитель.ВыполнитьКоманду();
@@ -38,7 +37,6 @@
 	Исполнитель.УстановитьКонтекстПустаяИБ();
 	Исполнитель.ДобавитьПараметр("--execute", "$runnerRoot/epf/ЗакрытьПредприятие.epf");
 	Исполнитель.ДобавитьФлаг("--ibsrv");
-	Исполнитель.УстановитьУровеньЛога(УровниЛога.Отладка);
 	
 	// Когда
 	Исполнитель.ДобавитьПараметр("--db-user", "НеизвестныйПользователь");
@@ -60,7 +58,6 @@
 	Исполнитель.ДобавитьПараметр("--execute", "$runnerRoot/epf/ЗакрытьПредприятие.epf");
 	Исполнитель.ДобавитьПараметр("--url", "e1cib/navigationpoint/startpage");
 	Исполнитель.ДобавитьФлаг("--ibsrv");
-	Исполнитель.УстановитьУровеньЛога(УровниЛога.Отладка);
 	
 	// Когда
 	Исполнитель.ВыполнитьКоманду();

From 7db0c683af8eacc4ac52164c62a4a736c2c2af04 Mon Sep 17 00:00:00 2001
From: Yuri Goncharuk <yukon39@gmail.com>
Date: Sat, 23 Nov 2024 16:43:56 +0200
Subject: [PATCH 21/32] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?=
 =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D1=8B=20=D0=B7=D0=B0=D0=BC=D0=B5=D1=87=D0=B0?=
 =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D1=80=D0=B5=D0=B2=D1=8C=D1=8E?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ...0\277\321\200\320\270\321\217\321\202\320\270\321\217.os" | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\222\320\240\320\265\320\266\320\270\320\274\320\265\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\222\320\240\320\265\320\266\320\270\320\274\320\265\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\321\217.os"
index 0ccc3be8..9a1654d7 100644
--- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\222\320\240\320\265\320\266\320\270\320\274\320\265\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\321\217.os"
+++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\222\320\240\320\265\320\266\320\270\320\274\320\265\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\321\217.os"
@@ -79,7 +79,7 @@
 
 	Лог = ОбщиеМетоды.ЛогКоманды(ДополнительныеПараметры);
 
-	ПутьОбработкиДляЗапуска = ПолучитьПроверитьПутьОбработкиДляЗапуска(ПараметрыКоманды);
+	ПутьОбработкиДляЗапуска = ПутьОбработкиДляЗапуска(ПараметрыКоманды["--execute"]);
 
 	ПараметрыАвтономногоСервера = ОбщиеМетоды.НовыеПараметрыАвтономногоСервера();
 
@@ -174,9 +174,8 @@
 	Возврат СтрЗаменить(ИсходнаяСтрока, "$runnerRoot", ОбщиеМетоды.КаталогПроекта());
 КонецФункции
 
-Функция ПолучитьПроверитьПутьОбработкиДляЗапуска(ПараметрыКоманды)
+Функция ПутьОбработкиДляЗапуска(Знач ПутьОбработки1С)
 
-	ПутьОбработки1С = ПараметрыКоманды["--execute"];
 	Если ПустаяСтрока(ПутьОбработки1С) Тогда
 		Возврат "";
 	КонецЕсли;

From f8df061e40e5905bc08d7741a6f77bcd821a0ca4 Mon Sep 17 00:00:00 2001
From: Yuri Goncharuk <yukon39@gmail.com>
Date: Sat, 23 Nov 2024 17:11:45 +0200
Subject: [PATCH 22/32] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?=
 =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D0=BE=D1=82=D0=BB=D0=B0=D0=B4=D0=BA=D0=B0?=
 =?UTF-8?q?=20=D1=88=D0=B0=D0=B3=D0=B0=20vanessa?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 tests/xunits/vanessa.os | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tests/xunits/vanessa.os b/tests/xunits/vanessa.os
index 89173827..8355e6fe 100644
--- a/tests/xunits/vanessa.os
+++ b/tests/xunits/vanessa.os
@@ -24,6 +24,7 @@
 	Исполнитель.ДобавитьПараметр("--vanessasettings", ФайлНастроек);
 	Исполнитель.ДобавитьПараметр("--path", ПутьКФичам);
 	Исполнитель.ДобавитьФлаг("--ibsrv");
+	Исполнитель.УстановитьУровеньЛога(УровниЛога.Отладка);
 	
 	// Когда
 	Исполнитель.ВыполнитьКоманду();

From 46c8ef8366c27b5937396d5874dc02602ed7d37b Mon Sep 17 00:00:00 2001
From: Yuri Goncharuk <yukon39@gmail.com>
Date: Sat, 23 Nov 2024 19:10:28 +0200
Subject: [PATCH 23/32] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?=
 =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D1=8B=20=D0=B7=D0=B0=D0=BC=D0=B5=D1=87=D0=B0?=
 =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D1=80=D0=B5=D0=B2=D1=8C=D1=8E?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ...20\275\320\265\320\264\320\266\320\265\321\200Ibsrv.os" | 4 ++--
 ...203\321\200\320\260\321\202\320\276\321\200\320\260.os" | 7 ++++---
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200Ibsrv.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200Ibsrv.os"
index c3c41468..be64c5ab 100644
--- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200Ibsrv.os"
+++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200Ibsrv.os"
@@ -92,10 +92,10 @@
 			Лог.Отладка("Разрядность платформы 1С указана %1", ДанныеПодключения.РазрядностьПлатформы);
 		Иначе
 			Разрядность = ОбщиеМетоды.РазрядностьПлатформы("x64x86");
-			Лог.Отладка("Разрядность платформы 1С не указана");
+			Лог.Отладка("Разрядность платформы 1С не указана, используем значение x64x86");
 		КонецЕсли;
 
-		МенеджерАС.УстановитьВерсию(ВерсияПлатформы, Разрядность);
+		МенеджерАС.УстановитьВерсиюПлатформы(ВерсияПлатформы, Разрядность);
 	КонецЕсли;
 
 	Лог.Информация("Используется ibsrv платформы %1", МенеджерАС.Версия());
diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os"
index 13fc4a11..3390345f 100644
--- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os"
+++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os"
@@ -1605,15 +1605,16 @@
 		ВызватьИсключение;
 	КонецПопытки;
 
-	ТекстВывода = ВыводПредприятия(ПутьДамп);
+	Результат = ВыводПредприятия(ПутьДамп);
 
-	ПроверитьЛогПредприятияНаИзвестныеОшибки(ТекстВывода);
+	ПроверитьЛогПредприятияНаИзвестныеОшибки(Результат);
 
-	ПоказатьВыводПредприятия(ТекстВывода, ДопСообщения.ПоказыватьДополнительноЛогПредприятия);
+	ПоказатьВыводПредприятия(Результат, ДопСообщения.ПоказыватьДополнительноЛогПредприятия);
 
 	Лог.Информация("Выполнение команды/действия в режиме 1С:Предприятие завершено.");
 
 	Возврат Результат;
+	
 КонецФункции
 
 Процедура ЗапуститьПроцесс1С(Знач СтрокаЗапуска, Знач ПутьКФайлуЛога)

From 77be806db65b28cb9607119c818c073290619c08 Mon Sep 17 00:00:00 2001
From: Yuri Goncharuk <yukon39@gmail.com>
Date: Tue, 3 Dec 2024 00:07:22 +0200
Subject: [PATCH 24/32] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?=
 =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D1=81=D0=B1=D0=BE=D1=80=D0=BA=D0=B0=20?=
 =?UTF-8?q?=D0=B2=D0=BD=D0=B5=D1=88=D0=BD=D0=B8=D1=85=20=D0=BE=D0=B1=D1=80?=
 =?UTF-8?q?=D0=B0=D0=B1=D0=BE=D1=82=D0=BE=D0=BA=20=D0=B4=D0=BB=D1=8F=20?=
 =?UTF-8?q?=D0=B7=D0=B0=D0=BF=D1=83=D1=81=D0=BA=D0=B0=20=D1=82=D0=B5=D1=81?=
 =?UTF-8?q?=D1=82=D0=BE=D0=B2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 tests/xunits/run.os                           |  3 +++
 ...20\276\320\274\320\260\320\275\320\264.os" | 20 +++++++++++++++++++
 2 files changed, 23 insertions(+)

diff --git a/tests/xunits/run.os b/tests/xunits/run.os
index 4b746c03..7939fe37 100644
--- a/tests/xunits/run.os
+++ b/tests/xunits/run.os
@@ -16,6 +16,7 @@
 
 	// Дано
 	Исполнитель = Новый Тест_ИсполнительКоманд("run");
+	Исполнитель.СобратьВнешнююОбработку("epf/ЗакрытьПредприятие/ЗакрытьПредприятие.xml", "epf/ЗакрытьПредприятие.epf");
 	Исполнитель.УстановитьКонтекстПустаяИБ();
 	Исполнитель.ДобавитьПараметр("--execute", "$runnerRoot/epf/ЗакрытьПредприятие.epf");
 	Исполнитель.ДобавитьФлаг("--ibsrv");
@@ -34,6 +35,7 @@
 
 	// Дано
 	Исполнитель = Новый Тест_ИсполнительКоманд("run");
+	Исполнитель.СобратьВнешнююОбработку("epf/ЗакрытьПредприятие/ЗакрытьПредприятие.xml", "epf/ЗакрытьПредприятие.epf");
 	Исполнитель.УстановитьКонтекстПустаяИБ();
 	Исполнитель.ДобавитьПараметр("--execute", "$runnerRoot/epf/ЗакрытьПредприятие.epf");
 	Исполнитель.ДобавитьФлаг("--ibsrv");
@@ -54,6 +56,7 @@
 
 	// Дано
 	Исполнитель = Новый Тест_ИсполнительКоманд("run");
+	Исполнитель.СобратьВнешнююОбработку("epf/ЗакрытьПредприятие/ЗакрытьПредприятие.xml", "epf/ЗакрытьПредприятие.epf");
 	Исполнитель.УстановитьКонтекстПустаяИБ();
 	Исполнитель.ДобавитьПараметр("--execute", "$runnerRoot/epf/ЗакрытьПредприятие.epf");
 	Исполнитель.ДобавитьПараметр("--url", "e1cib/navigationpoint/startpage");
diff --git "a/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\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\276\320\274\320\260\320\275\320\264.os" "b/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\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\276\320\274\320\260\320\275\320\264.os"
index 8fb0628a..2a51c0a9 100644
--- "a/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\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\276\320\274\320\260\320\275\320\264.os"
+++ "b/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\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\276\320\274\320\260\320\275\320\264.os"
@@ -1,6 +1,7 @@
 #Использовать "../../../.."
 #Использовать cmdline
 #Использовать ibcmdrunner
+#Использовать v8runner
 #Использовать asserts
 
 #Область ОписаниеПеременных
@@ -143,6 +144,25 @@
 	УровеньЛога = Уровень;
 КонецПроцедуры
 
+Процедура СобратьВнешнююОбработку(Знач КаталогИсходников, Знач ПутьКФайлуОбработки) Экспорт
+
+	Если ФС.ФайлСуществует(ПутьКФайлуОбработки) Тогда
+		Возврат;
+	КонецЕсли;
+
+	Конфигуратор = Новый УправлениеКонфигуратором();
+	КаталогВременнойИБ = ВременныеФайлы.СоздатьКаталог();
+	Конфигуратор.КаталогСборки(КаталогВременнойИБ);
+
+	Параметры = Конфигуратор.ПолучитьПараметрыЗапуска();
+	Параметры.Добавить("/LoadExternalDataProcessorOrReportFromFiles");
+	Параметры.Добавить(ОбщиеМетоды.ОбернутьПутьВКавычки(КаталогИсходников));
+	Параметры.Добавить(ОбщиеМетоды.ОбернутьПутьВКавычки(ПутьКФайлуОбработки));
+
+	Конфигуратор.ВыполнитьКоманду(Параметры);
+	
+КонецПроцедуры
+
 #КонецОбласти
 
 #Область ОбработчикиСобытий

From b3f7e5cf5b42bcaf0b074a0c45fe10beeae6e989 Mon Sep 17 00:00:00 2001
From: Egor Ivanov <Segate@inbox.ru>
Date: Tue, 3 Dec 2024 11:24:02 +0300
Subject: [PATCH 25/32] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81=20vanessa.=20?=
 =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=20=D0=BF?=
 =?UTF-8?q?=D1=83=D1=81=D1=82=D1=83=D1=8E=20=D0=98=D0=91=20=D0=BD=D0=B0=20?=
 =?UTF-8?q?=D1=84=D0=B8=D0=BA=D1=81=D1=82=D1=83=D1=80=D1=83.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 tests/xunits/vanessa.os | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/tests/xunits/vanessa.os b/tests/xunits/vanessa.os
index 8355e6fe..a48706c4 100644
--- a/tests/xunits/vanessa.os
+++ b/tests/xunits/vanessa.os
@@ -16,7 +16,7 @@
 
 	// Дано
 	Исполнитель = Новый Тест_ИсполнительКоманд("vanessa");
-	Исполнитель.УстановитьКонтекстПустаяИБ();
+	УстановитьКонтекстИБ(Исполнитель);
 
 	ФайлНастроек = Исполнитель.ПутьТестовыхДанных("feature/vb-conf.json");
 	ПутьКФичам = Исполнитель.ПутьТестовыхДанных("feature/Пауза");
@@ -40,7 +40,7 @@
 
 	// Дано
 	Исполнитель = Новый Тест_ИсполнительКоманд("vanessa");
-	Исполнитель.УстановитьКонтекстПустаяИБ();
+	УстановитьКонтекстИБ(Исполнитель);
 
 	ФайлНастроек = Исполнитель.ПутьТестовыхДанных("feature/vb-conf.json");
 	ПутьКФичам = Исполнитель.ПутьТестовыхДанных("feature/Без реализации шага");
@@ -75,3 +75,15 @@
 КонецПроцедуры
 
 #КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+Процедура УстановитьКонтекстИБ(Исполнитель)
+	КаталогПроекта = Исполнитель.КаталогКоманды();
+	КаталогИсходников = ОбъединитьПути(КаталогПроекта, "src", "cf");
+	КаталогSrc = Исполнитель.ПутьТестовыхДанных("cf");
+
+	ФС.КопироватьСодержимоеКаталога(КаталогSrc, КаталогИсходников);
+
+	Исполнитель.УстановитьКонтекстИБИзФайловКонфигурации(КаталогИсходников);
+КонецПроцедуры
+#КонецОбласти

From d720c1799adb24af46bedd64a1daa24d3578c4dc Mon Sep 17 00:00:00 2001
From: Egor Ivanov <Segate@inbox.ru>
Date: Tue, 3 Dec 2024 13:31:38 +0300
Subject: [PATCH 26/32] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8?=
 =?UTF-8?q?=D0=BB=20=D0=BE=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8?=
 =?UTF-8?q?=D0=B5=20=D0=BA=D0=BE=D0=BD=D1=84=D0=B8=D0=B3=D1=83=D1=80=D0=B0?=
 =?UTF-8?q?=D1=86=D0=B8=D0=B8=20=D0=B4=D0=BB=D1=8F=20=D1=84=D0=B8=D0=BA?=
 =?UTF-8?q?=D1=81=D0=B0=20=D0=BF=D0=BE=D0=B2=D0=B8=D1=81=D0=B0=D0=BD=D0=B8?=
 =?UTF-8?q?=D1=8F=20add?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 tests/xunits/vanessa.os | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/tests/xunits/vanessa.os b/tests/xunits/vanessa.os
index a48706c4..ac118f01 100644
--- a/tests/xunits/vanessa.os
+++ b/tests/xunits/vanessa.os
@@ -54,7 +54,8 @@
 
 	// Тогда
 	Исполнитель.ОжидаемЧтоВыводСодержит("Используется ibsrv");
-	Исполнитель.ОжидаемЧтоВыводСодержит("Пустой адрес снипета у шага: Когда я выполняю несуществующий шаг");
+	Исполнитель.ОжидаемЧтоВыводСодержит("Все фичи/сценарии выполнены!"); // В текущем релизе add нет нужного вывода.
+	// Исполнитель.ОжидаемЧтоВыводСодержит("Пустой адрес снипета у шага: Когда я выполняю несуществующий шаг");
 			
 КонецПроцедуры
 
@@ -85,5 +86,6 @@
 	ФС.КопироватьСодержимоеКаталога(КаталогSrc, КаталогИсходников);
 
 	Исполнитель.УстановитьКонтекстИБИзФайловКонфигурации(КаталогИсходников);
+	Исполнитель.ОбновитьКонфигурациюБазыДанных();
 КонецПроцедуры
 #КонецОбласти

From 176c76361acd05473cd40eb1286076df4911bd8d Mon Sep 17 00:00:00 2001
From: Yuri Goncharuk <yukon39@gmail.com>
Date: Wed, 4 Dec 2024 00:14:22 +0200
Subject: [PATCH 27/32] =?UTF-8?q?=D0=A0=D0=B5=D1=84=D0=B0=D0=BA=D1=82?=
 =?UTF-8?q?=D0=BE=D1=80=D0=B8=D0=BD=D0=B3=20=D1=82=D0=B5=D1=81=D1=82=D0=B0?=
 =?UTF-8?q?=20vanessa?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 tests/xunits/vanessa.os | 30 ++++++++++++------------------
 1 file changed, 12 insertions(+), 18 deletions(-)

diff --git a/tests/xunits/vanessa.os b/tests/xunits/vanessa.os
index ac118f01..a143f8d0 100644
--- a/tests/xunits/vanessa.os
+++ b/tests/xunits/vanessa.os
@@ -16,7 +16,10 @@
 
 	// Дано
 	Исполнитель = Новый Тест_ИсполнительКоманд("vanessa");
-	УстановитьКонтекстИБ(Исполнитель);
+	
+	КаталогSrcCf = Исполнитель.ПутьТестовыхДанных("cf");
+	Исполнитель.УстановитьКонтекстИБИзФайловКонфигурации(КаталогSrcCf);
+	Исполнитель.ОбновитьКонфигурациюБазыДанных();
 
 	ФайлНастроек = Исполнитель.ПутьТестовыхДанных("feature/vb-conf.json");
 	ПутьКФичам = Исполнитель.ПутьТестовыхДанных("feature/Пауза");
@@ -24,7 +27,6 @@
 	Исполнитель.ДобавитьПараметр("--vanessasettings", ФайлНастроек);
 	Исполнитель.ДобавитьПараметр("--path", ПутьКФичам);
 	Исполнитель.ДобавитьФлаг("--ibsrv");
-	Исполнитель.УстановитьУровеньЛога(УровниЛога.Отладка);
 	
 	// Когда
 	Исполнитель.ВыполнитьКоманду();
@@ -40,8 +42,11 @@
 
 	// Дано
 	Исполнитель = Новый Тест_ИсполнительКоманд("vanessa");
-	УстановитьКонтекстИБ(Исполнитель);
-
+	
+	КаталогSrcCf = Исполнитель.ПутьТестовыхДанных("cf");
+	Исполнитель.УстановитьКонтекстИБИзФайловКонфигурации(КаталогSrcCf);
+	Исполнитель.ОбновитьКонфигурациюБазыДанных();
+	
 	ФайлНастроек = Исполнитель.ПутьТестовыхДанных("feature/vb-conf.json");
 	ПутьКФичам = Исполнитель.ПутьТестовыхДанных("feature/Без реализации шага");
 
@@ -54,7 +59,9 @@
 
 	// Тогда
 	Исполнитель.ОжидаемЧтоВыводСодержит("Используется ibsrv");
-	Исполнитель.ОжидаемЧтоВыводСодержит("Все фичи/сценарии выполнены!"); // В текущем релизе add нет нужного вывода.
+	Исполнитель.ОжидаемЧтоВыводСодержит("Все фичи/сценарии выполнены!"); 
+	
+	// В текущем релизе add нет нужного вывода.
 	// Исполнитель.ОжидаемЧтоВыводСодержит("Пустой адрес снипета у шага: Когда я выполняю несуществующий шаг");
 			
 КонецПроцедуры
@@ -76,16 +83,3 @@
 КонецПроцедуры
 
 #КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-Процедура УстановитьКонтекстИБ(Исполнитель)
-	КаталогПроекта = Исполнитель.КаталогКоманды();
-	КаталогИсходников = ОбъединитьПути(КаталогПроекта, "src", "cf");
-	КаталогSrc = Исполнитель.ПутьТестовыхДанных("cf");
-
-	ФС.КопироватьСодержимоеКаталога(КаталогSrc, КаталогИсходников);
-
-	Исполнитель.УстановитьКонтекстИБИзФайловКонфигурации(КаталогИсходников);
-	Исполнитель.ОбновитьКонфигурациюБазыДанных();
-КонецПроцедуры
-#КонецОбласти

From 09bfda93876fc57b715d580a217ae75230817ac9 Mon Sep 17 00:00:00 2001
From: Yuri Goncharuk <yukon39@gmail.com>
Date: Wed, 4 Dec 2024 00:14:49 +0200
Subject: [PATCH 28/32] =?UTF-8?q?=D0=98=D1=81=D0=BF=D0=BE=D0=BB=D1=8C?=
 =?UTF-8?q?=D0=B7=D1=83=D0=B5=D0=BC=20=D1=84=D0=B8=D0=BA=D1=81=D1=82=D1=83?=
 =?UTF-8?q?=D1=80=D1=8B=20=D0=B4=D0=BB=D1=8F=20=D0=B7=D0=B0=D0=BF=D1=83?=
 =?UTF-8?q?=D1=81=D0=BA=D0=B0=20=D1=82=D0=B5=D1=81=D1=82=D0=B0=20xunit?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 tests/fixtures/cf/Configuration.xml           |  4 ++--
 tests/fixtures/xdd_cfe_FAIL/Configuration.xml |  4 ++--
 tests/fixtures/xdd_cfe_OK/Configuration.xml   |  4 ++--
 tests/xunits/xunit.os                         | 10 ++++++++--
 4 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/tests/fixtures/cf/Configuration.xml b/tests/fixtures/cf/Configuration.xml
index 616caa9a..8f82018d 100644
--- a/tests/fixtures/cf/Configuration.xml
+++ b/tests/fixtures/cf/Configuration.xml
@@ -32,7 +32,7 @@
 			<Synonym/>
 			<Comment/>
 			<NamePrefix/>
-			<ConfigurationExtensionCompatibilityMode>Version8_3_10</ConfigurationExtensionCompatibilityMode>
+			<ConfigurationExtensionCompatibilityMode>Version8_3_14</ConfigurationExtensionCompatibilityMode>
 			<DefaultRunMode>ManagedApplication</DefaultRunMode>
 			<UsePurposes>
 				<v8:Value xsi:type="app:ApplicationUsePurpose">PersonalComputer</v8:Value>
@@ -113,7 +113,7 @@
 			<ModalityUseMode>DontUse</ModalityUseMode>
 			<SynchronousPlatformExtensionAndAddInCallUseMode>Use</SynchronousPlatformExtensionAndAddInCallUseMode>
 			<InterfaceCompatibilityMode>Taxi</InterfaceCompatibilityMode>
-			<CompatibilityMode>Version8_3_10</CompatibilityMode>
+			<CompatibilityMode>Version8_3_14</CompatibilityMode>
 			<DefaultConstantsForm/>
 		</Properties>
 		<ChildObjects>
diff --git a/tests/fixtures/xdd_cfe_FAIL/Configuration.xml b/tests/fixtures/xdd_cfe_FAIL/Configuration.xml
index 16ae3c91..cd57a891 100644
--- a/tests/fixtures/xdd_cfe_FAIL/Configuration.xml
+++ b/tests/fixtures/xdd_cfe_FAIL/Configuration.xml
@@ -44,7 +44,7 @@
 			<ConfigurationExtensionPurpose>Customization</ConfigurationExtensionPurpose>
 			<KeepMappingToExtendedConfigurationObjectsByIDs>true</KeepMappingToExtendedConfigurationObjectsByIDs>
 			<NamePrefix>ТестFAIL_</NamePrefix>
-			<ConfigurationExtensionCompatibilityMode>Version8_3_23</ConfigurationExtensionCompatibilityMode>
+			<ConfigurationExtensionCompatibilityMode>Version8_3_14</ConfigurationExtensionCompatibilityMode>
 			<DefaultRunMode>ManagedApplication</DefaultRunMode>
 			<UsePurposes>
 				<v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
@@ -69,4 +69,4 @@
 			<CommonModule>ТестFAIL_ОбщийМодуль</CommonModule>
 		</ChildObjects>
 	</Configuration>
-</MetaDataObject>
\ No newline at end of file
+</MetaDataObject>
diff --git a/tests/fixtures/xdd_cfe_OK/Configuration.xml b/tests/fixtures/xdd_cfe_OK/Configuration.xml
index 79475495..b4dbd7e7 100644
--- a/tests/fixtures/xdd_cfe_OK/Configuration.xml
+++ b/tests/fixtures/xdd_cfe_OK/Configuration.xml
@@ -44,7 +44,7 @@
 			<ConfigurationExtensionPurpose>Customization</ConfigurationExtensionPurpose>
 			<KeepMappingToExtendedConfigurationObjectsByIDs>true</KeepMappingToExtendedConfigurationObjectsByIDs>
 			<NamePrefix>ТестOK_</NamePrefix>
-			<ConfigurationExtensionCompatibilityMode>Version8_3_23</ConfigurationExtensionCompatibilityMode>
+			<ConfigurationExtensionCompatibilityMode>Version8_3_14</ConfigurationExtensionCompatibilityMode>
 			<DefaultRunMode>ManagedApplication</DefaultRunMode>
 			<UsePurposes>
 				<v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
@@ -69,4 +69,4 @@
 			<CommonModule>ТестOK_ОбщийМодуль</CommonModule>
 		</ChildObjects>
 	</Configuration>
-</MetaDataObject>
\ No newline at end of file
+</MetaDataObject>
diff --git a/tests/xunits/xunit.os b/tests/xunits/xunit.os
index d8cfac44..1681c316 100644
--- a/tests/xunits/xunit.os
+++ b/tests/xunits/xunit.os
@@ -18,7 +18,10 @@
 	ИмяРасширения = "ТестOK";
 
 	Исполнитель = Новый Тест_ИсполнительКоманд("xunit");
-	Исполнитель.УстановитьКонтекстПустаяИБ();
+
+	КаталогSrcCf = Исполнитель.ПутьТестовыхДанных("cf");
+	Исполнитель.УстановитьКонтекстИБИзФайловКонфигурации(КаталогSrcCf);
+	Исполнитель.ОбновитьКонфигурациюБазыДанных();
 
 	КаталогSrc = Исполнитель.ПутьТестовыхДанных("xdd_cfe_OK");
 	Исполнитель.СоздатьРасширениеИзФайлов(ИмяРасширения, КаталогSrc);
@@ -45,7 +48,10 @@
 	ИмяРасширения = "ТестFAIL";
 
 	Исполнитель = Новый Тест_ИсполнительКоманд("xunit");
-	Исполнитель.УстановитьКонтекстПустаяИБ();
+	
+	КаталогSrcCf = Исполнитель.ПутьТестовыхДанных("cf");
+	Исполнитель.УстановитьКонтекстИБИзФайловКонфигурации(КаталогSrcCf);
+	Исполнитель.ОбновитьКонфигурациюБазыДанных();
 
 	КаталогSrc = Исполнитель.ПутьТестовыхДанных("xdd_cfe_FAIL");
 	Исполнитель.СоздатьРасширениеИзФайлов(ИмяРасширения, КаталогSrc);

From 98538f656749857acd5ab59ae11508b3a9c93655 Mon Sep 17 00:00:00 2001
From: Yuri Goncharuk <yukon39@gmail.com>
Date: Wed, 4 Dec 2024 00:33:26 +0200
Subject: [PATCH 29/32] =?UTF-8?q?=D0=A0=D0=B5=D1=84=D0=B0=D0=BA=D1=82?=
 =?UTF-8?q?=D0=BE=D1=80=D0=B8=D0=BD=D0=B3=20=D1=82=D0=B5=D1=81=D1=82=D0=BE?=
 =?UTF-8?q?=D0=B2=20=D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4=D1=8B=20update-de?=
 =?UTF-8?q?v?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 tests/xunits/update-dev.os                    | 27 +------------------
 ...20\276\320\274\320\260\320\275\320\264.os" |  5 +++-
 2 files changed, 5 insertions(+), 27 deletions(-)

diff --git a/tests/xunits/update-dev.os b/tests/xunits/update-dev.os
index 32996eef..d94e632d 100644
--- a/tests/xunits/update-dev.os
+++ b/tests/xunits/update-dev.os
@@ -63,11 +63,6 @@
 
 	// Когда
 	Исполнитель.ВыполнитьКоманду();
-	ЛогВыводаКоманды = СтрШаблон("Лог вывода команды: 
-	|%1", Исполнитель.ЛогКоманды().ВыводЛога());
-	Сообщить(ЛогВыводаКоманды);
-
-	//ФС.ОбеспечитьПустойКаталог(ОбъединитьПути(Исполнитель.КаталогКоманды(), ".git"));
 
 	// Тогда
 	Исполнитель.ОжидаемЧтоВыводСодержит("Используется ibcmd платформы");
@@ -101,12 +96,6 @@
 	// Когда
 	Исполнитель.ВыполнитьКоманду();
 
-	ЛогВыводаКоманды = СтрШаблон("Лог вывода команды: 
-	|%1", Исполнитель.ЛогКоманды().ВыводЛога());
-	Сообщить(ЛогВыводаКоманды);
-
-	//ФС.ОбеспечитьПустойКаталог(ОбъединитьПути(Исполнитель.КаталогКоманды(), ".git"));
-
 	// Тогда
 	Исполнитель.ОжидаемЧтоРавно(СокрЛП(Репозиторий.ПолучитьНастройку("core.quotePath")), "false", "Должно быть задано git config core.quotePath == false");
 
@@ -131,9 +120,6 @@
 
 	// Когда
 	Исполнитель.ВыполнитьКоманду();
-	ЛогВыводаКоманды = СтрШаблон("Лог вывода команды: 
-	|%1", Исполнитель.ЛогКоманды().ВыводЛога());
-	Сообщить(ЛогВыводаКоманды);
 
 	// Тогда
 	Исполнитель.ОжидаемЧтоВыводСодержит("Используется ibcmd платформы");
@@ -158,16 +144,12 @@
 
 	// Когда
 	Исполнитель.ВыполнитьКоманду();
-	ЛогВыводаКоманды = СтрШаблон("Лог вывода команды: 
-	|%1", Исполнитель.ЛогКоманды().ВыводЛога());
-	Сообщить(ЛогВыводаКоманды);
 
 	// Тогда
 	Исполнитель.ОжидаемЧтоВыводСодержит("Используется ibcmd платформы");
 	Исполнитель.ОжидаемЧтоВыводСодержит("Будет выполнена инкрементальная загрузка");
 	Исполнитель.ОжидаемЧтоВыводСодержит(ОбъединитьПути("Catalogs", "Справочник1.xml"));
 
-
 	Исполнитель.ОжидаемЧтоВыводСодержит("Информационная база обновлена из исходников");
 	Исполнитель.ОжидаемЧтоВыводСодержит("Обновление конфигурации БД завершено.");
 
@@ -185,9 +167,6 @@
 
 	// Когда
 	Исполнитель.ВыполнитьКоманду();
-	ЛогВыводаКоманды = СтрШаблон("Лог вывода команды: 
-	|%1", Исполнитель.ЛогКоманды().ВыводЛога());
-	Сообщить(ЛогВыводаКоманды);
 
 	// Тогда
 	Исполнитель.ОжидаемЧтоВыводСодержит("Используется ibcmd платформы");
@@ -196,7 +175,6 @@
 	Исполнитель.ОжидаемЧтоВыводСодержит("ObjectModule.bsl");
 	Исполнитель.ОжидаемЧтоВыводСодержит(ОбъединитьПути("Catalogs", "Справочник1.xml"));
 
-
 	Исполнитель.ОжидаемЧтоВыводСодержит("Информационная база обновлена из исходников");
 	Исполнитель.ОжидаемЧтоВыводСодержит("Обновление конфигурации БД завершено.");
 
@@ -213,16 +191,12 @@
 
 	// Когда
 	Исполнитель.ВыполнитьКоманду();
-	ЛогВыводаКоманды = СтрШаблон("Лог вывода команды: 
-	|%1", Исполнитель.ЛогКоманды().ВыводЛога());
-	Сообщить(ЛогВыводаКоманды);
 
 	// Тогда
 	Исполнитель.ОжидаемЧтоВыводНеСодержит("Используется ibcmd платформы");
 	Исполнитель.ОжидаемЧтоВыводСодержит("Будет выполнена инкрементальная загрузка");
 	Исполнитель.ОжидаемЧтоВыводСодержит(ОбъединитьПути("Catalogs", "Справочник1.xml"));
 
-
 	Исполнитель.ОжидаемЧтоВыводСодержит("Информационная база обновлена из исходников");
 	Исполнитель.ОжидаемЧтоВыводСодержит("Обновление конфигурации БД завершено.");
 
@@ -296,6 +270,7 @@
 	ЗаписатьТекст(lastUploadedCommit, ПоследнийКоммит);
 
 	Исполнитель.УстановитьКонтекстИБИзФайловКонфигурации(КаталогИсходников);
+	Исполнитель.ВыгрузитьВФайлСостояниеКонфигурации(КаталогИсходников);
 
 	Если ИзмененияСКоммитом Тогда
 		ManagedApplicationModule = ОбъединитьПути(КаталогИсходников, "Ext", "ManagedApplicationModule.bsl");
diff --git "a/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\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\276\320\274\320\260\320\275\320\264.os" "b/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\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\276\320\274\320\260\320\275\320\264.os"
index 2a51c0a9..320bb88a 100644
--- "a/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\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\276\320\274\320\260\320\275\320\264.os"
+++ "b/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\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\276\320\274\320\260\320\275\320\264.os"
@@ -121,13 +121,16 @@
 	УправлениеИБ.УстановитьПараметрыАвтономногоСервера(КаталогКоманды);
 	УправлениеИБ.УстановитьПараметрыФайловойИБ(КаталогИБ);
 	УправлениеИБ.СоздатьИБИзФайловКонфигурации(Каталог);
-	УправлениеИБ.ВыгрузитьВФайлСостояниеКонфигурации(Каталог);
 
 	СтрокаСоединения = СтрШаблон("/F""%1""", КаталогИБ);
 	ДобавитьПараметр("--ibconnection", СтрокаСоединения);
 
 КонецПроцедуры
 
+Процедура ВыгрузитьВФайлСостояниеКонфигурации(Каталог) Экспорт
+	УправлениеИБ.ВыгрузитьВФайлСостояниеКонфигурации(Каталог);
+КонецПроцедуры
+
 Процедура СоздатьПустоеРасширение(ИмяРасширения, ПрефиксИмен) Экспорт
 	УправлениеИБ.СоздатьРасширение(ИмяРасширения, ПрефиксИмен);
 КонецПроцедуры

From 440a47bad839a649dce1d9a93e00097ad0aaa7e7 Mon Sep 17 00:00:00 2001
From: Yuri Goncharuk <yukon39@gmail.com>
Date: Wed, 4 Dec 2024 00:49:37 +0200
Subject: [PATCH 30/32] =?UTF-8?q?=D0=A3=D0=B1=D1=80=D0=B0=D0=BD=20=D1=88?=
 =?UTF-8?q?=D0=B0=D0=B3=20=D1=81=D0=B1=D0=BE=D1=80=D0=BA=D0=B8=20=D0=BF?=
 =?UTF-8?q?=D1=80=D0=BE=D0=B5=D0=BA=D1=82=D0=B0=20=D0=BF=D0=B5=D1=80=D0=B5?=
 =?UTF-8?q?=D0=B4=20=D1=82=D0=B5=D1=81=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0?=
 =?UTF-8?q?=D0=BD=D0=B8=D0=B5=D0=BC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .github/workflows/testing.yml | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml
index 82779a79..e01382c0 100644
--- a/.github/workflows/testing.yml
+++ b/.github/workflows/testing.yml
@@ -149,12 +149,6 @@ jobs:
               '@
         shell: pwsh           
 
-      - name: build
-        uses: coactions/setup-xvfb@v1
-        continue-on-error: false
-        with:
-          run: oscript ./tasks/build.os
-
       - name: Тестирование
         uses: coactions/setup-xvfb@v1
         continue-on-error: true

From eb388859270faf186053c2342a49e690ed849f27 Mon Sep 17 00:00:00 2001
From: Yuri Goncharuk <yukon39@gmail.com>
Date: Wed, 4 Dec 2024 00:51:48 +0200
Subject: [PATCH 31/32] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?=
 =?UTF-8?q?=D0=B5=D0=BD=D0=BE=20=D0=BF=D1=80=D0=B8=D0=BD=D1=83=D0=B4=D0=B8?=
 =?UTF-8?q?=D1=82=D0=B5=D0=BB=D1=8C=D0=BD=D0=BE=D0=B5=20=D0=B8=D1=81=D0=BF?=
 =?UTF-8?q?=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20?=
 =?UTF-8?q?=D1=80=D1=83=D1=81=D1=81=D0=BA=D0=BE=D0=B9=20=D0=BB=D0=BE=D0=BA?=
 =?UTF-8?q?=D0=B0=D0=BB=D0=B8=20=D0=BF=D1=80=D0=BE=20=D0=B2=D1=8B=D0=B7?=
 =?UTF-8?q?=D0=BE=D0=B2=D0=B5=20=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=B2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ...3\321\214\320\232\320\276\320\274\320\260\320\275\320\264.os" | 1 +
 1 file changed, 1 insertion(+)

diff --git "a/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\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\276\320\274\320\260\320\275\320\264.os" "b/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\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\276\320\274\320\260\320\275\320\264.os"
index 320bb88a..fb22b092 100644
--- "a/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\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\276\320\274\320\260\320\275\320\264.os"
+++ "b/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\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\276\320\274\320\260\320\275\320\264.os"
@@ -37,6 +37,7 @@
 	
 	ДобавитьПараметр("--root", КаталогКоманды);
 	ДобавитьФлаг("--nocacheuse");
+	ДобавитьПараметр("--language", "ru");
 
 	МенеджерКомандПриложения.РегистраторКоманд(ПараметрыСистемы);
 	

From b3ae0182d4b94b4d725ae27514abba11342ff86f Mon Sep 17 00:00:00 2001
From: Yuri Goncharuk <yukon39@gmail.com>
Date: Wed, 4 Dec 2024 01:36:44 +0200
Subject: [PATCH 32/32] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?=
 =?UTF-8?q?=D0=BB=D0=B5=D0=BD=20=D1=80=D0=B5=D0=B6=D0=B8=D0=BC=20=D1=81?=
 =?UTF-8?q?=D0=BE=D0=B2=D0=BC=D0=B5=D1=81=D1=82=D0=B8=D0=BC=D0=BE=D1=81?=
 =?UTF-8?q?=D1=82=D0=B8=20=D0=B2=20=D1=84=D0=B8=D0=BA=D1=81=D1=82=D1=83?=
 =?UTF-8?q?=D1=80=D0=B5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 tests/fixtures/test.cfe | Bin 4427 -> 5018 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/tests/fixtures/test.cfe b/tests/fixtures/test.cfe
index 20518554edc401c9b3e7809086ac0f804be8cd30..437550cc2c1aa72469cc1070e2524dc54972e173 100644
GIT binary patch
delta 3028
zcmZ9O_dDAQ8^+aEHFHq4Qd^o3rL{}ND1s8SW^1&z5~|1Qm+GQw#S9%p&9s!*MN|=c
zMJPhF)F`!T2k(2%`Q?4jeO=FUf3Ev4`1D9(<&sfnM0pt)JpX$qCnvy1*Zxx&7~^>^
zJ+DEFZw8DEe|ME5V+!NHrhVr0e@&PiHU~f*eisb?D}RC7-G2h+I^AS%p6F4_H7$~5
z7E)uVS6~n~!Ajz)<S{rB1qVelbmT%`h$`G56_tjsnOm*|O<oGT|2@6IRI(&#&e-Z`
z1~^%etB*REm76aavcriF=acWG`ihe?IR=tp)f@YEJLHLH=*3tpP;SvHWo52x#jarU
z3R*U^u<>y25WZp@8F@CqyWJko(j8!Aa#%otpyHZ>?%3MTZmq6%?k7pii2F_-9}m<{
zPTtyO+xxcKq1MQi;tlc78JB-=O$vVykM+y2Zue|#7x|f>@B*{DoK{1<Pd3CogH%Gj
zxz*~^)6EidivynmguFPY(L1|3!;x>F#fFV~lA9r2Zh2p7NQE@3OA!l$XqRM4)cQA#
zV$$<uisU}KzD|*PsonNP`1{1soWuO7(`gRA9)?*R)(msXnXh*RFGg7E5MhUW=EYA6
z2;_{#G#hBZJ7Hb-(3N`^3pXS^Nv{;Ta+{$KItc5LLj&4C;utLQ_;(v<X|;KvWsjb$
z8h7EH_67UWbn6THueIHo&YLTXSB>&aZ0DIwu6M4rMfxpJ7qv<c0x(eUfrZGf?D1`;
z#Du6r(CrJY6g~A&W3=o?Q*pC`>)4vq$o_7%=1$VC3N1EI*fM!t@j-Z)gAQt}&L_X5
z4BSgJd72AIyKcGmHknIDQ-zw3_E+m;W*S@uwr6+oNwd}4sV+`RN*@-+D8W%dO-*&p
zpX!cn=`N!uZuBogM{@hs+e!^5hHEYC&7ZKJ#(n`p`|B@gEp>F;<p{n{LZF3FA}~ZR
zC*R{hM;!LFJe+H3qLu;Uav0r)WndjnFk6Kc0^gZWpv?>NucdU1_eIl#Jr;^zOL32_
zr}kwAHcM~F#4FiHa$wA|B3&0{kcuc7=e8cddP3Jbb3du=vy|YoO8y(ef-S`PVZp!Y
z?<Wxv!TOcuLF8pr(sfO)hTK5FGV=nrv1ovLZeSfPgvfEiaqJ#QnnTD-SOfdKJ<pu3
zFmIi=Z~ooB6gR?CB*ZPTz7zvG0S$o$Kz*PdP#35Z)ZR&}kkjd>w3Ix!3gSytTzp-X
zgb0TzYiTx2I2Nf&g~JGMRlngK&|6sU)jY>lFXOo2q(*1EO{|!M>Yq7zwql*+OBh?G
zpyC9bOQ;u3PAIdk1#<Nu&>C8qep_!zj1_(?I#C_BE?)$EHFhjiC2*<Y770|Dyan!H
zi^NNdOZQ*`TtNlXL&mZ$aH3n$*Q<UmIr*JBM-&vat9Yy~XOHi#$Wbs&y0I<zM_6Ik
zb@Mh85H9DY{h(5&-pdH_D088;qOA<Pok)FJ<TPyYu<=P-*_94Jze-#aii{U*$u}vo
z^1a3TlAD@Tf<j&6irR6isK#NuW3wU2DId>af2!Es-Kd^iN$x4H1K+WXBJ2CYvGlmm
zk}yzwg>RaZYv1`x<{%LmN>2*eH9CYvn1GTP-tH~3G5TcS=a9++MhXn9D$FvPAC^jd
zxW4OwEr~**Du8n+?<Vv)t4gXHg1qH5oH!*BwNl3B)1>eYlI?_&sgYJu8y_3H%Ht3|
zF{Uhkw?bes`Hlf1#x_+5S0Of8iI*|RwlO`e7tKc8G}1JBP00|_D!8Kb@`swz%RPh|
z%Y!g~Z+$##eCq6QmY@w&bapohfhIf*G~_WsyvL|(0v?Lb%MeWOr}dM;)wwAX5n^RF
zxM8b4)LkSDQ4GHE>CYP!cSy)%Z02_@s(p3zs{Ri>;MzNQ{&=}*3*SvK7jI&h0XK8#
zXJ$^0*49tUu^)7Gv^G3H!cf)9sj@;Pju=;0s{BH3XRkshPwLkNk;MoM8xxxI?HOr$
zZ57l55VvEVpaEchSzE(vy;i&%d|8uM+w+k07*b{B9#|7j9^e%-PBdX0>28%k0SY~J
zzS(_z?tB~ARO6dEvgWt;)P>k+Y%;KbZg{XpFH-!E$x2h)S~L>6Aw8d!vl?-=l*^mb
zr+BW7&HlHrR;IO?#z=0vu@z+HFt8|UMg@Sxu?;jV`^>_@#>lUV8JhExbFRZ@d-Ck0
z{j6CfVh5jtY+`(>U)6+njB(}lYaGSf7|0W!5sOLN_bjP5-t<0YhH!VDyJ#LEt1R}Y
zn`WI<5+$R~up;o{O^OKRkQ9Yvk#Lj`{KJ%sczXSV!j1U*TCT7mX-_+Ckb8%pyflE!
zqau)+5GMAD4_SmlTk2#sXjc8v^7CP0)nm=)^d1`jb;#xO@4u{?1$+-9HA|@ZWpD%}
z6nl{LR@(GzJ;1has4~4O@g2Fi2LHi}i*7Mh{1Bte!RxIteN7HgDdX<w(o<6-Ec-KX
zM&-AnrTOAvp)Zf`Tgb64pr0)G8UXYXuFW$S2Px7|rhKrsZc4-kvj@uNGX7MXtmUW;
zt)0flaBT6t=ltR5ZKPq&+hk#!((3xzJqLGQ<}-8+f1`t6%&1C+cJ^YpP@8vq0Yr$)
z3;E*&Ct-%4(o3WL8J)(dR|@_kkk}nnn6jC<Ga!nS3{n?NzHd9Xj=x4%b_QBI*NH(1
zu_{tNmq-q3Sx@7w#M03_v$Vb=fc>H8NpFX2qm3!_5UtI4RLM?RPxwf5ocI0hPXVjz
zr1bZz^MH5yqR9}P%-rJxmC#==Y)<p@+LrCCmf4-XWA|~E0fRLYMa^UroRFbp9`3^(
z;CACHmS3rl(h{`oP9_S#YAa=KBEhSSFm-YJXba!lr}uPswUscD{s$rCiZeg-;VkIb
zAYV$16ZMPgbau!t^~jXIKYPM}Y37#rf5E^kbISrM%Bug^#9#0~Ht}+#=R@gDURK(^
z$&T5I!Z4o2H%NHp6r-dNAD>}XkN~;emRU!`k`nu{;Ng?dHMzwC)^wXq8Q|UWOv}kW
zm!L$;!>Z(4bX7?j*dbb1qNVw#CxHm>%)R*~<n;BcxU{|{<}Kk@f`BAvF!6<azhM0Q
z-JPCj8Igkl2p@9Vf4n1|v5QYK*lasoqFm0*`t1sP`v}M7HZ-@9>FVTjPUWqQjh^!r
zUM5EN^|D@Nh-a}<?z;T`ge;B5e&H2i=Q>U;H>_cyu6<cX$oJ0~bHagYGcotv;Hc~|
z()-=ZiI_3^{<5!l7@)zEqoX!jk0_$?KJTJbbdF5Zf;R?7Apz2S!kMZTpVfxSA8*Zn
zNQpelPpzRd1|N8@NqFJ{9$CegS24XAb&8h?!9nG*j*9L|wILh$NoQIU$CQ}%=UU|B
zQ0nF=+nr!lJi2R=2|?7jqJ1wupQ?u~@|=RzK7iWKKau1GJQ}S^G-tK0xgBU-Wv4rO
zukJl_r_#SYNlD+npOPl&Dm*`qFIQ^JK&%%;`;PVrz|se;Y~@8}emePBpXxTx^J**e
zxOYb22cmlVx=WbU7nb-4%GdKbqdolsgt_9cSH_*Ss<tJ=avOeYkqjGEVZY?EtqOC}
z!U`MwZgi`nfM?^CyEaSlE9gr8v_G7v`?=03F-tLH*H}EW=*dlS>0A8lKWFC4d@j%W
zh_R7%eocKW-^~{zdM$^C_}rcK=$MSv9>@!?GZygs^pFQ3(lTvOy$~m((~Hz<*7R}|
zD`a=idF?oVU(LQl;7tEiEQhjnc(!xu{R@E&LZd@o;(*NyoZ3gl`D=b_Bj`T-PJ4X8
z9o)TW{EUdDO6T5(wNqM(Nk6||K02rm57_8Jv*<@E4oRj;pKE6{Yr$-W#GLB3=ervQ
zjZzF9fJY>V<QtFAStY!dOtF1X{xxr}de49*lhf^t*A+g)bF->N-)}x55Z@`Mfjj(8
z9e>jmGA+8uI%#I(PY`@FQSB=?)Rsi(RT{3{1jN^aQ^>I~KYXPWAbH)0Rf}geK(e0B
Kxm&<7(|-U>BH6_N

delta 2432
zcmZ9N`9IT-1IK4#uDL#h977_sl{q4E$6Ps6S(f|CQO@Levk1#E_t<7C#DsF@8tGf)
zO0Ha?ua7i0bL48@$LIU`<@^0Se|fzg&wt=qsL&^ix96epf<T;nAP|$u1m3s~vSh=-
zGSK4XKTtEqV9<ZJ4h_x(|3e*|%KeARCPJJ54L23(OMmg#x$N~f(onAUTNc&s%~0~?
zA>#cqd1<?n^H!`LkOIhaU2c?;ew<0wg~t~Z(LI@znpVuq))wr|<hl2WHCASA$E1*-
z0F!Z7@6$;)EEb8$TUl4j3LKVs+SOa~rgGD~)Q>{hSR^#6q>T_p-2pzgB6F)cJM+Rq
zc;40Hi7ofJ?sa+?Wu0EFeX-`MZHkjwz=h>@l}IVFIPueU%0`p*N)RP5h&u>4Ia-T7
zVjO_(&a6k*>?_t%&GZoA!)w>WQj7ha@}shEofK`<iOg)6)ZRul2U0EW`#QSaUoKs3
zoiVkXZIf^Ax4aTn1`y1Aga+zv*KKmvY3%<LAeu)=I7Pi&?ow;|o+&E=V@o<jV35jM
zA_OaYs+M@zQc-0j2Ol8~+tJM4&`eNcl)0?7I(Sx1H1K?Uc1QC`dO|(PqT29k#h1pG
z4|(NZqx=0m;etXh*yx{Zhyf!K6)CG!$6;q(=CAjv2@2vA0ALgrT|CU~+ikI!rFyDU
zr_T6BJR3T{d4ZnQ8?w6>pdCZ}^5A%lsZ{oPV>YJy1&wHHRWQ=m&ERKxL#oGHPgq<T
z4*SMq>H1$QMoluW+HVJbQy=$>UNTLK)`R>x-M_7j>Rw2iv#!bK?Q2zpPp2bUCmiY#
zoL>pKkvkuN&tXk^vzzO`n0kn%40wJ9{4)$)4MPXQ&=}pu8NJ4~SpUeVj^kD7{b|bY
ztrTW()ZY4w#y_ich)aU=i5iE}&SJ^X<!1#qRWDvG9QQs~W;+dn3gl<<S)IA29ADTZ
z6jM6uk131t4G=CW=y!K2U;3^`Y{}23&vr5l!ju7tO_h1jLip5cMAyjln4v`7hM!uM
zHJ)Eo!%*lBaomZ725aeA4T%4g84-0ky9kB&N!7E<id2acwtbbZsI@wtfy1_oIK3a!
z1uG@M96xr|27C+YJV?*D0R(t_*O+Wt;9i3l&94ZWY!Bnw+8!3#!`SOsq5GQ+Dt$YR
z0Cj#0D|y&Iz~3KQl+hPjAiw6a((ru+G_?E45}KLWtc_}*SxWk`?-b&g*SYEw(kDrK
z9;ie%wY4va$m2rHnYQNeu^Xj^@it)VtS9j#v82$HRM5lz2iH3N#+FNM5ZqZZGCU1n
zS(YAUAuhQAWw36y4mIKMr^!@_ex)yPwi*vDT^M>pDH}Rtl+kF&-N~YZ9K#A}r)SlQ
zt=&IxdK%d~6tm8i`$iOe(Nuw0_i8HQVS9LtQs?dsww}2XUa6zq036sdr&QWnjH~{v
z%#eX@UryFa&*v91*6@bL<Pew7X=_vU#&}Ofv#cLA+v2Q#1L$+GP7s{Oo?-~3vvXv)
z@>^QllQNwq<2P38x&CyU^MQ~kqh#B{Emd6-$EwN)Y1ana9RW>eyq}#1DYD7^CT8_$
zlt$~n^5PGig|@<t3;qhdr8&*GyyLWgb3f{qO77%{wCZFD-TI1F5H7-3YC;c8jfbCm
zoljAh^dt!|sQDEaXNqg7K{Q~9`!z%P=ZAtibGNB;ABgmz23|hK7^`}oZ4H$rHw`K6
z;~afQhkujXTO-2#Z8K}2pWJ(QgX;bVTz0p&xqU<EyQsT<lI_W{N#zA9GR^Lb?+9!&
zciZ~}N1$Cgyyqq~jUHzj<J?-;iV%?Ex%bw%Qux6YSqFORqNbyqWC_6511?P#Hf7PP
z>WEIm)@YlPpZ*@KF1I-a6ZbNz0lw{&NBzLD2cwu+P8olpEI)hDzRVg@5}gUsxBDm*
zoNF<)p}apJB#q8KYdg<(N?E3L?5%B}0;hOgQg5YlQQDi}3KvM(DD0d(>wP|ld)k%i
z-{8*y6&~HzF0VY^O+XGWepmyth|7M+K`*jKh>a|Xt5b%1L^n^Hbn`qig#24esTik(
zM~-utt=za4QZ@O!s93o31G|@^j|&HTN4(L<V=T?b-_mVL@U=I`VaI}G9E(I!MUH9C
zYl)6kUr!grWe=L?C}qsd7Q{Z@>Z8<7KkPapVeJi(nL-aYfS(;S{J22a&QyHDB6S?P
zU%797O(bsCF;1(PUv^(z+esD<EVZlTO}wgakxj4A-*Q0Vl?Eo@27|Ad>ALK3A0_oU
zQ%&)>vnXgBm}kQC0@;bS0|=+q`bZ4&z7BjMg%Q>K((T&m?$L>0cK1uW#5Isz950!0
z56zuXjUzfPnX<($F_m&FC4OhGdJhjI(}J*<+k(SA`T(($7AHZJY_0kwW4_VYs^rnV
zN#U!mTd&AV8v^O<r|va82u_TbFz?;$<V5V^b@JOo=ns0`e?-Urf@Mqa!~Va2*(iQ_
z0EtxnJ9dAa|A}4Na9{d!eIfSw7zJ7a+O>s?T6}8<`xGlO6sYJsd4nZ!3XD7N@{;0z
znt@_)ErkAHk=J^fef%lnH1ptu@l^rOZcX7DE!ju}34=MKp+&z3Bjj8OuDKlY3Ls9g
zbLR3PuS$bulL4@5vB1CV%vO&Vwqs~8t3+D@_q{DAs}-||XC>O3DQtQO(+n0&gf{wQ
zzN;$z<x>M?jmEg_8IsSXhjzkQ)uy3dQa(NxxuxcHxtvJwnUvbTf^faNq>!ro=@<Op
zuOv;1rJ)9cX`dcSjT{=B;$K`|TW23M=pd)4uib24b^x${+zg7T`_^<4su(w*pGgQ?
zTd`t<3n2n>Y~3IObc0`>N18C38(Oar%LBb@^B#%qS;m9SbRBH{l|?!Dy>XwAd%B9|
zKnB??RRj}(^FD%Pj`~!?Uc#2YKbldqNQy{rZCf9It<EYba;&whf9vgS6rWc!vcN>)
zm*rhzA)vOi=O4=FhO9Ice6%<-H?8)OcxyGasjcc=i{N$DuzAlF=UeD4c*YMz>UIpK
z{Qx}tAjJ>!=3U30gKv2`SO%`@f#oqWvApS#{#Krw$EJ**;MFf`UUQ<+?tIdfwq<F=
zvs-eBJocz<B1^<KIiZlAz;b&bp@&1Epr63vspo7ZswVvr2hyv5=0PF*L?-Y5{*^Fi
tJ?r;w0WF#_Vk5`52uS&!uWD&sGNGc?#Ak9&x7g=rt%N*@I^5oc{0GTOnf(9&