mirror of
https://github.com/bia-technologies/precommit4onec.git
synced 2025-05-31 23:09:33 +02:00
- ORAIS-773: Добавлена обработка имен метаданных таблиц внешних источников
- исправлены ошибки в тестах
This commit is contained in:
parent
9d36d85f15
commit
9f6ed7e304
@ -282,7 +282,11 @@
|
||||
|
||||
Функция ЭтоНовый() Экспорт
|
||||
|
||||
Возврат Настройки().ЭтоНовый();
|
||||
Если НЕ НастройкиИнициализированы Тогда
|
||||
Возврат Истина;
|
||||
Иначе
|
||||
Возврат Настройки().ЭтоНовый();
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
@ -3,8 +3,7 @@
|
||||
ТекущийКаталогСценариев = МенеджерПриложения.КаталогСценариев();
|
||||
ВсеЗагруженные = Новый Массив;
|
||||
ФайлыГлобальныхСценариев = НайтиФайлы(ТекущийКаталогСценариев, "*.os");
|
||||
ФайлыЛокальныхСценариев = Новый Массив;
|
||||
|
||||
ФайлыЛокальныхСценариев = Новый Массив;
|
||||
|
||||
Лог = МенеджерПриложения.ПолучитьЛог();
|
||||
|
||||
|
@ -39,8 +39,8 @@
|
||||
|
||||
Если АнализируемыйФайл.Существует() Тогда
|
||||
|
||||
Если ТипыФайлов.ЭтоФайлОписанияПодсистемы(АнализируемыйФайл) ИЛИ
|
||||
ТипыФайлов.ЭтоФайлОписанияПодсистемыEDT(АнализируемыйФайл) Тогда
|
||||
Если ТипыФайлов.ЭтоФайлОписанияПодсистемы(АнализируемыйФайл)
|
||||
ИЛИ ТипыФайлов.ЭтоФайлОписанияПодсистемыEDT(АнализируемыйФайл) Тогда
|
||||
|
||||
Лог.Информация("Обработка файла '%1' по сценарию '%2'", АнализируемыйФайл.ПолноеИмя, ИмяСценария());
|
||||
ЭтоЕДТ = ТипыФайлов.ЭтоФайлОписанияПодсистемыEDT(АнализируемыйФайл);
|
||||
@ -57,18 +57,14 @@
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ЛОЖЬ;
|
||||
Возврат Ложь;
|
||||
|
||||
КонецФункции // ОбработатьФайл()
|
||||
|
||||
Функция ОтсортироватьПодсистему(Знач ИмяФайла, ЭтоЕДТ)
|
||||
|
||||
СодержимоеФайла = ФайловыеОперации.ПрочитатьТекстФайла(ИмяФайла);
|
||||
|
||||
ПоискДочерних = ?(ЭтоЕДТ, "(?:<content>)([\w\W]+)(?:<\/content>)", "(<Content>\s+)(<[\w\W]+>)(\s+<\/Content>)");
|
||||
Регексп = Новый РегулярноеВыражение(ПоискДочерних);
|
||||
Регексп.ИгнорироватьРегистр = ИСТИНА;
|
||||
Регексп.Многострочный = ИСТИНА;
|
||||
Регексп = РегекспСостав(ЭтоЕДТ);
|
||||
ПодчиненныеМетаданные = Регексп.НайтиСовпадения(СодержимоеФайла);
|
||||
|
||||
Если ПодчиненныеМетаданные.Количество() = 0 Тогда
|
||||
@ -78,31 +74,33 @@
|
||||
КонецЕсли;
|
||||
|
||||
ИсходнаяСтрока = ПодчиненныеМетаданные[0].Группы[0].Значение;
|
||||
|
||||
//Тип.Объект или GUID
|
||||
ПоискМетаданных = ?(ЭтоЕДТ, "^\s*<[\w]+>(?:([a-zA-Z]+)\.([а-яa-zA-ZА-Я0-9_]+)|(([a-zA-z0-9\-]+)))<\/[\w]+>", "^\s+<[\w:\s=""]+>(?:([a-zA-Z0-9_]+).([а-яa-zA-ZА-Я0-9_]+)|(([a-zA-z0-9\-]+)))<\/[\w:]+>");
|
||||
РегекспМетаданные = Новый РегулярноеВыражение(ПоискМетаданных);
|
||||
РегекспМетаданные.ИгнорироватьРегистр = Истина;
|
||||
РегекспМетаданные.Многострочный = Истина;
|
||||
ОбъектыМетаданныхСтроки = РегекспМетаданные.НайтиСовпадения(ИсходнаяСтрока);
|
||||
ОбъектыМетаданныхСтроки = РегекспМетаданные(ЭтоЕДТ).НайтиСовпадения(ИсходнаяСтрока);
|
||||
|
||||
ОбъектыТипаПоПорядку = Новый СписокЗначений; // отдельный список с типами, нужен для того, чтобы сохранить порядок при обходе соответствия
|
||||
// отдельный список с типами, нужен для того, чтобы сохранить порядок при обходе соответствия
|
||||
ОбъектыТипаПоПорядку = Новый СписокЗначений;
|
||||
|
||||
ОбъектыМетаданных = Новый Соответствие;
|
||||
ПоследнийТип = "";
|
||||
ОбъектыТипа = Новый СписокЗначений;
|
||||
Для Каждого ОбъектМетаданных Из ОбъектыМетаданныхСтроки Цикл
|
||||
|
||||
Список = ОбъектыМетаданных.Получить(ОбъектМетаданных.Группы[1].Значение);
|
||||
ТипМетаданных = ОбъектМетаданных.Группы[1].Значение;
|
||||
СтрокаМетаданных = ОбъектМетаданных.Группы[0].Значение;
|
||||
ИмяМетаданного = ОбъектМетаданных.Группы[2].Значение;
|
||||
Если СтрНачинаетсяС(ИмяМетаданного, ".") Тогда
|
||||
ИмяМетаданного = Сред(ИмяМетаданного, 2);
|
||||
КонецЕсли;
|
||||
|
||||
Список = ОбъектыМетаданных.Получить(ТипМетаданных);
|
||||
|
||||
Если Список = Неопределено Тогда
|
||||
Список = Новый СписокЗначений;
|
||||
ОбъектыМетаданных.Вставить(ОбъектМетаданных.Группы[1].Значение, Список);
|
||||
ОбъектыТипаПоПорядку.Добавить(ОбъектМетаданных.Группы[1].Значение);
|
||||
КонецЕсли;
|
||||
|
||||
ОбъектыМетаданных.Вставить(ТипМетаданных, Список);
|
||||
ОбъектыТипаПоПорядку.Добавить(ТипМетаданных);
|
||||
КонецЕсли;
|
||||
|
||||
Если Список.НайтиПоЗначению(ОбъектМетаданных.Группы[0].Значение) = Неопределено Тогда
|
||||
Список.Добавить(ОбъектМетаданных.Группы[0].Значение, ОбъектМетаданных.Группы[2].Значение);
|
||||
Список.Добавить(ОбъектМетаданных.Группы[0].Значение, ИмяМетаданного);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
@ -120,7 +118,8 @@
|
||||
КонецЦикла;
|
||||
|
||||
Если НЕ ЭтоЕДТ Тогда
|
||||
СтрокаЗамены = ПодчиненныеМетаданные[0].Группы[1].Значение + СокрЛП(СтрокаЗамены) + ПодчиненныеМетаданные[0].Группы[3].Значение;
|
||||
СтрокаЗамены = ПодчиненныеМетаданные[0].Группы[1].Значение + СокрЛП(СтрокаЗамены)
|
||||
+ ПодчиненныеМетаданные[0].Группы[3].Значение;
|
||||
КонецЕсли;
|
||||
|
||||
Если СтрСравнить(ИсходнаяСтрока, СтрокаЗамены) = 0 Тогда
|
||||
@ -139,4 +138,28 @@
|
||||
|
||||
Возврат Истина;
|
||||
|
||||
КонецФункции
|
||||
КонецФункции
|
||||
|
||||
Функция РегекспСостав(ЭтоЕДТ)
|
||||
|
||||
ПоискДочерних = ?(ЭтоЕДТ, "(?:<content>)([\w\W]+)(?:<\/content>)", "(<Content>\s+)(<[\w\W]+>)(\s+<\/Content>)");
|
||||
Регексп = Новый РегулярноеВыражение(ПоискДочерних);
|
||||
Регексп.ИгнорироватьРегистр = Истина;
|
||||
Регексп.Многострочный = Истина;
|
||||
|
||||
Возврат Регексп;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция РегекспМетаданные(ЭтоЕДТ)
|
||||
|
||||
ШаблонНачало = ?(ЭтоЕДТ, "^\s*<[\w]+>", "^\s+<[\w:\s=""]+>");
|
||||
ШаблонИмяМетаданных = "([a-zA-Z]+)((?:\.(?:[а-яa-zA-ZА-Я0-9_]+))+)";
|
||||
ШаблонУИД = "(([a-zA-z0-9\-]+))";
|
||||
ПоискМетаданных = СтрШаблон("%1(?:%2|%3)<\/[\w:]+>", ШаблонНачало, ШаблонУИД, ШаблонИмяМетаданных);
|
||||
Регексп = Новый РегулярноеВыражение(ПоискМетаданных);
|
||||
Регексп.ИгнорироватьРегистр = Истина;
|
||||
Регексп.Многострочный = Истина;
|
||||
|
||||
Возврат Регексп;
|
||||
КонецФункции
|
||||
|
@ -25,6 +25,7 @@
|
||||
<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>
|
||||
|
@ -14,5 +14,6 @@
|
||||
<content>CommonModule.УведомленияПереопределяемый</content>
|
||||
<content>Catalog.ВидыУведомлений</content>
|
||||
<content>CommonModule.УведомленияСерверПовтИсп</content>
|
||||
<content>ExternalDataSource.ТекущаяСУБД.Table.ИнформацияОбОшибках</content>
|
||||
<parentSubsystem>Subsystem.ПодсистемыБСП.Subsystem.ОбменСообщениями</parentSubsystem>
|
||||
</mdclass:Subsystem>
|
||||
|
@ -3,6 +3,7 @@
|
||||
#Использовать logos
|
||||
#Использовать tempfiles
|
||||
#Использовать fs
|
||||
#Использовать ".."
|
||||
|
||||
Перем юТест;
|
||||
Перем Лог;
|
||||
@ -102,7 +103,7 @@
|
||||
Ожидаем.Что(Результат, Истина).ЭтоИстина();
|
||||
ТекстПосле = ФайловыеОперации.ПрочитатьТекстФайла(Файл.ПолноеИмя);
|
||||
Ожидаем.Что(ТекстДо, Истина).Не_().Равно(ТекстПосле);
|
||||
|
||||
Ожидаем.Что(СтрЧислоСтрок(ТекстДо), Истина).Равно(СтрЧислоСтрок(ТекстПосле));
|
||||
|
||||
ИмяФайла = "СортировкаОбъектовВПодсистемах/УведомленияПриИзмененииОбъектов.mdo";
|
||||
Файл = ПодготовитьИзменяемыйТестовыйФайл(ИмяФайла, "УведомленияПриИзмененииОбъектов.mdo", "Subsystems");
|
||||
@ -111,6 +112,7 @@
|
||||
Ожидаем.Что(Результат, Истина).ЭтоИстина();
|
||||
ТекстПосле = ФайловыеОперации.ПрочитатьТекстФайла(Файл.ПолноеИмя);
|
||||
Ожидаем.Что(ТекстДо, Истина).Не_().Равно(ТекстПосле);
|
||||
Ожидаем.Что(СтрЧислоСтрок(ТекстДо), Истина).Равно(СтрЧислоСтрок(ТекстПосле));
|
||||
|
||||
ИмяФайла = "СортировкаОбъектовВПодсистемах/ОбменСообщениями.mdo";
|
||||
Файл = ПодготовитьИзменяемыйТестовыйФайл(ИмяФайла, "ОбменСообщениями.mdo", "Subsystems");
|
||||
@ -120,7 +122,7 @@
|
||||
Ожидаем.Что(Результат, Истина).ЭтоИстина();
|
||||
ТекстПосле = ФайловыеОперации.ПрочитатьТекстФайла(Файл.ПолноеИмя);
|
||||
Ожидаем.Что(ТекстДо, Истина).Равно(ТекстПосле);
|
||||
|
||||
Ожидаем.Что(СтрЧислоСтрок(ТекстДо), Истина).Равно(СтрЧислоСтрок(ТекстПосле));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user