Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
///////////////////////////////////////////////////////////////////////////////
//
// Служебный модуль с реализацией сценариев обработки файлов <ПроверкаКорректностиXML>
//
///////////////////////////////////////////////////////////////////////////////

Перем Лог;

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

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

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

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

Лог = ДополнительныеПараметры.Лог;
НастройкиСценария = ДополнительныеПараметры.Настройки.Получить(ИмяСценария());
Если АнализируемыйФайл.Существует() И (

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Почему только данные файлы анализируются?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А какие еще есть варианты проверить, что файлы XML, и принадлежат вообще проекту, а не документация с кривой XML?

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

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

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

КонецЕсли;

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

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

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

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

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

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

КонецПроцедуры
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:v8="http://v8.1c.ru/8.1/data/core" version="2.7">
<Catalog uuid="12345678-1234-1234-1234-123456789012">
<Properties>
<Name>Справочник</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Справочник & Тест</v8:content>
</v8:item>
</Synonym>
</Properties>
</Catalog>
</MetaDataObject>

Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Catalog xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="12345678-1234-1234-1234-123456789012">
<name>Справочник</name>
<synonym>
<key>ru</key>
<value>Справочник</value>
</synonym>
</mdclass:Catalog>

Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:v8="http://v8.1c.ru/8.1/data/core" version="2.7">
<Catalog uuid="12345678-1234-1234-1234-123456789012">
<Properties>
<Name>Справочник</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Справочник</v8:content>
</v8:item>
</Synonym>
</Properties>
</Catalog>
</MetaDataObject>

Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:v8="http://v8.1c.ru/8.1/data/core" version="2.7">
<Configuration>
<Properties>
<Name>ТестоваяКонфигурация</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>ТестоваяКонфигурация</v8:content>
</v8:item>
</Synonym>
</Properties>
</Configuration>
</MetaDataObject>

Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:v8="http://v8.1c.ru/8.1/data/core" version="2.7">
<Configuration>
<Properties>
<Name>ТестоваяКонфигурация</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>ТестоваяКонфигурация</v8:content>
</v8:item>
</Synonym>
</Properties>
</Configuration>
<!-- Незакрытый тег MetaDataObject - файл некорректен -->

Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="12345678-1234-1234-1234-123456789012">
<name>ТестоваяКонфигурация</name>
<synonym>
<key>ru</key>
<value>ТестоваяКонфигурация</value>
</synonym>
</mdclass:Configuration>

Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="12345678-1234-1234-1234-123456789012">
<name>ТестоваяКонфигурация</name>
<synonym>
<key>ru</key>
<value>ТестоваяКонфигурация</value>
</synonym>
<!-- Незакрытый тег Configuration - файл некорректен -->

Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:v8="http://v8.1c.ru/8.1/data/core" version="2.7">
<ExchangePlan uuid="12345678-1234-1234-1234-123456789012">
<Properties>
<Name>ПланОбмена</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>ПланОбмена</v8:content>
</v8:item>
</Synonym>
</Properties>
</ExchangePlan>
</MetaDataObject>

Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:v8="http://v8.1c.ru/8.1/data/core" version="2.7">
<ExchangePlan uuid="12345678-1234-1234-1234-123456789012">
<Properties>
<Name>ПланОбмена</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>ПланОбмена</v8:content>
</v8:item>
</Synonym>
</Properties>
<!-- Незакрытый тег ExchangePlan - файл некорректен -->
</MetaDataObject>

Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:ExchangePlan xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="12345678-1234-1234-1234-123456789012">
<name>ПланОбмена</name>
<synonym>
<key>ru</key>
<value>ПланОбмена</value>
</synonym>
</mdclass:ExchangePlan>

Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlns="http://v8.1c.ru/8.1/data/ui" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" version="2.7">
<Properties>
<Name>Форма</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Форма</v8:content>
</v8:item>
</Synonym>
</Properties>
</Form>

Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlns="http://v8.1c.ru/8.1/data/ui" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" version="2.7">
<Properties>
<Name>Форма</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Форма & Тест</v8:content>
</v8:item>
</Synonym>
</Properties>
</Form>

Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
<?xml version="1.0" encoding="UTF-8"?>
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form">
<items xsi:type="form:FormGroup">
<name>ГруппаШапка</name>
<id>1</id>
<items xsi:type="form:FormField">
<name>Использовать</name>
<id>2</id>
<visible>true</visible>
<enabled>true</enabled>
<dataPath xsi:type="form:DataPath">
<segments>Объект.Использовать</segments>
</dataPath>
<titleLocation>Right</titleLocation>
<type>CheckBoxField</type>
<groupHorizontalAlign>Left</groupHorizontalAlign>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:CheckBoxFieldExtInfo">
<checkBoxType>CheckBox</checkBoxType>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<title>
<key>ru</key>
<value>Группа шапка</value>
</title>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>Ответственный</name>
<id>3</id>
<visible>true</visible>
<enabled>true</enabled>
<dataPath xsi:type="form:DataPath">
<segments>Объект.Ответственный</segments>
</dataPath>
<type>InputField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
</extInfo>
</items>
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<items xsi:type="form:Button">
<name>ФормаЗаписатьИЗакрыть</name>
<id>4</id>
<visible>true</visible>
<enabled>true</enabled>
<commandName>Form.Command.ЗаписатьОбъектИЗакрыть</commandName>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>ФормаЗаписать</name>
<id>5</id>
<visible>true</visible>
<enabled>true</enabled>
<commandName>Form.Command.ЗаписатьОбъект</commandName>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<visible>true</visible>
<enabled>true</enabled>
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<excludedCommands>Help</excludedCommands>
<excludedCommands>Write</excludedCommands>
<excludedCommands>WriteAndClose</excludedCommands>
<width>800</width>
<windowOpeningMode>LockOwnerWindow</windowOpeningMode>
<autoTitle>true</autoTitle>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<autoFillCheck>true</autoFillCheck>
<enabled>true</enabled>
<verticalScroll>UseIfNecessary</verticalScroll>
<showTitle>true</showTitle>
<showCloseButton>true</showCloseButton>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
<extInfo xsi:type="form:CatalogFormExtInfo"/>
</form:Form>
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form">
<items xsi:type="form:FormGroup">
<name>ГруппаШапка</name>
<id>1</id>
</items>
<!-- Незакрытый тег form:Form - файл некорректен -->

Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:FunctionalOption xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="12345678-1234-1234-1234-123456789012">
<name>ФункциональнаяОпция</name>
<synonym>
<key>ru</key>
<value>ФункциональнаяОпция</value>
</synonym>
</mdclass:FunctionalOption>

Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:v8="http://v8.1c.ru/8.1/data/core" version="2.7">
<FunctionalOption uuid="12345678-1234-1234-1234-123456789012">
<Properties>
<Name>ФункциональнаяОпция</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>ФункциональнаяОпция</v8:content>
</v8:item>
</Synonym>
</Properties>
</FunctionalOption>
</MetaDataObject>

Loading