mirror of
https://github.com/bia-technologies/precommit4onec.git
synced 2024-12-30 21:19:59 +02:00
ORAIS-951 / Ошибки сортировки состава подсистем
This commit is contained in:
parent
830213eca5
commit
8fdc5d0d76
@ -36,6 +36,7 @@
|
||||
|
||||
Лог = ДополнительныеПараметры.Лог;
|
||||
НастройкиСценария = ДополнительныеПараметры.Настройки.Получить(ИмяСценария());
|
||||
ФайлОбработан = Ложь;
|
||||
|
||||
Если АнализируемыйФайл.Существует() Тогда
|
||||
|
||||
@ -45,95 +46,85 @@
|
||||
Лог.Информация("Обработка файла '%1' по сценарию '%2'", АнализируемыйФайл.ПолноеИмя, ИмяСценария());
|
||||
ЭтоЕДТ = ТипыФайлов.ЭтоФайлОписанияПодсистемыEDT(АнализируемыйФайл);
|
||||
|
||||
Если ОтсортироватьПодсистему(АнализируемыйФайл.ПолноеИмя, ЭтоЕДТ) Тогда
|
||||
|
||||
ДополнительныеПараметры.ИзмененныеКаталоги.Добавить(АнализируемыйФайл.ПолноеИмя);
|
||||
|
||||
КонецЕсли;
|
||||
ФайлОбработан = ОтсортироватьПодсистему(АнализируемыйФайл.ПолноеИмя, ЭтоЕДТ);
|
||||
|
||||
Возврат Истина;
|
||||
Если ФайлОбработан Тогда
|
||||
ДополнительныеПараметры.ИзмененныеКаталоги.Добавить(АнализируемыйФайл.ПолноеИмя);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Ложь;
|
||||
Возврат ФайлОбработан;
|
||||
|
||||
КонецФункции // ОбработатьФайл()
|
||||
|
||||
Функция ОтсортироватьПодсистему(Знач ИмяФайла, ЭтоЕДТ)
|
||||
|
||||
СодержимоеФайла = ФайловыеОперации.ПрочитатьТекстФайла(ИмяФайла);
|
||||
Регексп = РегекспСостав(ЭтоЕДТ);
|
||||
ПодчиненныеМетаданные = Регексп.НайтиСовпадения(СодержимоеФайла);
|
||||
|
||||
Если ПодчиненныеМетаданные.Количество() = 0 Тогда
|
||||
|
||||
|
||||
РегекспСостав = РегекспСостав(ЭтоЕДТ);
|
||||
СовпаденияСостава = РегекспСостав.НайтиСовпадения(СодержимоеФайла);
|
||||
Если СовпаденияСостава.Количество() = 0 Тогда
|
||||
Возврат Ложь;
|
||||
|
||||
КонецЕсли;
|
||||
СовпадениеСостава = СовпаденияСостава[0];
|
||||
|
||||
ИсходнаяСтрока = ПодчиненныеМетаданные[0].Группы[0].Значение;
|
||||
ОбъектыМетаданныхСтроки = РегекспМетаданные(ЭтоЕДТ).НайтиСовпадения(ИсходнаяСтрока);
|
||||
СтрокаПоискаМетаданных = ?(ЭтоЕДТ,
|
||||
СовпадениеСостава.Группы[0].Значение, // Всё совпадение (нет общего тега)
|
||||
СовпадениеСостава.Группы[1].Значение); // Текст внутри общего тега Content
|
||||
СовпаденияМетаданных = РегекспМетаданные().НайтиСовпадения(СтрокаПоискаМетаданных);
|
||||
|
||||
// отдельный список с типами, нужен для того, чтобы сохранить порядок при обходе соответствия
|
||||
ОбъектыТипаПоПорядку = Новый СписокЗначений;
|
||||
ТаблицаСостава = Новый ТаблицаЗначений;
|
||||
ТаблицаСостава.Колонки.Добавить("СтрокаСостава");
|
||||
|
||||
ОбъектыМетаданных = Новый Соответствие;
|
||||
ПоследнийТип = "";
|
||||
ОбъектыТипа = Новый СписокЗначений;
|
||||
Для Каждого ОбъектМетаданных Из ОбъектыМетаданныхСтроки Цикл
|
||||
Для Каждого СовпадениеМетаданных Из СовпаденияМетаданных Цикл
|
||||
|
||||
ТипМетаданных = ОбъектМетаданных.Группы[1].Значение;
|
||||
СтрокаМетаданных = ОбъектМетаданных.Группы[0].Значение;
|
||||
ИмяМетаданного = ОбъектМетаданных.Группы[2].Значение;
|
||||
Если СтрНачинаетсяС(ИмяМетаданного, ".") Тогда
|
||||
ИмяМетаданного = Сред(ИмяМетаданного, 2);
|
||||
Если СтрНайти(СовпадениеМетаданных.Группы[1].Значение, "-") > 0 Тогда // Значение тега (имя метаданных), вероятно это UID (битая ссылка)
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Список = ОбъектыМетаданных.Получить(ТипМетаданных);
|
||||
ТаблицаСостава.Добавить().СтрокаСостава = СовпадениеМетаданных.Группы[0].Значение;
|
||||
|
||||
Если Список = Неопределено Тогда
|
||||
Список = Новый СписокЗначений;
|
||||
ОбъектыМетаданных.Вставить(ТипМетаданных, Список);
|
||||
ОбъектыТипаПоПорядку.Добавить(ТипМетаданных);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Если Список.НайтиПоЗначению(ОбъектМетаданных.Группы[0].Значение) = Неопределено Тогда
|
||||
Список.Добавить(ОбъектМетаданных.Группы[0].Значение, ИмяМетаданного);
|
||||
ТаблицаСостава.Сортировать("СтрокаСостава");
|
||||
ТаблицаСостава.Свернуть("СтрокаСостава");
|
||||
|
||||
РазделительЭлементов = ?(ЭтоЕДТ,
|
||||
Символы.ПС + " ",
|
||||
Символы.ПС + " ");
|
||||
СтрокаЗамены = СтрСоединить(ТаблицаСостава.ВыгрузитьКолонку("СтрокаСостава"), РазделительЭлементов);
|
||||
|
||||
Если ЗначениеЗаполнено(СтрокаЗамены) Тогда
|
||||
|
||||
СтрокаЗамены = РазделительЭлементов + СтрокаЗамены;
|
||||
|
||||
Если Не ЭтоЕДТ Тогда
|
||||
СтрокаЗамены = СтрШаблон(
|
||||
"
|
||||
| <Content>%1
|
||||
| </Content>",
|
||||
СтрокаЗамены);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
СтрокаЗамены = "";
|
||||
|
||||
Для Каждого Тип Из ОбъектыТипаПоПорядку Цикл
|
||||
ИначеЕсли Не ЭтоЕДТ Тогда
|
||||
|
||||
ОбъектМетаданных = ОбъектыМетаданных.Получить(Тип.Значение);
|
||||
СтрокаЗамены =
|
||||
"
|
||||
| <Content/>";
|
||||
|
||||
ОбъектМетаданных.СортироватьПоПредставлению(НаправлениеСортировки.Возр);
|
||||
|
||||
СтрокаЗамены = СтрокаЗамены + ?(ПустаяСтрока(СтрокаЗамены), "", Символы.ПС)
|
||||
+ СтрСоединить(ОбъектМетаданных.ВыгрузитьЗначения(), Символы.ПС);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Если НЕ ЭтоЕДТ Тогда
|
||||
СтрокаЗамены = ПодчиненныеМетаданные[0].Группы[1].Значение + СокрЛП(СтрокаЗамены)
|
||||
+ ПодчиненныеМетаданные[0].Группы[3].Значение;
|
||||
КонецЕсли;
|
||||
|
||||
Если СтрСравнить(ИсходнаяСтрока, СтрокаЗамены) = 0 Тогда
|
||||
|
||||
СтрокаЗамены = СтрокаЗамены + Символы.ПС;
|
||||
|
||||
ИсходнаяСтрока = СовпадениеСостава.Группы[0].Значение; // Всё совпадение, которое будем заменять
|
||||
Если СтрСравнить(ИсходнаяСтрока, СтрокаЗамены) = 0 Тогда
|
||||
Возврат Ложь;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если ЭтоЕДТ Тогда
|
||||
СодержимоеФайла = Регексп.Заменить(СодержимоеФайла, СокрЛП(СтрокаЗамены));
|
||||
Иначе
|
||||
СодержимоеФайла = Регексп.Заменить(СодержимоеФайла, СтрокаЗамены);
|
||||
КонецЕсли;
|
||||
|
||||
СодержимоеФайла = РегекспСостав.Заменить(СодержимоеФайла, СтрокаЗамены);
|
||||
ФайловыеОперации.ЗаписатьТекстФайла(ИмяФайла, СодержимоеФайла);
|
||||
|
||||
Возврат Истина;
|
||||
@ -142,8 +133,10 @@
|
||||
|
||||
Функция РегекспСостав(ЭтоЕДТ)
|
||||
|
||||
ПоискДочерних = ?(ЭтоЕДТ, "(?:<content>)([\w\W]+)(?:<\/content>)", "(<Content>\s+)(<[\w\W]+>)(\s+<\/Content>)");
|
||||
Регексп = Новый РегулярноеВыражение(ПоискДочерних);
|
||||
ПоискСостава = ?(ЭтоЕДТ,
|
||||
"\s*<content>[\w\W]+<\/content>[\t ]*\n*",
|
||||
"\s*<Content>([\w\W]+)<\/Content>[\t ]*\n*");
|
||||
Регексп = Новый РегулярноеВыражение(ПоискСостава);
|
||||
Регексп.ИгнорироватьРегистр = Истина;
|
||||
Регексп.Многострочный = Истина;
|
||||
|
||||
@ -151,12 +144,9 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция РегекспМетаданные(ЭтоЕДТ)
|
||||
Функция РегекспМетаданные()
|
||||
|
||||
ШаблонНачало = ?(ЭтоЕДТ, "^\s*<[\w]+>", "^\s+<[\w:\s=""]+>");
|
||||
ШаблонИмяМетаданных = "([a-zA-Z]+)((?:\.(?:[а-яa-zA-ZА-Я0-9_]+))+)";
|
||||
ШаблонУИД = "(([a-zA-z0-9\-]+))";
|
||||
ПоискМетаданных = СтрШаблон("%1(?:%2|%3)<\/[\w:]+>", ШаблонНачало, ШаблонУИД, ШаблонИмяМетаданных);
|
||||
ПоискМетаданных = "<[^>]+>([^<]*)<\/[^>]+>"; // Разбивка по тегам
|
||||
Регексп = Новый РегулярноеВыражение(ПоискМетаданных);
|
||||
Регексп.ИгнорироватьРегистр = Истина;
|
||||
Регексп.Многострочный = Истина;
|
||||
|
20
tests/fixtures/СортировкаОбъектовВПодсистемах/До/БазовыйФункционал.mdo
vendored
Normal file
20
tests/fixtures/СортировкаОбъектовВПодсистемах/До/БазовыйФункционал.mdo
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:Subsystem xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="e847cc8a-a9f6-485f-b71f-305844be437d">
|
||||
<name>БазовыйФункционал</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Базовый функционал</value>
|
||||
</synonym>
|
||||
<includeHelpInContents>true</includeHelpInContents>
|
||||
<includeInCommandInterface>true</includeInCommandInterface>
|
||||
<explanation>
|
||||
<key>ru</key>
|
||||
<value>Содержит подсистемы с базовым функционалом и инструментами без которых существование системы невозможно.</value>
|
||||
</explanation>
|
||||
<content>4308b2f2-9e92-486e-8c34-13c11fd5fb49</content>
|
||||
<subsystems>НастройкиПользователей</subsystems>
|
||||
<subsystems>ОбщегоНазначения</subsystems>
|
||||
<subsystems>УправлениеДоступом</subsystems>
|
||||
<subsystems>Преобразования</subsystems>
|
||||
<parentSubsystem>Subsystem.ПодсистемыБСП</parentSubsystem>
|
||||
</mdclass:Subsystem>
|
41
tests/fixtures/СортировкаОбъектовВПодсистемах/До/Интеграция.xml
vendored
Normal file
41
tests/fixtures/СортировкаОбъектовВПодсистемах/До/Интеграция.xml
vendored
Normal file
@ -0,0 +1,41 @@
|
||||
<?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.4">
|
||||
<Subsystem uuid="b3fd2876-4b85-4038-bc81-1eb600a9be18">
|
||||
<Properties>
|
||||
<Name>Интеграция</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Интеграция</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<IncludeHelpInContents>true</IncludeHelpInContents>
|
||||
<IncludeInCommandInterface>true</IncludeInCommandInterface>
|
||||
<Explanation>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Содержит подсистемы</v8:content>
|
||||
</v8:item>
|
||||
</Explanation>
|
||||
<Picture/><Content>
|
||||
<xr:Item xsi:type="xr:MDObjectRef">Enum.Енум1</xr:Item>
|
||||
<xr:Item xsi:type="xr:MDObjectRef">Enum.Енум2</xr:Item>
|
||||
<xr:Item xsi:type="xr:MDObjectRef">4308b2f2-9e92-486e-8c34-13c11fd5fb49</xr:Item>
|
||||
<xr:Item xsi:type="xr:MDObjectRef">Enum.Енум7</xr:Item><xr:Item xsi:type="xr:MDObjectRef">Enum.Енум6</xr:Item>
|
||||
<xr:Item xsi:type="xr:MDObjectRef">ExternalDataSource.ТекущаяСУБД.Table.ИнформацияОбОшибках</xr:Item>
|
||||
</Content>
|
||||
|
||||
</Properties>
|
||||
<ChildObjects>
|
||||
<Subsystem>Файлы8</Subsystem>
|
||||
<Subsystem>Файлы7</Subsystem>
|
||||
<Subsystem>Файлы6</Subsystem>
|
||||
<Subsystem>Файлы5</Subsystem>
|
||||
<Subsystem>Файлы1</Subsystem>
|
||||
<Subsystem>Файлы3</Subsystem>
|
||||
<Subsystem>Файлы4</Subsystem>
|
||||
<Subsystem>Файлы2</Subsystem>
|
||||
</ChildObjects>
|
||||
</Subsystem>
|
||||
</MetaDataObject>
|
32
tests/fixtures/СортировкаОбъектовВПодсистемах/До/НСИ.xml
vendored
Normal file
32
tests/fixtures/СортировкаОбъектовВПодсистемах/До/НСИ.xml
vendored
Normal file
@ -0,0 +1,32 @@
|
||||
<?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.4">
|
||||
<Subsystem uuid="7f5df10d-3540-4324-957b-6c5c5ac2d87f">
|
||||
<Properties>
|
||||
<Name>НСИ</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>НСИ</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<IncludeHelpInContents>true</IncludeHelpInContents>
|
||||
<IncludeInCommandInterface>true</IncludeInCommandInterface>
|
||||
<Explanation>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Включает в себя подсистемы предоставляющие функционал по хранению и использованию различных классификаторов и нормативно-справочной информации</v8:content>
|
||||
</v8:item>
|
||||
</Explanation>
|
||||
<Picture/>
|
||||
<Content/>
|
||||
</Properties>
|
||||
<ChildObjects>
|
||||
<Subsystem>АдресныйКлассификатор</Subsystem>
|
||||
<Subsystem>Банки</Subsystem>
|
||||
<Subsystem>Валюты</Subsystem>
|
||||
<Subsystem>Календари</Subsystem>
|
||||
<Subsystem>ПрочиеКлассификаторы</Subsystem>
|
||||
</ChildObjects>
|
||||
</Subsystem>
|
||||
</MetaDataObject>
|
38
tests/fixtures/СортировкаОбъектовВПодсистемах/До/ПодсистемыБСП.xml
vendored
Normal file
38
tests/fixtures/СортировкаОбъектовВПодсистемах/До/ПодсистемыБСП.xml
vendored
Normal file
@ -0,0 +1,38 @@
|
||||
<?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.4">
|
||||
<Subsystem uuid="5ef92658-c995-4fc3-b322-1adf888b601f">
|
||||
<Properties>
|
||||
<Name>ПодсистемыБСП</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Подсистемы БСП</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<IncludeHelpInContents>true</IncludeHelpInContents>
|
||||
<IncludeInCommandInterface>false</IncludeInCommandInterface>
|
||||
<Explanation>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Состав подсистем конфигурации БСП.
|
||||
Первый уровень - это разделы, второй уровень - это подсистемы.
|
||||
Все объекты находятся на уровне подсистем, к разделам прикрепление объектов запрещено.</v8:content>
|
||||
</v8:item>
|
||||
</Explanation>
|
||||
<Picture/>
|
||||
<Content>
|
||||
<xr:Item xsi:type="xr:MDObjectRef">e2630219-115c-4995-9a5d-52482cb39909</xr:Item>
|
||||
</Content>
|
||||
</Properties>
|
||||
<ChildObjects>
|
||||
<Subsystem>БазовыйФункционал</Subsystem>
|
||||
<Subsystem>ИзмененияОбъектов</Subsystem>
|
||||
<Subsystem>Интеграция</Subsystem>
|
||||
<Subsystem>НСИ</Subsystem>
|
||||
<Subsystem>ОбменСообщениями</Subsystem>
|
||||
<Subsystem>ПрикладнойИнструментарий</Subsystem>
|
||||
<Subsystem>СервисныйИнструментарий</Subsystem>
|
||||
</ChildObjects>
|
||||
</Subsystem>
|
||||
</MetaDataObject>
|
15
tests/fixtures/СортировкаОбъектовВПодсистемах/До/УведомленияПриИзмененииОбъектов.mdo
vendored
Normal file
15
tests/fixtures/СортировкаОбъектовВПодсистемах/До/УведомленияПриИзмененииОбъектов.mdo
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:Subsystem xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="4308b2f2-9e92-486e-8c34-13c11fd5fb49">
|
||||
<name>Уведомления</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Уведомления</value>
|
||||
</synonym>
|
||||
<includeHelpInContents>true</includeHelpInContents>
|
||||
<includeInCommandInterface>true</includeInCommandInterface><content>Catalog.ВидыУведомлений</content> <content>CommonModule.Уведомления</content>
|
||||
<content>CommonModule.УведомленияПереопределяемый</content><content>CommonModule.УведомленияСервер</content>
|
||||
<content>CommonModule.УведомленияСерверПовтИсп</content>
|
||||
<content>Constant.АдресатыПолучения</content>
|
||||
<content>ExternalDataSource.ТекущаяСУБД.Table.ИнформацияОбОшибках</content>
|
||||
<parentSubsystem>Subsystem.ПодсистемыБСП.Subsystem.ОбменСообщениями</parentSubsystem>
|
||||
</mdclass:Subsystem>
|
19
tests/fixtures/СортировкаОбъектовВПодсистемах/После/БазовыйФункционал.mdo
vendored
Normal file
19
tests/fixtures/СортировкаОбъектовВПодсистемах/После/БазовыйФункционал.mdo
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:Subsystem xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="e847cc8a-a9f6-485f-b71f-305844be437d">
|
||||
<name>БазовыйФункционал</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Базовый функционал</value>
|
||||
</synonym>
|
||||
<includeHelpInContents>true</includeHelpInContents>
|
||||
<includeInCommandInterface>true</includeInCommandInterface>
|
||||
<explanation>
|
||||
<key>ru</key>
|
||||
<value>Содержит подсистемы с базовым функционалом и инструментами без которых существование системы невозможно.</value>
|
||||
</explanation>
|
||||
<subsystems>НастройкиПользователей</subsystems>
|
||||
<subsystems>ОбщегоНазначения</subsystems>
|
||||
<subsystems>УправлениеДоступом</subsystems>
|
||||
<subsystems>Преобразования</subsystems>
|
||||
<parentSubsystem>Subsystem.ПодсистемыБСП</parentSubsystem>
|
||||
</mdclass:Subsystem>
|
@ -22,9 +22,8 @@
|
||||
<Content>
|
||||
<xr:Item xsi:type="xr:MDObjectRef">Enum.Енум1</xr:Item>
|
||||
<xr:Item xsi:type="xr:MDObjectRef">Enum.Енум2</xr:Item>
|
||||
<xr:Item xsi:type="xr:MDObjectRef">4308b2f2-9e92-486e-8c34-13c11fd5fb49</xr:Item>
|
||||
<xr:Item xsi:type="xr:MDObjectRef">Enum.Енум7</xr:Item>
|
||||
<xr:Item xsi:type="xr:MDObjectRef">Enum.Енум6</xr:Item>
|
||||
<xr:Item xsi:type="xr:MDObjectRef">Enum.Енум7</xr:Item>
|
||||
<xr:Item xsi:type="xr:MDObjectRef">ExternalDataSource.ТекущаяСУБД.Table.ИнформацияОбОшибках</xr:Item>
|
||||
</Content>
|
||||
</Properties>
|
||||
@ -39,4 +38,4 @@
|
||||
<Subsystem>Файлы2</Subsystem>
|
||||
</ChildObjects>
|
||||
</Subsystem>
|
||||
</MetaDataObject>
|
||||
</MetaDataObject>
|
36
tests/fixtures/СортировкаОбъектовВПодсистемах/После/ПодсистемыБСП.xml
vendored
Normal file
36
tests/fixtures/СортировкаОбъектовВПодсистемах/После/ПодсистемыБСП.xml
vendored
Normal file
@ -0,0 +1,36 @@
|
||||
<?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.4">
|
||||
<Subsystem uuid="5ef92658-c995-4fc3-b322-1adf888b601f">
|
||||
<Properties>
|
||||
<Name>ПодсистемыБСП</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Подсистемы БСП</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<IncludeHelpInContents>true</IncludeHelpInContents>
|
||||
<IncludeInCommandInterface>false</IncludeInCommandInterface>
|
||||
<Explanation>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Состав подсистем конфигурации БСП.
|
||||
Первый уровень - это разделы, второй уровень - это подсистемы.
|
||||
Все объекты находятся на уровне подсистем, к разделам прикрепление объектов запрещено.</v8:content>
|
||||
</v8:item>
|
||||
</Explanation>
|
||||
<Picture/>
|
||||
<Content/>
|
||||
</Properties>
|
||||
<ChildObjects>
|
||||
<Subsystem>БазовыйФункционал</Subsystem>
|
||||
<Subsystem>ИзмененияОбъектов</Subsystem>
|
||||
<Subsystem>Интеграция</Subsystem>
|
||||
<Subsystem>НСИ</Subsystem>
|
||||
<Subsystem>ОбменСообщениями</Subsystem>
|
||||
<Subsystem>ПрикладнойИнструментарий</Subsystem>
|
||||
<Subsystem>СервисныйИнструментарий</Subsystem>
|
||||
</ChildObjects>
|
||||
</Subsystem>
|
||||
</MetaDataObject>
|
@ -7,13 +7,12 @@
|
||||
</synonym>
|
||||
<includeHelpInContents>true</includeHelpInContents>
|
||||
<includeInCommandInterface>true</includeInCommandInterface>
|
||||
<content>CommonModule.Уведомления</content>
|
||||
<content>4308b2f2-9e92-486e-8c34-13c11fd5fb49</content>
|
||||
<content>CommonModule.УведомленияСервер</content>
|
||||
<content>Constant.АдресатыПолучения</content>
|
||||
<content>CommonModule.УведомленияПереопределяемый</content>
|
||||
<content>Catalog.ВидыУведомлений</content>
|
||||
<content>CommonModule.Уведомления</content>
|
||||
<content>CommonModule.УведомленияПереопределяемый</content>
|
||||
<content>CommonModule.УведомленияСервер</content>
|
||||
<content>CommonModule.УведомленияСерверПовтИсп</content>
|
||||
<content>Constant.АдресатыПолучения</content>
|
||||
<content>ExternalDataSource.ТекущаяСУБД.Table.ИнформацияОбОшибках</content>
|
||||
<parentSubsystem>Subsystem.ПодсистемыБСП.Subsystem.ОбменСообщениями</parentSubsystem>
|
||||
</mdclass:Subsystem>
|
@ -10,6 +10,7 @@
|
||||
Перем МенеджерВременныхФайлов;
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
// Основная точка входа
|
||||
Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт
|
||||
|
||||
@ -30,7 +31,6 @@
|
||||
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияНеИндексируетНеизмененные");
|
||||
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияИсправляетТолькоНаписание");
|
||||
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСинхронизацияОбъектовМетаданныхВызываетИсключение");
|
||||
|
||||
ВсеТесты.Добавить("ТестДолжен_ПроверитьЗагрузкуСценариевПоИмени");
|
||||
ВсеТесты.Добавить("ТестДолжен_ПроверитьИзменениеТегаКастомизацииФормы");
|
||||
|
||||
@ -85,47 +85,50 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СортировкаСоставаМетаданных
|
||||
#Область СортировкаСоставаПодсистем
|
||||
|
||||
Процедура ТестДолжен_ПроверитьСортировкуВПодсистемах() Экспорт
|
||||
|
||||
ОбъектСценария = ПолучитьСценарий("СортировкаСоставаПодсистем.os");
|
||||
Настройки = ПолучитьДополнительныеНастройки();
|
||||
|
||||
ИмяФайла = "СортировкаОбъектовВПодсистемах/Интеграция.xml";
|
||||
Файл = ПодготовитьИзменяемыйТестовыйФайл(ИмяФайла, "Интеграция.xml", "Subsystems");
|
||||
|
||||
ТекстДо = ФайловыеОперации.ПрочитатьТекстФайла(Файл.ПолноеИмя);
|
||||
Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, Настройки);
|
||||
Ожидаем.Что(Результат, Истина).ЭтоИстина();
|
||||
ТекстПосле = ФайловыеОперации.ПрочитатьТекстФайла(Файл.ПолноеИмя);
|
||||
Ожидаем.Что(ТекстДо, Истина).Не_().Равно(ТекстПосле);
|
||||
Ожидаем.Что(СтрЧислоСтрок(ТекстДо), Истина).Равно(СтрЧислоСтрок(ТекстПосле));
|
||||
|
||||
ИмяФайла = "СортировкаОбъектовВПодсистемах/УведомленияПриИзмененииОбъектов.mdo";
|
||||
Файл = ПодготовитьИзменяемыйТестовыйФайл(ИмяФайла, "УведомленияПриИзмененииОбъектов.mdo", "Subsystems");
|
||||
ТекстДо = ФайловыеОперации.ПрочитатьТекстФайла(Файл.ПолноеИмя);
|
||||
Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, Настройки);
|
||||
Ожидаем.Что(Результат, Истина).ЭтоИстина();
|
||||
ТекстПосле = ФайловыеОперации.ПрочитатьТекстФайла(Файл.ПолноеИмя);
|
||||
Ожидаем.Что(ТекстДо, Истина).Не_().Равно(ТекстПосле);
|
||||
Ожидаем.Что(СтрЧислоСтрок(ТекстДо), Истина).Равно(СтрЧислоСтрок(ТекстПосле));
|
||||
ВременныйКаталог = ПолучитьИмяВременногоФайла();
|
||||
СоздатьКаталог(ВременныйКаталог);
|
||||
ТестовыйКаталог = ОбъединитьПути(ВременныйКаталог, "subsystems");
|
||||
СоздатьКаталог(ТестовыйКаталог);
|
||||
|
||||
ИмяФайла = "СортировкаОбъектовВПодсистемах/ОбменСообщениями.mdo";
|
||||
Файл = ПодготовитьИзменяемыйТестовыйФайл(ИмяФайла, "ОбменСообщениями.mdo", "Subsystems");
|
||||
ПодкаталогФикстур = ОбъединитьПути(КаталогТестовыхФикстур(), "СортировкаОбъектовВПодсистемах");
|
||||
ПодкаталогФайловДо = ОбъединитьПути(ПодкаталогФикстур, "До");
|
||||
ПодкаталогФайловПосле = ОбъединитьПути(ПодкаталогФикстур, "После");
|
||||
|
||||
Для каждого ТестовыйФайл Из НайтиФайлы(ПодкаталогФайловДо, ПолучитьМаскуВсеФайлы()) Цикл
|
||||
|
||||
ТекстДо = ФайловыеОперации.ПрочитатьТекстФайла(Файл.ПолноеИмя);
|
||||
Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, Настройки);
|
||||
Ожидаем.Что(Результат, Истина).ЭтоИстина();
|
||||
ТекстПосле = ФайловыеОперации.ПрочитатьТекстФайла(Файл.ПолноеИмя);
|
||||
Ожидаем.Что(ТекстДо, Истина).Равно(ТекстПосле);
|
||||
Ожидаем.Что(СтрЧислоСтрок(ТекстДо), Истина).Равно(СтрЧислоСтрок(ТекстПосле));
|
||||
ИмяФайла = ТестовыйФайл.Имя;
|
||||
|
||||
ФайлПослеЭталон = Новый Файл(ОбъединитьПути(ПодкаталогФайловПосле, ИмяФайла));
|
||||
ФайлДолженИзмениться = ФайлПослеЭталон.Существует();
|
||||
Если Не ФайлДолженИзмениться Тогда
|
||||
ФайлПослеЭталон = ТестовыйФайл;
|
||||
КонецЕсли;
|
||||
|
||||
ОбрабатываемыйФайл = Новый Файл(ОбъединитьПути(ТестовыйКаталог, ИмяФайла));
|
||||
КопироватьФайл(ТестовыйФайл.ПолноеИмя, ОбрабатываемыйФайл.ПолноеИмя);
|
||||
|
||||
Результат = ОбъектСценария.ОбработатьФайл(ОбрабатываемыйФайл, "", Настройки);
|
||||
Ожидаем.Что(Результат, "Проверка обработки файла " + ИмяФайла).Равно(ФайлДолженИзмениться);
|
||||
|
||||
ТекстПосле = ФайловыеОперации.ПрочитатьТекстФайла(ОбрабатываемыйФайл.ПолноеИмя);
|
||||
ТекстПослеЭталон = ФайловыеОперации.ПрочитатьТекстФайла(ФайлПослеЭталон.ПолноеИмя);
|
||||
Ожидаем.Что(ТекстПосле, "Проверка результата файла " + ИмяФайла).Равно(ТекстПослеЭталон);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
МенеджерВременныхФайлов.УдалитьФайл(ВременныйКаталог);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
#Область ИсправлениеНеКаноническогоНаписания
|
||||
|
||||
Процедура ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияИсправляетФайл() Экспорт
|
||||
@ -174,6 +177,7 @@
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОтключениеПолнотекстовогоПоиска
|
||||
|
||||
Процедура ТестДолжен_ПроверитьЧтоСценарийОтключенияПолнотекстовогоПоискаИмеетМетодПолученияНастроек() Экспорт
|
||||
|
||||
ОбъектСценария = ПолучитьСценарий("ОтключениеПолнотекстовогоПоиска.os");
|
||||
@ -491,7 +495,6 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область Служебные
|
||||
@ -731,4 +734,4 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
#КонецОбласти
|
||||
|
Loading…
Reference in New Issue
Block a user