diff --git "a/src/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML.os" "b/src/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML.os"
new file mode 100644
index 0000000..ac67ad9
--- /dev/null
+++ "b/src/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML.os"
@@ -0,0 +1,79 @@
+///////////////////////////////////////////////////////////////////////////////
+//
+// Служебный модуль с реализацией сценариев обработки файлов <ПроверкаКорректностиXML>
+//
+///////////////////////////////////////////////////////////////////////////////
+
+Перем Лог;
+
+// ИмяСценария
+// Возвращает имя сценария обработки файлов
+//
+// Возвращаемое значение:
+// Строка - Имя текущего сценария обработки файлов
+//
+Функция ИмяСценария() Экспорт
+
+ Возврат "ПроверкаКорректностиXML";
+
+КонецФункции // ИмяСценария()
+
+// ОбработатьФайл
+// Выполняет обработку файла
+//
+// Параметры:
+// АнализируемыйФайл - Файл - Файл из журнала git для анализа
+// КаталогИсходныхФайлов - Строка - Каталог расположения исходных файлов относительно каталог репозитория
+// ДополнительныеПараметры - Структура - Набор дополнительных параметров, которые можно использовать
+// * Лог - Объект - Текущий лог
+// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
+// * КаталогРепозитория - Строка - Адрес каталога репозитория
+// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образовавшиеся в результате работы сценария
+// и которые необходимо дообработать
+//
+// Возвращаемое значение:
+// Булево - Признак выполненной обработки файла
+//
+Функция ОбработатьФайл(АнализируемыйФайл, КаталогИсходныхФайлов, ДополнительныеПараметры) Экспорт
+
+ Лог = ДополнительныеПараметры.Лог;
+ НастройкиСценария = ДополнительныеПараметры.Настройки.Получить(ИмяСценария());
+ Если АнализируемыйФайл.Существует() И (
+ ТипыФайлов.ЭтоФайлОписанияКонфигурации(АнализируемыйФайл) ИЛИ
+ ТипыФайлов.ЭтоФайлОписанияКонфигурацииEDT(АнализируемыйФайл) ИЛИ
+ ТипыФайлов.ЭтоФайлОписанияМетаданных(АнализируемыйФайл) ИЛИ
+ ТипыФайлов.ЭтоФайлОписанияФормы(АнализируемыйФайл) ИЛИ
+ ТипыФайлов.ЭтоФайлОписанияПланаОбмена(АнализируемыйФайл) ИЛИ
+ ТипыФайлов.ЭтоФайлОписанияФункциональнойОпции(АнализируемыйФайл)
+ ) Тогда
+
+ Лог.Информация("Обработка файла '%1' по сценарию '%2'", АнализируемыйФайл.ПолноеИмя, ИмяСценария());
+
+ ПроверитьНаКорректностьXML(АнализируемыйФайл.ПолноеИмя);
+ Возврат Истина;
+
+ КонецЕсли;
+
+ Возврат Ложь;
+
+КонецФункции // ОбработатьФайл()
+
+Процедура ПроверитьНаКорректностьXML(ПутьКФайлуМодуля)
+
+ ФайлXML = Новый ЧтениеXML();
+ Попытка
+ ФайлXML.ОткрытьФайл(ПутьКФайлуМодуля);
+ ФайлXML.ПерейтиКСодержимому();
+ Пока ФайлXML.Прочитать() Цикл
+ КонецЦикла;
+ ФайлXML.Закрыть();
+ Исключение
+ Инфо = ИнформацияОбОшибке();
+ ТекстОшибки = СтрШаблон("В файле '%1' нарушена корректность XML: %2", ПутьКФайлуМодуля, Инфо.Описание);
+ Лог.Ошибка(ТекстОшибки);
+
+ ВызватьИсключение ТекстОшибки;
+
+ КонецПопытки;
+
+КонецПроцедуры
diff --git "a/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/\320\235\320\265\320\272\320\276\321\200\321\200\320\265\320\272\321\202\320\275\321\213\320\265/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272.xml" "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/\320\235\320\265\320\272\320\276\321\200\321\200\320\265\320\272\321\202\320\275\321\213\320\265/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272.xml"
new file mode 100644
index 0000000..2cc8019
--- /dev/null
+++ "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/\320\235\320\265\320\272\320\276\321\200\321\200\320\265\320\272\321\202\320\275\321\213\320\265/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272.xml"
@@ -0,0 +1,15 @@
+
+
+
+
+ Справочник
+
+
+ ru
+ Справочник & Тест
+
+
+
+
+
+
diff --git "a/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272.mdo" "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272.mdo"
new file mode 100644
index 0000000..3d51b4b
--- /dev/null
+++ "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272.mdo"
@@ -0,0 +1,9 @@
+
+
+ Справочник
+
+ ru
+ Справочник
+
+
+
diff --git "a/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272.xml" "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272.xml"
new file mode 100644
index 0000000..b925c85
--- /dev/null
+++ "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272.xml"
@@ -0,0 +1,15 @@
+
+
+
+
+ Справочник
+
+
+ ru
+ Справочник
+
+
+
+
+
+
diff --git "a/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/Configurator/Configuration.xml" "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/Configurator/Configuration.xml"
new file mode 100644
index 0000000..255479a
--- /dev/null
+++ "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/Configurator/Configuration.xml"
@@ -0,0 +1,15 @@
+
+
+
+
+ ТестоваяКонфигурация
+
+
+ ru
+ ТестоваяКонфигурация
+
+
+
+
+
+
diff --git "a/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/Configurator/\320\235\320\265\320\272\320\276\321\200\321\200\320\265\320\272\321\202\320\275\321\213\320\265/Configuration.xml" "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/Configurator/\320\235\320\265\320\272\320\276\321\200\321\200\320\265\320\272\321\202\320\275\321\213\320\265/Configuration.xml"
new file mode 100644
index 0000000..fd94327
--- /dev/null
+++ "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/Configurator/\320\235\320\265\320\272\320\276\321\200\321\200\320\265\320\272\321\202\320\275\321\213\320\265/Configuration.xml"
@@ -0,0 +1,15 @@
+
+
+
+
+ ТестоваяКонфигурация
+
+
+ ru
+ ТестоваяКонфигурация
+
+
+
+
+
+
diff --git "a/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/EDT/Configuration.mdo" "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/EDT/Configuration.mdo"
new file mode 100644
index 0000000..829466b
--- /dev/null
+++ "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/EDT/Configuration.mdo"
@@ -0,0 +1,9 @@
+
+
+ ТестоваяКонфигурация
+
+ ru
+ ТестоваяКонфигурация
+
+
+
diff --git "a/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/EDT/\320\235\320\265\320\272\320\276\321\200\321\200\320\265\320\272\321\202\320\275\321\213\320\265/Configuration.mdo" "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/EDT/\320\235\320\265\320\272\320\276\321\200\321\200\320\265\320\272\321\202\320\275\321\213\320\265/Configuration.mdo"
new file mode 100644
index 0000000..7618341
--- /dev/null
+++ "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/EDT/\320\235\320\265\320\272\320\276\321\200\321\200\320\265\320\272\321\202\320\275\321\213\320\265/Configuration.mdo"
@@ -0,0 +1,9 @@
+
+
+ ТестоваяКонфигурация
+
+ ru
+ ТестоваяКонфигурация
+
+
+
diff --git "a/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/ExchangePlans/\320\237\320\273\320\260\320\275\320\236\320\261\320\274\320\265\320\275\320\260/Content.xml" "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/ExchangePlans/\320\237\320\273\320\260\320\275\320\236\320\261\320\274\320\265\320\275\320\260/Content.xml"
new file mode 100644
index 0000000..7288cdc
--- /dev/null
+++ "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/ExchangePlans/\320\237\320\273\320\260\320\275\320\236\320\261\320\274\320\265\320\275\320\260/Content.xml"
@@ -0,0 +1,15 @@
+
+
+
+
+ ПланОбмена
+
+
+ ru
+ ПланОбмена
+
+
+
+
+
+
diff --git "a/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/ExchangePlans/\320\237\320\273\320\260\320\275\320\236\320\261\320\274\320\265\320\275\320\260/\320\235\320\265\320\272\320\276\321\200\321\200\320\265\320\272\321\202\320\275\321\213\320\265/Content.xml" "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/ExchangePlans/\320\237\320\273\320\260\320\275\320\236\320\261\320\274\320\265\320\275\320\260/\320\235\320\265\320\272\320\276\321\200\321\200\320\265\320\272\321\202\320\275\321\213\320\265/Content.xml"
new file mode 100644
index 0000000..0740b2f
--- /dev/null
+++ "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/ExchangePlans/\320\237\320\273\320\260\320\275\320\236\320\261\320\274\320\265\320\275\320\260/\320\235\320\265\320\272\320\276\321\200\321\200\320\265\320\272\321\202\320\275\321\213\320\265/Content.xml"
@@ -0,0 +1,15 @@
+
+
+
+
+ ПланОбмена
+
+
+ ru
+ ПланОбмена
+
+
+
+
+
+
diff --git "a/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/ExchangePlans/\320\237\320\273\320\260\320\275\320\236\320\261\320\274\320\265\320\275\320\260/\320\237\320\273\320\260\320\275\320\236\320\261\320\274\320\265\320\275\320\260.mdo" "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/ExchangePlans/\320\237\320\273\320\260\320\275\320\236\320\261\320\274\320\265\320\275\320\260/\320\237\320\273\320\260\320\275\320\236\320\261\320\274\320\265\320\275\320\260.mdo"
new file mode 100644
index 0000000..bafabb7
--- /dev/null
+++ "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/ExchangePlans/\320\237\320\273\320\260\320\275\320\236\320\261\320\274\320\265\320\275\320\260/\320\237\320\273\320\260\320\275\320\236\320\261\320\274\320\265\320\275\320\260.mdo"
@@ -0,0 +1,9 @@
+
+
+ ПланОбмена
+
+ ru
+ ПланОбмена
+
+
+
diff --git "a/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/Forms/Configurator/Form.xml" "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/Forms/Configurator/Form.xml"
new file mode 100644
index 0000000..b7fe673
--- /dev/null
+++ "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/Forms/Configurator/Form.xml"
@@ -0,0 +1,13 @@
+
+
+
diff --git "a/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/Forms/Configurator/\320\235\320\265\320\272\320\276\321\200\321\200\320\265\320\272\321\202\320\275\321\213\320\265/Form.xml" "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/Forms/Configurator/\320\235\320\265\320\272\320\276\321\200\321\200\320\265\320\272\321\202\320\275\321\213\320\265/Form.xml"
new file mode 100644
index 0000000..52a74ac
--- /dev/null
+++ "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/Forms/Configurator/\320\235\320\265\320\272\320\276\321\200\321\200\320\265\320\272\321\202\320\275\321\213\320\265/Form.xml"
@@ -0,0 +1,13 @@
+
+
+
diff --git "a/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/Forms/EDT/Form.form" "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/Forms/EDT/Form.form"
new file mode 100644
index 0000000..6f06b4a
--- /dev/null
+++ "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/Forms/EDT/Form.form"
@@ -0,0 +1,110 @@
+
+
+
+ ГруппаШапка
+ 1
+
+ Использовать
+ 2
+ true
+ true
+
+ Объект.Использовать
+
+ Right
+ CheckBoxField
+ Left
+ Enter
+ true
+ Left
+ true
+
+ CheckBox
+
+
+ true
+ true
+
+ ru
+ Группа шапка
+
+ UsualGroup
+
+ true
+ true
+ Auto
+ Auto
+
+
+
+ Ответственный
+ 3
+ true
+ true
+
+ Объект.Ответственный
+
+ InputField
+ Enter
+ true
+ Left
+ true
+
+ true
+ true
+ true
+ true
+ true
+
+
+
+ ФормаКоманднаяПанель
+ -1
+
+ ФормаЗаписатьИЗакрыть
+ 4
+ true
+ true
+ Form.Command.ЗаписатьОбъектИЗакрыть
+ Auto
+ true
+ true
+ UserCmds
+ Auto
+
+
+ ФормаЗаписать
+ 5
+ true
+ true
+ Form.Command.ЗаписатьОбъект
+ Auto
+ true
+ true
+ UserCmds
+ Auto
+
+ true
+ true
+ Left
+ true
+
+ Help
+ Write
+ WriteAndClose
+ 800
+ LockOwnerWindow
+ true
+ true
+ Vertical
+ true
+ true
+ UseIfNecessary
+ true
+ true
+
+
+
+
+
+
diff --git "a/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/Forms/EDT/\320\235\320\265\320\272\320\276\321\200\321\200\320\265\320\272\321\202\320\275\321\213\320\265/Form.form" "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/Forms/EDT/\320\235\320\265\320\272\320\276\321\200\321\200\320\265\320\272\321\202\320\275\321\213\320\265/Form.form"
new file mode 100644
index 0000000..67dd707
--- /dev/null
+++ "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/Forms/EDT/\320\235\320\265\320\272\320\276\321\200\321\200\320\265\320\272\321\202\320\275\321\213\320\265/Form.form"
@@ -0,0 +1,8 @@
+
+
+
+ ГруппаШапка
+ 1
+
+
+
diff --git "a/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/FunctionalOptions/\320\244\321\203\320\275\320\272\321\206\320\270\320\276\320\275\320\260\320\273\321\214\320\275\320\260\321\217\320\236\320\277\321\206\320\270\321\217/\320\244\321\203\320\275\320\272\321\206\320\270\320\276\320\275\320\260\320\273\321\214\320\275\320\260\321\217\320\236\320\277\321\206\320\270\321\217.mdo" "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/FunctionalOptions/\320\244\321\203\320\275\320\272\321\206\320\270\320\276\320\275\320\260\320\273\321\214\320\275\320\260\321\217\320\236\320\277\321\206\320\270\321\217/\320\244\321\203\320\275\320\272\321\206\320\270\320\276\320\275\320\260\320\273\321\214\320\275\320\260\321\217\320\236\320\277\321\206\320\270\321\217.mdo"
new file mode 100644
index 0000000..c89c042
--- /dev/null
+++ "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/FunctionalOptions/\320\244\321\203\320\275\320\272\321\206\320\270\320\276\320\275\320\260\320\273\321\214\320\275\320\260\321\217\320\236\320\277\321\206\320\270\321\217/\320\244\321\203\320\275\320\272\321\206\320\270\320\276\320\275\320\260\320\273\321\214\320\275\320\260\321\217\320\236\320\277\321\206\320\270\321\217.mdo"
@@ -0,0 +1,9 @@
+
+
+ ФункциональнаяОпция
+
+ ru
+ ФункциональнаяОпция
+
+
+
diff --git "a/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/FunctionalOptions/\320\244\321\203\320\275\320\272\321\206\320\270\320\276\320\275\320\260\320\273\321\214\320\275\320\260\321\217\320\236\320\277\321\206\320\270\321\217/\320\244\321\203\320\275\320\272\321\206\320\270\320\276\320\275\320\260\320\273\321\214\320\275\320\260\321\217\320\236\320\277\321\206\320\270\321\217.xml" "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/FunctionalOptions/\320\244\321\203\320\275\320\272\321\206\320\270\320\276\320\275\320\260\320\273\321\214\320\275\320\260\321\217\320\236\320\277\321\206\320\270\321\217/\320\244\321\203\320\275\320\272\321\206\320\270\320\276\320\275\320\260\320\273\321\214\320\275\320\260\321\217\320\236\320\277\321\206\320\270\321\217.xml"
new file mode 100644
index 0000000..8a1cee2
--- /dev/null
+++ "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270XML/FunctionalOptions/\320\244\321\203\320\275\320\272\321\206\320\270\320\276\320\275\320\260\320\273\321\214\320\275\320\260\321\217\320\236\320\277\321\206\320\270\321\217/\320\244\321\203\320\275\320\272\321\206\320\270\320\276\320\275\320\260\320\273\321\214\320\275\320\260\321\217\320\236\320\277\321\206\320\270\321\217.xml"
@@ -0,0 +1,15 @@
+
+
+
+
+ ФункциональнаяОпция
+
+
+ ru
+ ФункциональнаяОпция
+
+
+
+
+
+
diff --git "a/tests/\320\242\320\265\321\201\321\202\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270.os" "b/tests/\320\242\320\265\321\201\321\202\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270.os"
index 9198145..9139755 100644
--- "a/tests/\320\242\320\265\321\201\321\202\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270.os"
+++ "b/tests/\320\242\320\265\321\201\321\202\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270.os"
@@ -49,6 +49,10 @@
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСообщениеКоммитаОбрабатываютФайлыТолькоВУказанномКаталоге");
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоВыполняютсяПринудительноУказанныеЛокальныеСценарии");
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоВыполняютсяВсеЛокальныеСценарии");
+ ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийПроверкиКорректностиXMLОбработаетКорректныеФайлы");
+ ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийПроверкиКорректностиXMLВызываетИсключение");
+ ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийПроверкиКорректностиXMLНеОбработаетНесуществующийФайл");
+ ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийПроверкиКорректностиXMLНеОбработаетНеXMLФайл");
Возврат ВсеТесты;
@@ -343,6 +347,134 @@
#КонецОбласти
+#Область ПроверкаКорректностиXML
+
+Процедура ТестДолжен_ПроверитьЧтоСценарийПроверкиКорректностиXMLОбработаетКорректныеФайлы() Экспорт
+
+ ОбъектСценария = ПолучитьСценарий("ПроверкаКорректностиXML.os");
+ ДополнительныеНастройки = ПолучитьДополнительныеНастройки();
+
+ // Проверка Configuration.xml (формат конфигуратора)
+ ПутьККонфигурации = ОбъединитьПути(КаталогТестовыхФикстур(), "ПроверкаКорректностиXML", "Configurator");
+ Файл = Новый Файл(ОбъединитьПути(ПутьККонфигурации, "Configuration.xml"));
+ Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ДополнительныеНастройки);
+ Ожидаем.Что(Результат, "Configuration.xml должен быть обработан").ЭтоИстина();
+
+ // Проверка Configuration.mdo (формат EDT)
+ ПутьККонфигурации = ОбъединитьПути(КаталогТестовыхФикстур(), "ПроверкаКорректностиXML", "EDT");
+ Файл = Новый Файл(ОбъединитьПути(ПутьККонфигурации, "Configuration.mdo"));
+ Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ДополнительныеНастройки);
+ Ожидаем.Что(Результат, "Configuration.mdo должен быть обработан").ЭтоИстина();
+
+ // Проверка Form.xml (формат конфигуратора)
+ ПутьКФорме = ОбъединитьПути(КаталогТестовыхФикстур(), "ПроверкаКорректностиXML", "Forms", "Configurator");
+ Файл = Новый Файл(ОбъединитьПути(ПутьКФорме, "Form.xml"));
+ Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ДополнительныеНастройки);
+ Ожидаем.Что(Результат, "Form.xml должен быть обработан").ЭтоИстина();
+
+ // Проверка Form.form (формат EDT)
+ ПутьКФорме = ОбъединитьПути(КаталогТестовыхФикстур(), "ПроверкаКорректностиXML", "Forms", "EDT");
+ Файл = Новый Файл(ОбъединитьПути(ПутьКФорме, "Form.form"));
+ Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ДополнительныеНастройки);
+ Ожидаем.Что(Результат, "Form.form должен быть обработан").ЭтоИстина();
+
+ // Проверка метаданных (справочник, формат конфигуратора)
+ ПутьКСправочнику = ОбъединитьПути(КаталогТестовыхФикстур(), "ПроверкаКорректностиXML", "Catalogs", "Справочник");
+ Файл = Новый Файл(ОбъединитьПути(ПутьКСправочнику, "Справочник.xml"));
+ Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ДополнительныеНастройки);
+ Ожидаем.Что(Результат, "Метаданные.xml должен быть обработан").ЭтоИстина();
+
+ // Проверка метаданных (справочник, формат EDT)
+ ПутьКСправочнику = ОбъединитьПути(КаталогТестовыхФикстур(), "ПроверкаКорректностиXML", "Catalogs", "Справочник");
+ Файл = Новый Файл(ОбъединитьПути(ПутьКСправочнику, "Справочник.mdo"));
+ Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ДополнительныеНастройки);
+ Ожидаем.Что(Результат, "Метаданные.mdo должен быть обработан").ЭтоИстина();
+
+ // Проверка плана обмена (формат конфигуратора)
+ ПутьКПлануОбмена = ОбъединитьПути(КаталогТестовыхФикстур(), "ПроверкаКорректностиXML", "ExchangePlans", "ПланОбмена");
+ Файл = Новый Файл(ОбъединитьПути(ПутьКПлануОбмена, "Content.xml"));
+ Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ДополнительныеНастройки);
+ Ожидаем.Что(Результат, "Content.xml плана обмена должен быть обработан").ЭтоИстина();
+
+ // Проверка плана обмена (формат EDT)
+ ПутьКПлануОбмена = ОбъединитьПути(КаталогТестовыхФикстур(), "ПроверкаКорректностиXML", "ExchangePlans", "ПланОбмена");
+ Файл = Новый Файл(ОбъединитьПути(ПутьКПлануОбмена, "ПланОбмена.mdo"));
+ Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ДополнительныеНастройки);
+ Ожидаем.Что(Результат, "ПланОбмена.mdo должен быть обработан").ЭтоИстина();
+
+ // Проверка функциональной опции (формат конфигуратора)
+ ПутьКФункциональнойОпции = ОбъединитьПути(КаталогТестовыхФикстур(), "ПроверкаКорректностиXML", "FunctionalOptions", "ФункциональнаяОпция");
+ Файл = Новый Файл(ОбъединитьПути(ПутьКФункциональнойОпции, "ФункциональнаяОпция.xml"));
+ Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ДополнительныеНастройки);
+ Ожидаем.Что(Результат, "ФункциональнаяОпция.xml должен быть обработан").ЭтоИстина();
+
+ // Проверка функциональной опции (формат EDT)
+ ПутьКФункциональнойОпции = ОбъединитьПути(КаталогТестовыхФикстур(), "ПроверкаКорректностиXML", "FunctionalOptions", "ФункциональнаяОпция");
+ Файл = Новый Файл(ОбъединитьПути(ПутьКФункциональнойОпции, "ФункциональнаяОпция.mdo"));
+ Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ДополнительныеНастройки);
+ Ожидаем.Что(Результат, "ФункциональнаяОпция.mdo должен быть обработан").ЭтоИстина();
+
+КонецПроцедуры
+
+Процедура ТестДолжен_ПроверитьЧтоСценарийПроверкиКорректностиXMLВызываетИсключение() Экспорт
+
+ ОбъектСценария = ПолучитьСценарий("ПроверкаКорректностиXML.os");
+
+ // Проверка незакрытого тега в Configuration.xml
+ ПутьКФикстурам = ОбъединитьПути(КаталогТестовыхФикстур(), "ПроверкаКорректностиXML");
+ ПутьККонфигурации = ОбъединитьПути(ПутьКФикстурам, "Configurator", "Некорректные");
+ Файл = Новый Файл(ОбъединитьПути(ПутьККонфигурации, "Configuration.xml"));
+ ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "нарушена корректность XML");
+
+ // Проверка неправильной структуры в Configuration.mdo
+ ПутьККонфигурации = ОбъединитьПути(ПутьКФикстурам, "EDT", "Некорректные");
+ Файл = Новый Файл(ОбъединитьПути(ПутьККонфигурации, "Configuration.mdo"));
+ ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "нарушена корректность XML");
+
+ // Проверка неправильного символа в Form.xml
+ ПутьКФорме = ОбъединитьПути(ПутьКФикстурам, "Forms", "Configurator", "Некорректные");
+ Файл = Новый Файл(ОбъединитьПути(ПутьКФорме, "Form.xml"));
+ ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "нарушена корректность XML");
+
+ // Проверка незакрытого тега в Form.form
+ ПутьКФорме = ОбъединитьПути(ПутьКФикстурам, "Forms", "EDT", "Некорректные");
+ Файл = Новый Файл(ОбъединитьПути(ПутьКФорме, "Form.form"));
+ ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "нарушена корректность XML");
+
+ // Проверка неправильной структуры в Content.xml (план обмена)
+ ПутьКПлануОбмена = ОбъединитьПути(ПутьКФикстурам, "ExchangePlans", "ПланОбмена", "Некорректные");
+ Файл = Новый Файл(ОбъединитьПути(ПутьКПлануОбмена, "Content.xml"));
+ ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "нарушена корректность XML");
+
+ // Проверка неправильного символа в метаданных (справочник)
+ ПутьКСправочнику = ОбъединитьПути(ПутьКФикстурам, "Catalogs", "Справочник", "Некорректные");
+ Файл = Новый Файл(ОбъединитьПути(ПутьКСправочнику, "Справочник.xml"));
+ ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "нарушена корректность XML");
+
+КонецПроцедуры
+
+Процедура ТестДолжен_ПроверитьЧтоСценарийПроверкиКорректностиXMLНеОбработаетНесуществующийФайл() Экспорт
+
+ Файл = Новый Файл(ПолучитьИмяВременногоФайла("xml"));
+ ОбъектСценария = ПолучитьСценарий("ПроверкаКорректностиXML.os");
+ Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ПолучитьДополнительныеНастройки());
+
+ Ожидаем.Что(Результат, Истина).ЭтоЛожь();
+
+КонецПроцедуры
+
+Процедура ТестДолжен_ПроверитьЧтоСценарийПроверкиКорректностиXMLНеОбработаетНеXMLФайл() Экспорт
+
+ Файл = Новый Файл(МенеджерВременныхФайлов.СоздатьФайл("bsl"));
+ ОбъектСценария = ПолучитьСценарий("ПроверкаКорректностиXML.os");
+ Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ПолучитьДополнительныеНастройки());
+
+ Ожидаем.Что(Результат, Истина).ЭтоЛожь();
+
+КонецПроцедуры
+
+#КонецОбласти
+
#Область СинхронизацияОбъектовМетаданныхИФайлов
Процедура ТестДолжен_ПроверитьЧтоСинхронизацияОбъектовМетаданныхВызываетИсключение() Экспорт