Skip to content

Commit

Permalink
Add new scenario ПроверкаКорректностиXML
Browse files Browse the repository at this point in the history
Добавлен новый сценарий валидации XML-файла без логики
  • Loading branch information
Kirill committed Jun 20, 2024
1 parent 1b745d0 commit c2cc13e
Showing 1 changed file with 79 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
///////////////////////////////////////////////////////////////////////////////
//
// Служебный модуль с реализацией сценариев обработки файлов <ПроверкаКорректностиXML>
//
///////////////////////////////////////////////////////////////////////////////

Перем Лог;

// ИмяСценария
// Возвращает имя сценария обработки файлов
//
// Возвращаемое значение:
// Строка - Имя текущего сценария обработки файлов
//
Функция ИмяСценария() Экспорт

Возврат "ПроверкаКорректностиXML";

КонецФункции // ИмяСценария()

// ОбработатьФайл
// Выполняет обработку файла
//
// Параметры:
// АнализируемыйФайл - Файл - Файл из журнала git для анализа
// КаталогИсходныхФайлов - Строка - Каталог расположения исходных файлов относительно каталог репозитория
// ДополнительныеПараметры - Структура - Набор дополнительных параметров, которые можно использовать
// * Лог - Объект - Текущий лог
// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
// * КаталогРепозитория - Строка - Адрес каталога репозитория
// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образовавшиеся в результате работы сценария
// и которые необходимо дообработать
//
// Возвращаемое значение:
// Булево - Признак выполненной обработки файла
//
Функция ОбработатьФайл(АнализируемыйФайл, КаталогИсходныхФайлов, ДополнительныеПараметры) Экспорт

Лог = ДополнительныеПараметры.Лог;
НастройкиСценария = ДополнительныеПараметры.Настройки.Получить(ИмяСценария());
Если АнализируемыйФайл.Существует() И (
ТипыФайлов.ЭтоФайлОписанияКонфигурации(АнализируемыйФайл) ИЛИ
ТипыФайлов.ЭтоФайлОписанияКонфигурацииEDT(АнализируемыйФайл) ИЛИ
ТипыФайлов.ЭтоФайлОписанияМетаданных(АнализируемыйФайл) ИЛИ
ТипыФайлов.ЭтоФайлОписанияФормы(АнализируемыйФайл) ИЛИ
ТипыФайлов.ЭтоФайлОписанияПланаОбмена(АнализируемыйФайл) ИЛИ
ТипыФайлов.ЭтоФайлОписанияФункциональнойОпции(АнализируемыйФайл)
) Тогда

Лог.Информация("Обработка файла '%1' по сценарию '%2'", АнализируемыйФайл.ПолноеИмя, ИмяСценария());

ПроверитьНаКорректностьXML(АнализируемыйФайл.ПолноеИмя);
Возврат Истина;

КонецЕсли;

Возврат Ложь;

КонецФункции // ОбработатьФайл()

Процедура ПроверитьНаКорректностьXML(ПутьКФайлуМодуля)

ФайлXML = Новый ЧтениеXML();
Попытка
ФайлXML.ОткрытьФайл(ПутьКФайлуМодуля);
ФайлXML.ПерейтиКСодержимому();
Пока ФайлXML.Прочитать() Цикл
КонецЦикла;
ФайлXML.Закрыть();
Исключение
Инфо = ИнформацияОбОшибке();
ТекстОшибки = СтрШаблон("В файле '%1' нарушена корректность XML: %2", ПутьКФайлуМодуля, Инфо.Описание);
Лог.Ошибка(ТекстОшибки);

ВызватьИсключение ТекстОшибки;

КонецПопытки;

КонецПроцедуры

0 comments on commit c2cc13e

Please sign in to comment.