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", ПутьКФайлуМодуля, Инфо.Описание); + Лог.Ошибка(ТекстОшибки); + + ВызватьИсключение ТекстОшибки; + + КонецПопытки; + +КонецПроцедуры