1
0
mirror of https://github.com/bia-technologies/precommit4onec.git synced 2025-06-02 23:17:25 +02:00

#ONECICD-120

Корректировка "битых" форм, исправлены Id элементов форм
This commit is contained in:
Knyazkov Alexey 2019-04-08 09:14:04 +03:00
parent 3b640a7360
commit 63bbecd1dd
3 changed files with 71 additions and 25 deletions

View File

@ -65,3 +65,43 @@
Возврат СтрСравнить(Файл.Имя, "Configuration.mdo") = 0; Возврат СтрСравнить(Файл.Имя, "Configuration.mdo") = 0;
КонецФункции КонецФункции
// ЭтоФайлОписанияКонфигурации
// Возвращает истину, если файл является файлом описания формы
// Параметры:
// Файл - Строка - Полный путь к файлу
//
// Возвращаемое значение:
// Булево - Признак
//
Функция ЭтоФайлОписанияФормы(Файл) Экспорт
Если ПустаяСтрока(Файл.Расширение) Тогда
Возврат Ложь;
КонецЕсли;
Возврат СтрСравнить(Файл.Имя, "Form.xml") = 0;
КонецФункции
// ЭтоФайлОписанияКонфигурации
// Возвращает истину, если файл является файлом описания формы в формате EDT
// Параметры:
// Файл - Строка - Полный путь к файлу
//
// Возвращаемое значение:
// Булево - Признак
//
Функция ЭтоФайлОписанияФормыEDT(Файл) Экспорт
Если ПустаяСтрока(Файл.Расширение) Тогда
Возврат Ложь;
КонецЕсли;
Возврат СтрСравнить(Файл.Имя, "Form.form") = 0;
КонецФункции

View File

@ -80,4 +80,4 @@
Возврат ?(ЕстьBOM, КодировкаТекста.UTF8, КодировкаТекста.UTF8NoBOM); Возврат ?(ЕстьBOM, КодировкаТекста.UTF8, КодировкаТекста.UTF8NoBOM);
КонецФункции //ОпределитьКодировку КонецФункции // ОпределитьКодировку

View File

@ -36,17 +36,33 @@
Лог = ДополнительныеПараметры.Лог; Лог = ДополнительныеПараметры.Лог;
НастройкиСценария = ДополнительныеПараметры.УправлениеНастройками.Настройка("Precommt4onecСценарии\НастройкиСценариев").Получить(ИмяСценария()); НастройкиСценария = ДополнительныеПараметры.УправлениеНастройками.Настройка("Precommt4onecСценарии\НастройкиСценариев").Получить(ИмяСценария());
Если АнализируемыйФайл.Существует() И ЭтоФайлОписанияФормы(АнализируемыйФайл) Тогда Если АнализируемыйФайл.Существует() Тогда
Лог.Информация("Обработка файла '%1' по сценарию '%2'", АнализируемыйФайл.ПолноеИмя, ИмяСценария());
Если ОбновитьИндексыЭлементовВФорме(АнализируемыйФайл.ПолноеИмя) Тогда
ДополнительныеПараметры.ИзмененныеКаталоги.Добавить(АнализируемыйФайл.ПолноеИмя); Если ТипыФайлов.ЭтоФайлОписанияФормы(АнализируемыйФайл) Тогда
Лог.Информация("Обработка файла '%1' по сценарию '%2'", АнализируемыйФайл.ПолноеИмя, ИмяСценария());
Если ОбновитьИндексыЭлементовВФорме(АнализируемыйФайл.ПолноеИмя) Тогда
ДополнительныеПараметры.ИзмененныеКаталоги.Добавить(АнализируемыйФайл.ПолноеИмя);
КонецЕсли;
Возврат ИСТИНА;
ИначеЕсли ТипыФайлов.ЭтоФайлОписанияФормыEDT(АнализируемыйФайл) Тогда
Лог.Информация("Обработка файла '%1' по сценарию '%2'", АнализируемыйФайл.ПолноеИмя, ИмяСценария());
Если ОбновитьИндексыЭлементовВФорме(АнализируемыйФайл.ПолноеИмя, Истина) Тогда
ДополнительныеПараметры.ИзмененныеКаталоги.Добавить(АнализируемыйФайл.ПолноеИмя);
КонецЕсли;
Возврат ИСТИНА;
КонецЕсли; КонецЕсли;
Возврат ИСТИНА;
КонецЕсли; КонецЕсли;
@ -54,23 +70,13 @@
КонецФункции // ОбработатьФайл() КонецФункции // ОбработатьФайл()
Функция ЭтоФайлОписанияФормы(Файл) Функция ОбновитьИндексыЭлементовВФорме(Знач ИмяФайла, EDT = Ложь)
Если ПустаяСтрока(Файл.Расширение) Тогда
Возврат Ложь;
КонецЕсли;
Возврат СтрСравнить(Файл.Имя, "Form.xml") = 0;
КонецФункции
Функция ОбновитьИндексыЭлементовВФорме(Знач ИмяФайла)
СодержимоеФайла = ФайловыеОперации.ПрочитатьТекстФайла(ИмяФайла); СодержимоеФайла = ФайловыеОперации.ПрочитатьТекстФайла(ИмяФайла);
Регексп = Новый РегулярноеВыражение("id=\""([0-9-]+)\""\/*>"); ПаттернID = ?(EDT, "<id>([0-9-]+)<\/id>", "id=\""([0-9-]+)\""\/*>");
Регексп = Новый РегулярноеВыражение(ПаттернID);
Регексп.ИгнорироватьРегистр = ИСТИНА; Регексп.ИгнорироватьРегистр = ИСТИНА;
Регексп.Многострочный = ИСТИНА; Регексп.Многострочный = ИСТИНА;
ГруппыИндексов = Регексп.НайтиСовпадения(СодержимоеФайла); ГруппыИндексов = Регексп.НайтиСовпадения(СодержимоеФайла);
@ -111,9 +117,9 @@
Пока СтрокаТЧ.Количество > 1 Цикл Пока СтрокаТЧ.Количество > 1 Цикл
ИсходнаяСтрока = "id=""" + СтрокаТЧ.Значение + """"; ИсходнаяСтрока = ?(EDT, "<id>" + СтрокаТЧ.Значение + "<", "id=""" + СтрокаТЧ.Значение + """");
ПоследнийНомер = ПоследнийНомер + 1; ПоследнийНомер = ПоследнийНомер + 1;
СтрокаЗамены = "id=""" + ПоследнийНомер + """"; СтрокаЗамены = ?(EDT, "<id>" + ПоследнийНомер + "<", "id=""" + ПоследнийНомер + """");
Поз = СтрНайти(СодержимоеФайла, ИсходнаяСтрока); Поз = СтрНайти(СодержимоеФайла, ИсходнаяСтрока);