1
0
mirror of https://github.com/bia-technologies/precommit4onec.git synced 2024-11-24 08:32:25 +02:00

Merge branch 'feature/ONECICD-120' into 'develop'

#ONECICD-120

See merge request orais/precommit1C-fork-bia!7
This commit is contained in:
Maximov Valery 2019-04-08 11:40:58 +03:00
commit 7f76f1ee71
3 changed files with 71 additions and 25 deletions

View File

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

View File

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

View File

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