mirror of
https://github.com/bia-technologies/precommit4onec.git
synced 2025-01-03 22:52:10 +02:00
Выполнил мердж и внес правки по сонару
This commit is contained in:
parent
d4822fc731
commit
e73e0a2903
@ -47,6 +47,7 @@
|
||||
- `ПроверкаДублейПроцедурИФункций` - выполняет поиск одинаковых названий процедур и функций в модуле.
|
||||
- `ОтключениеПолнотекстовогоПоиска` - По умолчанию отключает полнотекстовый поиск в файлах описания метаданных. Имеет настройку для исключения файлов из обработки. Для исключения необходимо указать относительный путь в репозитории до файла описания метаданного. Можно выключать из обработки отдельные реквизиты метаданного, для этого надо задать массив реквизитов в конфигурационном файле.
|
||||
- `ИсправлениеНеКаноническогоНаписания` - Проверяет модули на каноничность написания ключевых слов и исправляет найденное
|
||||
|
||||
## Изменение настроек
|
||||
|
||||
precommit4onec может читать настройки своей работы из специального конфигурационного файла.
|
||||
|
@ -15,6 +15,7 @@
|
||||
И Вывод команды "oscript" содержит "ИспользоватьСценарииРепозитория ="
|
||||
И Вывод команды "oscript" содержит "КаталогЛокальныхСценариев ="
|
||||
И Вывод команды "oscript" содержит "ГлобальныеСценарии ="
|
||||
И Вывод команды "oscript" содержит "НастройкиСценариев ="
|
||||
|
||||
Сценарий: Сброс настроек к значениям по умолчанию
|
||||
Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os configure -global -reset"
|
||||
@ -25,8 +26,16 @@
|
||||
И Вывод команды "oscript" содержит
|
||||
"""
|
||||
precommit4onec v1.11.1
|
||||
Установленные настройки:
|
||||
Установленные настройки: Precommt4onecСценарии
|
||||
ИспользоватьСценарииРепозитория = Нет
|
||||
КаталогЛокальныхСценариев =
|
||||
ГлобальныеСценарии = ДобавлениеПробеловПередКлючевымиСловами.os,ЗапретИспользованияПерейти.os,КорректировкаXMLФорм.os,ОтключениеПолнотекстовогоПоиска.os,ПроверкаДублейПроцедурИФункций.os,ПроверкаКорректностиОбластей.os,РазборОбычныхФормНаИсходники.os,РазборОтчетовОбработокРасширений.os,СинхронизацияОбъектовМетаданныхИФайлов.os,СортировкаДереваМетаданных.os,УдалениеДублейМетаданных.os,УдалениеЛишнихКонцевыхПробелов.os,УдалениеЛишнихПустыхСтрок.os
|
||||
"""
|
||||
ГлобальныеСценарии = ДобавлениеПробеловПередКлючевымиСловами.os,ЗапретИспользованияПерейти.os,ИсправлениеНеКаноническогоНаписания.os,КорректировкаXMLФорм.os,ОтключениеПолнотекстовогоПоиска.os,ПроверкаДублейПроцедурИФункций.os,ПроверкаКорректностиОбластей.os,РазборОбычныхФормНаИсходники.os,РазборОтчетовОбработокРасширений.os,СинхронизацияОбъектовМетаданныхИФайлов.os,СортировкаДереваМетаданных.os,УдалениеДублейМетаданных.os,УдалениеЛишнихКонцевыхПробелов.os,УдалениеЛишнихПустыхСтрок.os
|
||||
НастройкиСценариев = Соответствие
|
||||
ОтключениеПолнотекстовогоПоиска = Соответствие
|
||||
МетаданныеДляИсключения = Соответствие
|
||||
src\_example.xml = Номер,ТабличнаяЧасть1.Реквизит
|
||||
src\_example2.xml =
|
||||
РазборОтчетовОбработокРасширений = Соответствие
|
||||
ИспользоватьНастройкиПоУмолчанию = Да
|
||||
ВерсияПлатформы =
|
||||
"""
|
||||
|
@ -12,12 +12,14 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
Процедура НастроитьКоманду(Знач Команда, Знач Парсер) Экспорт
|
||||
|
||||
|
||||
// Добавление параметров команды
|
||||
Парсер.ДобавитьПараметрФлагКоманды(Команда, "-global", "Работа с глобальными настройками.");
|
||||
Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-rep-path", "Каталог репозитория, настройки которого интересуют.");
|
||||
Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-child-path", "Относительный путь к каталогу с исходниками внутри каталога rep-path, для которого нужна отдельная настройка");
|
||||
Парсер.ДобавитьПараметрФлагКоманды(Команда, "-reset", "Сброс настроек на значения по умолчанию. Если редактируются настройки репозитория, то происходит удаление файла настроек.");
|
||||
Парсер.ДобавитьПараметрФлагКоманды(Команда, "-config", "Интерактивное конфигурирование настроек.");
|
||||
Парсер.ДобавитьПараметрФлагКоманды(Команда, "-child", "Указывает на работу с настройками подпроектов в репозитории, вместе с командой -reset удалит только подпроекты");
|
||||
|
||||
КонецПроцедуры // НастроитьКоманду
|
||||
|
||||
@ -30,143 +32,234 @@
|
||||
Функция ВыполнитьКоманду(Знач ПараметрыКоманды, Знач Приложение) Экспорт
|
||||
|
||||
Лог = Приложение.ПолучитьЛог();
|
||||
Если НЕ ПараметрыКоманды["-global"]
|
||||
И НЕ ЗначениеЗаполнено(ПараметрыКоманды["-rep-path"]) Тогда
|
||||
|
||||
Лог.Ошибка("Для конфигурирования необходимо передать флаг -global или указать каталог репозитория параметром -rep-path");
|
||||
ОшибкаВводаПараметров = ПроверитьВалидностьПараметров(ПараметрыКоманды);
|
||||
|
||||
Если ЗначениеЗаполнено(ОшибкаВводаПараметров) Тогда
|
||||
|
||||
Лог.Ошибка(ОшибкаВводаПараметров);
|
||||
Возврат Приложение.РезультатыКоманд().НеверныеПараметры;
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если ПараметрыКоманды["-global"] Тогда
|
||||
|
||||
|
||||
КаталогРепозитория = Приложение.ПутьКРодительскомуКаталогу();
|
||||
|
||||
|
||||
Иначе
|
||||
|
||||
|
||||
КаталогРепозитория = ПараметрыКоманды["-rep-path"];
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
УправлениеНастройками = Новый НастройкиРепозитория(КаталогРепозитория);
|
||||
|
||||
Если ПараметрыКоманды["-reset"] Тогда
|
||||
|
||||
Если ПараметрыКоманды["-global"] Тогда
|
||||
|
||||
ЗаписатьГлобальныеНастройкиПоУмолчанию(УправлениеНастройками, Приложение.КаталогСценариев());
|
||||
|
||||
Иначе
|
||||
|
||||
СброситьНастройкиРепозитория(УправлениеНастройками);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли ПараметрыКоманды["-config"] Тогда
|
||||
|
||||
ИнтерактивнаяНастройка(КаталогРепозитория, УправлениеНастройками, ПараметрыКоманды["-global"], Приложение.КаталогСценариев());
|
||||
|
||||
УправлениеНастройками = Новый НастройкиРепозитория(КаталогРепозитория);
|
||||
|
||||
Если ПараметрыКоманды["-reset"] Тогда
|
||||
|
||||
Если ПараметрыКоманды["-global"] Тогда
|
||||
|
||||
ЗаписатьГлобальныеНастройкиПоУмолчанию(УправлениеНастройками, Приложение.КаталогСценариев());
|
||||
|
||||
Иначе
|
||||
|
||||
СброситьНастройкиРепозитория(УправлениеНастройками, ПараметрыКоманды["-child"], ПараметрыКоманды["-child-path"], КаталогРепозитория);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли ПараметрыКоманды["-config"] Тогда
|
||||
|
||||
Если ЗначениеЗаполнено(ПараметрыКоманды["-child-path"]) Тогда
|
||||
|
||||
УказанныйПуть = ПараметрыКоманды["-child-path"];
|
||||
|
||||
Если ПроверитьАдресДополнительногоКаталога(КаталогРепозитория, УказанныйПуть, УправлениеНастройками) Тогда
|
||||
|
||||
УказанныйПуть = ФайловыеОперации.ПолучитьНормализованныйОтносительныйПуть(КаталогРепозитория, УказанныйПуть);
|
||||
НовыеНастройки = ИнтерактивнаяНастройка(УказанныйПуть, УправлениеНастройками, Ложь, Приложение.КаталогСценариев(), Истина);
|
||||
УправлениеНастройками.ОбновитьКонфигурацию();
|
||||
УправлениеНастройками.ЗаписатьНастройкиПриложения(УказанныйПуть, НовыеНастройки.Получить(УказанныйПуть));
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Иначе
|
||||
|
||||
НовыеНастройки = ИнтерактивнаяНастройка(КаталогРепозитория, УправлениеНастройками, ПараметрыКоманды["-global"], Приложение.КаталогСценариев());
|
||||
СконфигурироватьДополнительныеКаталоги(УправлениеНастройками, НовыеНастройки, Приложение.КаталогСценариев(), КаталогРепозитория);
|
||||
СброситьНастройкиРепозитория(УправлениеНастройками);
|
||||
ЗаписатьНастройкиРепозитория(УправлениеНастройками, НовыеНастройки);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Иначе
|
||||
|
||||
НапечататьНастройки(УправлениеНастройками);
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
// При успешном выполнении возвращает код успеха
|
||||
Возврат Приложение.РезультатыКоманд().Успех;
|
||||
|
||||
КонецФункции // ВыполнитьКоманду
|
||||
|
||||
Функция ПроверитьВалидностьПараметров(ПараметрыКоманды)
|
||||
|
||||
ОшибкаПараметров = "";
|
||||
|
||||
Если НЕ ПараметрыКоманды["-global"]
|
||||
И НЕ ЗначениеЗаполнено(ПараметрыКоманды["-rep-path"]) Тогда
|
||||
|
||||
ОшибкаПараметров ="Для конфигурирования необходимо передать флаг -global или указать каталог репозитория параметром -rep-path";
|
||||
|
||||
ИначеЕсли ПараметрыКоманды["-global"] И ЗначениеЗаполнено(ПараметрыКоманды["-child-path"]) Тогда
|
||||
|
||||
ОшибкаПараметров = "Нельзя конфигурировать дополнительные проекты глобально";
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ОшибкаПараметров;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура НапечататьНастройки(УправлениеНастройками)
|
||||
|
||||
|
||||
Если УправлениеНастройками.ЭтоНовый() Тогда
|
||||
|
||||
|
||||
Лог.Информация("Файл настроек не обнаружен");
|
||||
Возврат;
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
НастройкиПрекоммита = УправлениеНастройками.НастройкиПриложения("Precommt4onecСценарии");
|
||||
Если НЕ ЗначениеЗаполнено(НастройкиПрекоммита) Тогда
|
||||
|
||||
Лог.Информация("Настройки в файле отсутствуют");
|
||||
Возврат;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Сообщить("Установленные настройки: ");
|
||||
|
||||
Для Каждого НастройкаПрекоммита Из НастройкиПрекоммита Цикл
|
||||
|
||||
Если ТипЗнч(НастройкаПрекоммита.Значение) = Тип("Массив") Тогда
|
||||
|
||||
ЗначениеПараметра = СтрСоединить(НастройкаПрекоммита.Значение, ",");
|
||||
|
||||
Иначе
|
||||
|
||||
ЗначениеПараметра = НастройкаПрекоммита.Значение;
|
||||
|
||||
ВсеНастройки = УправлениеНастройками.ПолучитьПроектыКонфигурации();
|
||||
|
||||
Для Каждого Настройка из ВсеНастройки Цикл
|
||||
|
||||
НастройкиПрекоммита = УправлениеНастройками.НастройкиПриложения(Настройка);
|
||||
|
||||
Если НЕ ЗначениеЗаполнено(НастройкиПрекоммита) Тогда
|
||||
|
||||
Лог.Информация(СтрШаблон("Настройки %1 в файле отсутствуют", Настройка));
|
||||
Продолжить;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Сообщить(Символы.Таб + НастройкаПрекоммита.Ключ + " = " + ЗначениеПараметра);
|
||||
|
||||
Сообщить("Установленные настройки: " + Настройка);
|
||||
|
||||
ВывестиНастройкиРекурсивно(НастройкиПрекоммита);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВывестиНастройкиРекурсивно(НастройкиПрекоммита, Уровень = 1)
|
||||
|
||||
ПробельныеСимволы = "";
|
||||
|
||||
Для Счетчик = 1 по Уровень Цикл
|
||||
|
||||
ПробельныеСимволы = ПробельныеСимволы + Символы.Таб;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Для Каждого НастройкаПрекоммита Из НастройкиПрекоммита Цикл
|
||||
|
||||
Если ТипЗнч(НастройкаПрекоммита.Значение) = Тип("Массив") Тогда
|
||||
|
||||
ЗначениеПараметра = СтрСоединить(НастройкаПрекоммита.Значение, ",");
|
||||
|
||||
Иначе
|
||||
|
||||
ЗначениеПараметра = НастройкаПрекоммита.Значение;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Сообщить(ПробельныеСимволы + НастройкаПрекоммита.Ключ + " = " + ЗначениеПараметра);
|
||||
|
||||
Если ТипЗнч(НастройкаПрекоммита.Значение) = Тип("Соответствие") Тогда
|
||||
|
||||
ВывестиНастройкиРекурсивно(НастройкаПрекоммита.Значение, Уровень + 1);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЗаписатьГлобальныеНастройкиПоУмолчанию(УправлениеНастройками, ТекущийКаталогСценариев)
|
||||
|
||||
ИмяПриложения = "Precommt4onecСценарии";
|
||||
|
||||
ИмяПриложения = УправлениеНастройками.ИмяПоУмолчанию();
|
||||
|
||||
СброситьНастройкиРепозитория(УправлениеНастройками);
|
||||
|
||||
УправлениеНастройками.ЗаписатьНастройку(ИмяПриложения + "\ИспользоватьСценарииРепозитория", Ложь);
|
||||
УправлениеНастройками.ЗаписатьНастройку(ИмяПриложения + "\КаталогЛокальныхСценариев", "");
|
||||
|
||||
|
||||
Настройки = УправлениеНастройками.ПолучитьСтандартнуюСтруктуруНастроек();
|
||||
|
||||
ГлобальныеСценарии = ПолучитьИменаСценариев(ТекущийКаталогСценариев);
|
||||
УправлениеНастройками.ЗаписатьНастройку(ИмяПриложения + "\ГлобальныеСценарии", ГлобальныеСценарии);
|
||||
НастройкиСценариев = СформироватьНастройкиСценариев(ГлобальныеСценарии, ТекущийКаталогСценариев);
|
||||
УправлениеНастройками.ЗаписатьНастройку(ИмяПриложения + "\НастройкиСценариев", НастройкиСценариев);
|
||||
|
||||
|
||||
Настройки.Вставить("ГлобальныеСценарии", ГлобальныеСценарии);
|
||||
Настройки.Вставить("НастройкиСценариев", НастройкиСценариев);
|
||||
|
||||
УправлениеНастройками.ЗаписатьНастройкиПриложения(ИмяПриложения, Настройки);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура СброситьНастройкиРепозитория(УправлениеНастройками)
|
||||
|
||||
Процедура СброситьНастройкиРепозитория(УправлениеНастройками, ТолькоДополнительные = Ложь, ПутьКаталога = "", КаталогРепозитория = "")
|
||||
|
||||
Если УправлениеНастройками.ЭтоНовый() Тогда
|
||||
|
||||
|
||||
Возврат;
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(ПутьКаталога) Тогда
|
||||
ПутьКаталога = ФайловыеОперации.ПолучитьНормализованныйОтносительныйПуть(КаталогРепозитория, ПутьКаталога);
|
||||
УправлениеНастройками.УдалитьНастройкиПриложения(ПутьКаталога);
|
||||
|
||||
Иначе
|
||||
|
||||
ВсеНастройки = УправлениеНастройками.ПолучитьПроектыКонфигурации(ТолькоДополнительные);
|
||||
|
||||
Для Каждого Настройка Из ВсеНастройки Цикл
|
||||
|
||||
УправлениеНастройками.УдалитьНастройкиПриложения(Настройка);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
ИмяПриложения = "Precommt4onecСценарии";
|
||||
УправлениеНастройками.УдалитьНастройкиПриложения(ИмяПриложения);
|
||||
|
||||
Процедура ЗаписатьНастройкиРепозитория(УправлениеНастройками, НовыеНастройки)
|
||||
|
||||
Для каждого НоваяНастройка Из НовыеНастройки Цикл
|
||||
УправлениеНастройками.ЗаписатьНастройкиПриложения(НоваяНастройка.Ключ, НоваяНастройка.Значение);
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ПолучитьИменаСценариев(КаталогСценариев)
|
||||
|
||||
|
||||
НайденныеСценарии = Новый Массив;
|
||||
ФайлыСценариев = НайтиФайлы(КаталогСценариев, "*.os");
|
||||
Для Каждого ФайлСценария Из ФайлыСценариев Цикл
|
||||
|
||||
Если СтрСравнить(ФайлСценария.ИмяБезРасширения, "ШаблонСценария") = 0 Тогда
|
||||
Для Каждого ФайлСценария Из ФайлыСценариев Цикл
|
||||
|
||||
Если СтрСравнить(ФайлСценария.ИмяБезРасширения, "ШаблонСценария") = 0 Тогда
|
||||
|
||||
Продолжить;
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
НайденныеСценарии.Добавить(ФайлСценария.Имя);
|
||||
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
|
||||
Возврат НайденныеСценарии;
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СформироватьНастройкиСценариев(МассивСценариев, КаталогСценариев)
|
||||
|
||||
НастройкиСценариев = Новый Соответствие;
|
||||
Рефлектор = Новый Рефлектор;
|
||||
|
||||
|
||||
Для Каждого Сценарий Из МассивСценариев Цикл
|
||||
|
||||
ОбъектСценария = ЗагрузитьСценарий(ОбъединитьПути(КаталогСценариев, Сценарий));
|
||||
@ -175,139 +268,209 @@
|
||||
|
||||
СтруктураНастроек = Рефлектор.ВызватьМетод(ОбъектСценария, "ПолучитьСтандартныеНастройкиСценария");
|
||||
НастройкиСценариев.Вставить(СтруктураНастроек.ИмяСценария, СтруктураНастроек.Настройка);
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
|
||||
Возврат НастройкиСценариев;
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ИнтерактивнаяНастройка(КаталогРепозитория, УправлениеНастройками, ГлобальныеНастройки, КаталогГлобальныхСценариев)
|
||||
|
||||
ИмяПриложения = "Precommt4onecСценарии";
|
||||
Сообщить("Настройка конфигурации precommit");
|
||||
Функция ИнтерактивнаяНастройка(КаталогРепозитория, УправлениеНастройками, ГлобальныеНастройки, КаталогГлобальныхСценариев, ЭтоДопПроект = Ложь)
|
||||
|
||||
ИмяПриложения = УправлениеНастройками.ИмяПоУмолчанию();
|
||||
ПолныеНастройки = Новый Соответствие;
|
||||
Сообщить(СтрШаблон("Настройка конфигурации precommit %1%2", Символы.ПС, КаталогРепозитория));
|
||||
|
||||
ГлобальныеСценарии = ПолучитьНастройкуМассив("Выберите подключаемые глобальные сценарии: ",
|
||||
ПолучитьИменаСценариев(КаталогГлобальныхСценариев),
|
||||
УправлениеНастройками.Настройка(ИмяПриложения + "\ГлобальныеСценарии"));
|
||||
ПолучитьИменаСценариев(КаталогГлобальныхСценариев), УправлениеНастройками.Настройка(ИмяПриложения + "\ГлобальныеСценарии"));
|
||||
|
||||
Если ГлобальныеНастройки Тогда
|
||||
|
||||
Подсказка = "Нужно использовать сценарии локальных репозиториев?";
|
||||
|
||||
|
||||
Иначе
|
||||
|
||||
Подсказка = "Нужно использовать локальные сценарии?";
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ИспользоватьСценарииРепозитория = ПолучитьНастройкуБулево(Подсказка,
|
||||
УправлениеНастройками.Настройка(ИмяПриложения + "\ИспользоватьСценарииРепозитория"));
|
||||
|
||||
УправлениеНастройками.Настройка(ИмяПриложения + "\ИспользоватьСценарииРепозитория"));
|
||||
|
||||
КаталогЛокальныхСценариев = "";
|
||||
Если ИспользоватьСценарииРепозитория Тогда
|
||||
|
||||
|
||||
КаталогЛокальныхСценариев = ПолучитьНастройкуСтрока("Укажите относительный путь к сценариям в репозитории: ",
|
||||
УправлениеНастройками.Настройка(ИмяПриложения + "\КаталогЛокальныхСценариев"));
|
||||
|
||||
УправлениеНастройками.Настройка(ИмяПриложения + "\КаталогЛокальныхСценариев"));
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
НастройкиПриложения = УправлениеНастройками.ПолучитьСтандартнуюСтруктуруНастроек();
|
||||
НастройкиСценариев = СформироватьНастройкиСценариев(ГлобальныеСценарии, КаталогГлобальныхСценариев);
|
||||
|
||||
НастройкиПриложения.Вставить("ИспользоватьСценарииРепозитория", ИспользоватьСценарииРепозитория);
|
||||
НастройкиПриложения.Вставить("КаталогЛокальныхСценариев", КаталогЛокальныхСценариев);
|
||||
НастройкиПриложения.Вставить("ГлобальныеСценарии", ГлобальныеСценарии);
|
||||
НастройкиПриложения.Вставить("НастройкиСценариев", НастройкиСценариев);
|
||||
|
||||
ИмяПриложения = ?(ЭтоДопПроект,КаталогРепозитория, УправлениеНастройками.ИмяПоУмолчанию());
|
||||
ПолныеНастройки.Вставить(ИмяПриложения, НастройкиПриложения);
|
||||
|
||||
Возврат ПолныеНастройки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
СброситьНастройкиРепозитория(УправлениеНастройками);
|
||||
Процедура СконфигурироватьДополнительныеКаталоги(УправлениеНастройками, ОсновныеНастройки, КаталогГлобальныхСценариев, КаталогРепозитория)
|
||||
|
||||
УправлениеНастройками.ЗаписатьНастройку(ИмяПриложения + "\ИспользоватьСценарииРепозитория", ИспользоватьСценарииРепозитория);
|
||||
УправлениеНастройками.ЗаписатьНастройку(ИмяПриложения + "\КаталогЛокальныхСценариев", КаталогЛокальныхСценариев);
|
||||
|
||||
УправлениеНастройками.ЗаписатьНастройку(ИмяПриложения + "\ГлобальныеСценарии", ГлобальныеСценарии);
|
||||
НастройкиСценариев = СформироватьНастройкиСценариев(ГлобальныеСценарии, КаталогГлобальныхСценариев);
|
||||
УправлениеНастройками.ЗаписатьНастройку(ИмяПриложения + "\НастройкиСценариев", НастройкиСценариев);
|
||||
Пока ПолучитьНастройкуБулево("Сконфигурировать дополнительный каталог со своими правилами обработки?", Ложь) Цикл
|
||||
|
||||
АдресКаталога = ПолучитьНастройкуСтрока("Введите относительный путь в репозитории к каталогу", "");
|
||||
|
||||
Если ПроверитьАдресДополнительногоКаталога(КаталогРепозитория, АдресКаталога, УправлениеНастройками) Тогда
|
||||
|
||||
АдресКаталога = ФайловыеОперации.ПолучитьНормализованныйОтносительныйПуть(КаталогРепозитория, АдресКаталога);
|
||||
НастройкиДополнительные = ИнтерактивнаяНастройка(АдресКаталога, УправлениеНастройками, Ложь, КаталогГлобальныхСценариев, Истина);
|
||||
ОсновныеНастройки.Вставить(АдресКаталога, НастройкиДополнительные.Получить(АдресКаталога));
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ПолучитьНастройкуБулево(ТекстПодсказки, Знач ЗначениеПоУмолчанию)
|
||||
Функция ПроверитьАдресДополнительногоКаталога(КаталогРепозитория, АдресКаталога, УправлениеНастройками)
|
||||
|
||||
РазрешеноДобавление = Истина;
|
||||
КаталогВРепо = ФайловыеОперации.ПолучитьНормализованныйПолныйПуть(КаталогРепозитория, АдресКаталога);
|
||||
НастроенныеПроекты = УправлениеНастройками.ПолучитьПроектыКонфигурации(Истина);
|
||||
Файл = Новый Файл(КаталогВРепо);
|
||||
Сообщение = "";
|
||||
|
||||
Если Файл.Существует() И Файл.ЭтоКаталог() Тогда
|
||||
|
||||
Для Каждого Проект Из НастроенныеПроекты Цикл
|
||||
|
||||
КаталогНастроенныйВКонфигурации = ФайловыеОперации.ПолучитьНормализованныйПолныйПуть(КаталогРепозитория, Проект);
|
||||
|
||||
Если КаталогВРепо = КаталогНастроенныйВКонфигурации Тогда
|
||||
|
||||
Сообщение = "Каталог уже добавлен";
|
||||
РазрешеноДобавление = Ложь;
|
||||
Прервать;
|
||||
|
||||
ИначеЕсли СтрНачинаетсяС(КаталогВРепо, КаталогНастроенныйВКонфигурации) ИЛИ СтрНачинаетсяС(КаталогНастроенныйВКонфигурации, КаталогВРепо) Тогда
|
||||
|
||||
РазрешеноДобавление = Ложь;
|
||||
Сообщение = "Невозможно добавить вложенный каталог";
|
||||
Прервать;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Если НЕ ЗначениеЗаполнено(ЗначениеПоУмолчанию) Тогда
|
||||
|
||||
ЗначениеПоУмолчанию = Истина;
|
||||
|
||||
Иначе
|
||||
|
||||
РазрешеноДобавление = Ложь;
|
||||
Сообщение = "Каталога не существует или это файл";
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если НЕ РазрешеноДобавление Тогда
|
||||
Сообщить(Сообщение);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат РазрешеноДобавление;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьНастройкуБулево(ТекстПодсказки, Знач ЗначениеПоУмолчанию)
|
||||
|
||||
Если НЕ ЗначениеЗаполнено(ЗначениеПоУмолчанию) Тогда
|
||||
|
||||
ЗначениеПоУмолчанию = Истина;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ВыбранноеЗначение = Формат(ЗначениеПоУмолчанию, "БЛ=n; БИ=y");
|
||||
Пока ИСТИНА Цикл
|
||||
|
||||
Пока Истина Цикл
|
||||
|
||||
Сообщить(ТекстПодсказки + " [" + Формат(ЗначениеПоУмолчанию, "БЛ=n; БИ=y") + "]. Введите y[es]/n[o]");
|
||||
ВвестиСтроку(ВыбранноеЗначение);
|
||||
|
||||
|
||||
Если СтрНайти("yY", ВыбранноеЗначение) Тогда
|
||||
|
||||
ВыбранноеЗначение = ИСТИНА;
|
||||
|
||||
ВыбранноеЗначение = Истина;
|
||||
Прервать;
|
||||
|
||||
|
||||
ИначеЕсли СтрНайти("nN", ВыбранноеЗначение) Тогда
|
||||
|
||||
ВыбранноеЗначение = ЛОЖЬ;
|
||||
|
||||
ВыбранноеЗначение = Ложь;
|
||||
Прервать;
|
||||
|
||||
ИначеЕсли ВыбранноеЗначение = Символы.ПС Тогда
|
||||
|
||||
ВыбранноеЗначение = ИСТИНА;
|
||||
ВыбранноеЗначение = Истина;
|
||||
Прервать;
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
|
||||
Возврат ВыбранноеЗначение;
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьНастройкуМассив(ТекстПодсказки, ДоступныйМассив, Знач УстановленныеЗначения = Неопределено)
|
||||
|
||||
|
||||
Если УстановленныеЗначения = Неопределено Тогда
|
||||
|
||||
УстановленныеЗначения = ДоступныйМассив;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Сообщить(ТекстПодсказки);
|
||||
ВыбранныеЭлементы = Новый Массив;
|
||||
Для Ит = 0 По ДоступныйМассив.Количество() - 1 Цикл
|
||||
|
||||
|
||||
ЗначениеМассива = ДоступныйМассив[Ит];
|
||||
ТекстПодсказкиМассив = Символы.Таб + ЗначениеМассива;
|
||||
Если ПолучитьНастройкуБулево(ТекстПодсказкиМассив, УстановленныеЗначения.Найти(ЗначениеМассива) <> Неопределено) Тогда
|
||||
|
||||
|
||||
ВыбранныеЭлементы.Добавить(ЗначениеМассива);
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ВыбранныеЭлементы;
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьНастройкуСтрока(ТекстПодсказки, ЗначениеПоУмолчанию = "")
|
||||
|
||||
ВыбранноеЗначение = "";
|
||||
Пока Истина Цикл
|
||||
|
||||
|
||||
Сообщить(ТекстПодсказки + ?(ПустаяСтрока(ЗначениеПоУмолчанию), "", "[" + ЗначениеПоУмолчанию + "]"));
|
||||
ВвестиСтроку(ВыбранноеЗначение);
|
||||
|
||||
|
||||
ВыбранноеЗначение = СокрЛП(ВыбранноеЗначение);
|
||||
Если Не ПустаяСтрока(ВыбранноеЗначение) Тогда
|
||||
|
||||
Прервать;
|
||||
|
||||
|
||||
ИначеЕсли НЕ ПустаяСтрока(ЗначениеПоУмолчанию) Тогда
|
||||
|
||||
ВыбранноеЗначение = ЗначениеПоУмолчанию;
|
||||
Прервать;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
|
||||
Возврат ВыбранноеЗначение;
|
||||
|
||||
КонецФункции
|
||||
|
@ -10,7 +10,6 @@
|
||||
|
||||
Перем Лог;
|
||||
Перем РепозиторийGit;
|
||||
Перем СценарииОбработки;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@ -18,7 +17,8 @@
|
||||
|
||||
// Добавление параметров команды
|
||||
Парсер.ДобавитьПозиционныйПараметрКоманды(Команда, "КаталогРепозитория", "Каталог анализируемого репозитория");
|
||||
Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-source-dir", "Каталог расположения исходных файлов относительно корня репозитория. По умолчанию <src>");
|
||||
Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-source-dir",
|
||||
"Каталог расположения исходных файлов относительно корня репозитория. По умолчанию <src>");
|
||||
|
||||
КонецПроцедуры // НастроитьКоманду
|
||||
|
||||
@ -42,7 +42,8 @@
|
||||
КонецЕсли;
|
||||
|
||||
УправлениеНастройками = Новый НастройкиРепозитория(КаталогРепозитория);
|
||||
Если УправлениеНастройками.ЭтоНовый() ИЛИ УправлениеНастройками.НастройкиПриложения("Precommt4onecСценарии").Количество() = 0 Тогда
|
||||
Если УправлениеНастройками.ЭтоНовый()
|
||||
ИЛИ УправлениеНастройками.НастройкиПриложения("Precommt4onecСценарии").Количество() = 0 Тогда
|
||||
|
||||
Лог.Информация("Используем глобальные настройки");
|
||||
УправлениеНастройками = Новый НастройкиРепозитория(Приложение.ПутьКРодительскомуКаталогу());
|
||||
@ -53,8 +54,6 @@
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ЗагрузитьСценарииОбработки(Приложение.КаталогСценариев(), УправлениеНастройками, КаталогРепозитория);
|
||||
|
||||
КаталогИсходныхФайлов = ПараметрыКоманды["-source-dir"];
|
||||
Если Не ЗначениеЗаполнено(КаталогИсходныхФайлов) Тогда
|
||||
|
||||
@ -65,6 +64,7 @@
|
||||
ТекущийКаталогИсходныхФайлов = ОбъединитьПути(КаталогРепозитория, КаталогИсходныхФайлов);
|
||||
ФайлТекущийКаталогИсходныхФайлов = Новый Файл(ТекущийКаталогИсходныхФайлов);
|
||||
ТекущийКаталогИсходныхФайлов = ФайлТекущийКаталогИсходныхФайлов.ПолноеИмя;
|
||||
|
||||
Если НЕ ФайлТекущийКаталогИсходныхФайлов.Существует() Тогда
|
||||
|
||||
СоздатьКаталог(ТекущийКаталогИсходныхФайлов);
|
||||
@ -81,33 +81,58 @@
|
||||
Возврат Приложение.РезультатыКоманд().НеверныеПараметры;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
НастройкиПроектов = УправлениеНастройками.ПолучитьПроектыКонфигурации();
|
||||
НаборНастроек = Новый Соответствие;
|
||||
|
||||
Для Каждого ЭлементНастройки из НастройкиПроектов Цикл
|
||||
Настройка = Новый Структура("СценарииОбработки, НастройкиСценариев");
|
||||
Настройка.СценарииОбработки = ЗагрузитьСценарииОбработки(Приложение.КаталогСценариев(),
|
||||
УправлениеНастройками,
|
||||
КаталогРепозитория,
|
||||
ЭлементНастройки);
|
||||
Настройка.НастройкиСценариев = УправлениеНастройками.НастройкиПриложения(ЭлементНастройки);
|
||||
НаборНастроек.Вставить(ЭлементНастройки, Настройка);
|
||||
КонецЦикла;
|
||||
|
||||
ЖурналИзменений = ПолучитьЖурналИзменений();
|
||||
|
||||
Ит = 0;
|
||||
ПараметрыОбработки = Новый Структура("Лог, ФайлыДляПостОбработки, ИзмененныеКаталоги, КаталогРепозитория, УправлениеНастройками",
|
||||
Лог, Новый Массив, Новый Массив, КаталогРепозитория, УправлениеНастройками);
|
||||
ПараметрыОбработки = Новый Структура("ФайлыДляПостОбработки, ИзмененныеКаталоги, КаталогРепозитория, Настройки",
|
||||
Новый Массив, Новый Массив, КаталогРепозитория);
|
||||
ПараметрыОбработки.Вставить("Лог", Лог);
|
||||
Пока Ит < ЖурналИзменений.Количество() Цикл
|
||||
|
||||
АнализируемыйФайл = Новый Файл(ОбъединитьПути(КаталогРепозитория, ЖурналИзменений[Ит].ИмяФайла));
|
||||
Лог.Отладка("Анализируется файл <%1>", АнализируемыйФайл.Имя);
|
||||
|
||||
ИмяФайла = ФайловыеОперации.ПолучитьНормализованныйОтносительныйПуть(КаталогРепозитория,
|
||||
ЖурналИзменений[Ит].ИмяФайла);
|
||||
НастройкаОбработки = ПолучитьПараметрыОбработкиФайла(ИмяФайла, УправлениеНастройками, НаборНастроек);
|
||||
|
||||
СценарииОбработки = НастройкаОбработки.СценарииОбработки;
|
||||
НастройкиСценариев = НастройкаОбработки.НастройкиСценариев;
|
||||
|
||||
ПараметрыОбработки.Настройки = НастройкиСценариев.Получить("НастройкиСценариев");
|
||||
Для Каждого СценарийОбработки Из СценарииОбработки Цикл
|
||||
|
||||
ФайлОбработан = СценарийОбработки.Сценарий.ОбработатьФайл(АнализируемыйФайл, ТекущийКаталогИсходныхФайлов, ПараметрыОбработки);
|
||||
Если ФайлОбработан Тогда
|
||||
|
||||
Для каждого ФайлДляДопОбработки Из ПараметрыОбработки.ФайлыДляПостОбработки Цикл
|
||||
|
||||
ЖурналИзменений.Добавить(Новый Структура("ИмяФайла, ТипИзменения", СтрЗаменить(ФайлДляДопОбработки, КаталогРепозитория, ""), ВариантИзмененийФайловGit.Изменен));
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
ПараметрыОбработки.ФайлыДляПостОбработки.Очистить();
|
||||
|
||||
ФайлОбработан = СценарийОбработки.Сценарий.ОбработатьФайл(АнализируемыйФайл,
|
||||
ТекущийКаталогИсходныхФайлов,
|
||||
ПараметрыОбработки);
|
||||
|
||||
Если НЕ ФайлОбработан Тогда
|
||||
Продолжить;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого ФайлДляДопОбработки Из ПараметрыОбработки.ФайлыДляПостОбработки Цикл
|
||||
|
||||
ЖурналИзменений.Добавить(Новый Структура("ИмяФайла, ТипИзменения",
|
||||
СтрЗаменить(ФайлДляДопОбработки, КаталогРепозитория, ""),
|
||||
ВариантИзмененийФайловGit.Изменен));
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
ПараметрыОбработки.ФайлыДляПостОбработки.Очистить();
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
@ -130,6 +155,31 @@
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
Функция ПолучитьПараметрыОбработкиФайла(ИмяФайла, УправлениеНастройками, НастройкиПроектов)
|
||||
|
||||
ИмяОбщейНастройки = УправлениеНастройками.ИмяПоУмолчанию();
|
||||
НайденнаяНастройка = НастройкиПроектов.Получить(ИмяОбщейНастройки);
|
||||
|
||||
Для Каждого ЭлементНастройки Из НастройкиПроектов Цикл
|
||||
|
||||
Если ЭлементНастройки.Ключ = ИмяОбщейНастройки Тогда
|
||||
|
||||
Продолжить;
|
||||
|
||||
ИначеЕсли СтрНачинаетсяС(ИмяФайла, ЭлементНастройки.Ключ) Тогда
|
||||
|
||||
НайденнаяНастройка = ЭлементНастройки.Значение;
|
||||
|
||||
Иначе
|
||||
// ничего
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат НайденнаяНастройка;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьЖурналИзменений()
|
||||
|
||||
ПараметрыКомандыGit = Новый Массив;
|
||||
@ -146,7 +196,7 @@
|
||||
СтрокаВывода = СокрЛП(СтрокаВывода);
|
||||
ПозицияПробела = СтрНайти(СтрокаВывода, Символы.Таб);
|
||||
СимволИзменения = Лев(СтрокаВывода, 1);
|
||||
|
||||
|
||||
ТипИзменения = ВариантИзмененийФайловGit.ОпределитьВариантИзменения(СимволИзменения);
|
||||
ИмяФайла = СокрЛП(СтрЗаменить(Сред(СтрокаВывода, ПозицияПробела + 1), """", ""));
|
||||
ЖурналИзменений.Добавить(Новый Структура("ИмяФайла, ТипИзменения", ИмяФайла, ТипИзменения));
|
||||
@ -159,7 +209,7 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ЗагрузитьСценарииОбработки(ТекущийКаталогСценариев, УправлениеНастройками, КаталогРепозитория)
|
||||
Функция ЗагрузитьСценарииОбработки(ТекущийКаталогСценариев, УправлениеНастройками, КаталогРепозитория, КлючНастройки)
|
||||
|
||||
СценарииОбработки = Новый Массив;
|
||||
ФайлыГлобальныхСценариев = НайтиФайлы(ТекущийКаталогСценариев, "*.os");
|
||||
@ -168,11 +218,11 @@
|
||||
|
||||
Если НЕ УправлениеНастройками.ЭтоНовый() Тогда
|
||||
|
||||
Лог.Информация("Читаем настройки");
|
||||
ИменаЗагружаемыхСценариев = УправлениеНастройками.Настройка("Precommt4onecСценарии\ГлобальныеСценарии");
|
||||
Если УправлениеНастройками.Настройка("Precommt4onecСценарии\ИспользоватьСценарииРепозитория") Тогда
|
||||
Лог.Информация("Читаем настройки " + КлючНастройки);
|
||||
ИменаЗагружаемыхСценариев = УправлениеНастройками.Настройка(КлючНастройки + "\ГлобальныеСценарии");
|
||||
Если УправлениеНастройками.Настройка(КлючНастройки + "\ИспользоватьСценарииРепозитория") Тогда
|
||||
|
||||
ЛокальныйКаталог = УправлениеНастройками.Настройка("Precommt4onecСценарии\КаталогЛокальныхСценариев");
|
||||
ЛокальныйКаталог = УправлениеНастройками.Настройка(КлючНастройки + "\КаталогЛокальныхСценариев");
|
||||
ПутьКЛокальнымСценариям = ОбъединитьПути(КаталогРепозитория, ЛокальныйКаталог);
|
||||
ФайлПутьКЛокальнымСценариям = Новый Файл(ПутьКЛокальнымСценариям);
|
||||
|
||||
@ -198,10 +248,12 @@
|
||||
ВызватьИсключение "Нет доступных сценариев обработки файлов";
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
Возврат СценарииОбработки;
|
||||
КонецФункции
|
||||
|
||||
Процедура ЗагрузитьСценарииИзКаталога(СценарииОбработки, ФайлыСценариев, Знач ИменаЗагружаемыхСценариев = Неопределено, ЗагрузитьВсе = Ложь)
|
||||
Процедура ЗагрузитьСценарииИзКаталога(СценарииОбработки, ФайлыСценариев,
|
||||
Знач ИменаЗагружаемыхСценариев = Неопределено,
|
||||
ЗагрузитьВсе = Ложь)
|
||||
|
||||
Если ИменаЗагружаемыхСценариев = Неопределено Тогда
|
||||
|
||||
@ -226,7 +278,8 @@
|
||||
Попытка
|
||||
|
||||
СценарийОбработки = ЗагрузитьСценарий(ФайлСценария.ПолноеИмя);
|
||||
СценарииОбработки.Добавить(Новый Структура("ИмяСценария, Сценарий", СценарийОбработки.ИмяСценария(), СценарийОбработки));
|
||||
СценарииОбработки.Добавить(Новый Структура("ИмяСценария, Сценарий",
|
||||
СценарийОбработки.ИмяСценария(), СценарийОбработки));
|
||||
|
||||
Исключение
|
||||
|
||||
|
@ -16,7 +16,6 @@
|
||||
Перем Конфигурация; // описание конфигурации
|
||||
Перем АдресКонфигурационногоФайла; // адрес нахождения конфигурационного файла
|
||||
Перем ОбновлятьКонфигурацию; // флаг необходимости обновления конфигурации / затирания
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
// Программный интерфейс
|
||||
///////////////////////////////////////////////////////////////////
|
||||
@ -30,23 +29,9 @@
|
||||
Функция ЭтоНовый() Экспорт
|
||||
|
||||
Возврат НовыйКонфиг;
|
||||
|
||||
|
||||
КонецФункции // ЭтоНовый()
|
||||
|
||||
// ГлобальныеНастройки
|
||||
// Возвращает набор глобальных настроек
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие - Набор глобальных настроек при их наличии, если настроек нет то будет возвращено пустое соответствие
|
||||
//
|
||||
Функция ГлобальныеНастройки() Экспорт
|
||||
|
||||
ПроверкаИнициализации();
|
||||
|
||||
Возврат НастройкиПриложения("GLOBAL");
|
||||
|
||||
КонецФункции // ГлобальныеНастройки() Экспорт
|
||||
|
||||
// НастройкиПриложения
|
||||
// Возвращает набор настроек для приложения
|
||||
//
|
||||
@ -60,20 +45,20 @@
|
||||
|
||||
ПроверкаИнициализации();
|
||||
Если ПустаяСтрока(ИмяПриложения) Тогда
|
||||
|
||||
|
||||
ВызватьИсключение "Не указано имя приложения";
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
ИскомыеНастройки = Конфигурация.Получить(ИмяПриложения);
|
||||
Если ИскомыеНастройки = Неопределено Тогда
|
||||
|
||||
|
||||
ИскомыеНастройки = Новый Соответствие;
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Возврат ИскомыеНастройки;
|
||||
|
||||
|
||||
КонецФункции // НастройкиПриложения()
|
||||
|
||||
// Настройка
|
||||
@ -87,16 +72,32 @@
|
||||
// Возвращаемое значение:
|
||||
// Произвольный - Значение настройки
|
||||
//
|
||||
Функция Настройка(ИмяНастройки)Экспорт
|
||||
Функция Настройка(ИмяНастройки) Экспорт
|
||||
|
||||
ПроверкаИнициализации();
|
||||
|
||||
РазложенноеИмяНастройки = РазобратьИмяНастройки(ИмяНастройки);
|
||||
ИскомоеПриложение = НастройкиПриложения(РазложенноеИмяНастройки.ИмяПриложения);
|
||||
Возврат ИскомоеПриложение.Получить(РазложенноеИмяНастройки.ИмяНастройки);
|
||||
|
||||
|
||||
КонецФункции // Настройка(ИмяНастройки)
|
||||
|
||||
Функция ПолучитьПроектыКонфигурации(ТолькоДополнительные = Ложь) Экспорт
|
||||
Массив = Новый Массив;
|
||||
|
||||
Для Каждого Элемент из Конфигурация Цикл
|
||||
|
||||
Если ТолькоДополнительные И Элемент.Ключ = ИмяПоУмолчанию() Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Массив.Добавить(Элемент.Ключ);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Массив;
|
||||
|
||||
КонецФункции
|
||||
// ЗаписатьНастройку
|
||||
// Записывает настройку в конфигурационный файл
|
||||
//
|
||||
@ -110,18 +111,18 @@
|
||||
Процедура ЗаписатьНастройку(ИмяНастройки, Значение) Экспорт
|
||||
|
||||
ПроверкаИнициализации();
|
||||
|
||||
|
||||
РазложенноеИмяНастройки = РазобратьИмяНастройки(ИмяНастройки);
|
||||
ИскомоеПриложение = НастройкиПриложения(РазложенноеИмяНастройки.ИмяПриложения);
|
||||
Если ОбновлятьКонфигурацию ИЛИ ИскомоеПриложение.Получить(РазложенноеИмяНастройки.ИмяНастройки) = Неопределено Тогда
|
||||
|
||||
|
||||
ИскомоеПриложение.Вставить(РазложенноеИмяНастройки.ИмяНастройки, Значение);
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
Конфигурация.Вставить(РазложенноеИмяНастройки.ИмяПриложения, ИскомоеПриложение);
|
||||
|
||||
|
||||
ОбновитьКонфигурационныйФайл();
|
||||
|
||||
|
||||
КонецПроцедуры // ЗаписатьНастройку(ИмяНастройки, Значение)
|
||||
|
||||
// ЗаписатьНастройкиПриложения
|
||||
@ -134,23 +135,23 @@
|
||||
Процедура ЗаписатьНастройкиПриложения(ИмяПриложения, Значение) Экспорт
|
||||
|
||||
ПроверкаИнициализации();
|
||||
|
||||
Если ПустаяСтрока(ИмяПриложения) Тогда
|
||||
|
||||
|
||||
Если ПустаяСтрока(ИмяПриложения) Тогда
|
||||
|
||||
ВызватьИсключение "Не указано имя приложения";
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Если ТипЗнч(Значение) <> Тип("Соответствие") Тогда
|
||||
|
||||
ВызватьИсключение "Тип значения должен быть Соответствие";
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Конфигурация.Вставить(ИмяПриложения, Значение);
|
||||
|
||||
|
||||
ОбновитьКонфигурационныйФайл();
|
||||
|
||||
|
||||
КонецПроцедуры // ЗаписатьНастройкиПриложения()
|
||||
|
||||
// УдалитьНастройкиПриложения
|
||||
@ -162,17 +163,17 @@
|
||||
Процедура УдалитьНастройкиПриложения(ИмяПриложения) Экспорт
|
||||
|
||||
ПроверкаИнициализации();
|
||||
|
||||
|
||||
Если ПустаяСтрока(ИмяПриложения) Тогда
|
||||
|
||||
|
||||
ВызватьИсключение "Не указано имя приложения";
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Конфигурация.Удалить(ИмяПриложения);
|
||||
|
||||
|
||||
ОбновитьКонфигурационныйФайл();
|
||||
|
||||
|
||||
КонецПроцедуры // УдалитьНастройкиПриложения()
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
@ -182,9 +183,9 @@
|
||||
Функция ПроверкаИнициализации()
|
||||
|
||||
Если Не ИнициализацияВыполнена Тогда
|
||||
|
||||
|
||||
ВызватьИсключение "Необходимо выполнить инициализацию"
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции // ПроверкаИнициализации()
|
||||
@ -192,22 +193,21 @@
|
||||
Функция РазобратьИмяНастройки(Знач ИмяНастройки)
|
||||
|
||||
Если ПустаяСтрока(ИмяНастройки) Тогда
|
||||
|
||||
|
||||
ВызватьИсключение "Не передано имя настройки"
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ИмяПриложения = "GLOBAL";
|
||||
ПозицияРазделителя = СтрНайти(ИмяНастройки, "\");
|
||||
|
||||
ПозицияРазделителя = СтрНайти(ИмяНастройки, "\",НаправлениеПоиска.СКонца);
|
||||
Если ПозицияРазделителя > 0 Тогда
|
||||
|
||||
|
||||
ИмяПриложения = Лев(ИмяНастройки, ПозицияРазделителя - 1);
|
||||
ИмяНастройки = Сред(ИмяНастройки, ПозицияРазделителя + 1);
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Возврат Новый Структура("ИмяПриложения, ИмяНастройки", ИмяПриложения, ИмяНастройки);
|
||||
|
||||
|
||||
КонецФункции // РазобратьИмяНастройки()
|
||||
|
||||
Функция ОбновитьКонфигурационныйФайл()
|
||||
@ -217,11 +217,16 @@
|
||||
Запись = Новый ЗаписьТекста(АдресКонфигурационногоФайла, КодировкаТекста.UTF8NoBOM);
|
||||
Запись.Записать(ТекстКонфигурации);
|
||||
Запись.Закрыть();
|
||||
|
||||
НовыйКонфиг = ЛОЖЬ;
|
||||
|
||||
|
||||
НовыйКонфиг = Ложь;
|
||||
|
||||
КонецФункции // ОбновитьКонфигурационныйФайл()
|
||||
|
||||
Функция ИмяПоУмолчанию() Экспорт
|
||||
|
||||
Возврат "Precommt4onecСценарии";
|
||||
|
||||
КонецФункции
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
// ПриСозданииОбъекта
|
||||
@ -231,14 +236,13 @@
|
||||
// КаталогРепозитория - Строка - Адрес каталога репозитория
|
||||
// ОбновлятьКонф - Булево - флаг необходимости обновления конфигурации / затирания
|
||||
//
|
||||
Процедура ПриСозданииОбъекта(КаталогРепозитория, ОбновлятьКонф = ЛОЖЬ)
|
||||
Процедура ПриСозданииОбъекта(КаталогРепозитория, ОбновлятьКонф = Ложь)
|
||||
|
||||
ИнициализацияВыполнена = ЛОЖЬ;
|
||||
НовыйКонфиг = ЛОЖЬ;
|
||||
ИнициализацияВыполнена = Ложь;
|
||||
НовыйКонфиг = Ложь;
|
||||
Конфигурация = Неопределено;
|
||||
АдресКонфигурационногоФайла = "";
|
||||
ОбновлятьКонфигурацию = ?(ОбновлятьКонф = Неопределено, ЛОЖЬ, ОбновлятьКонф);
|
||||
|
||||
ОбновлятьКонфигурацию = ?(ОбновлятьКонф = Неопределено, Ложь, ОбновлятьКонф);
|
||||
Файл = Новый Файл(КаталогРепозитория);
|
||||
Если НЕ (Файл.Существует() И Файл.ЭтоКаталог()) Тогда
|
||||
|
||||
@ -256,14 +260,42 @@
|
||||
|
||||
ПарсерJSON = Новый ПарсерJSON;
|
||||
Конфигурация = ПарсерJSON.ПрочитатьJSON(ТекстКонфигурации);
|
||||
|
||||
|
||||
Иначе
|
||||
|
||||
НовыйКонфиг = ИСТИНА;
|
||||
|
||||
НовыйКонфиг = Истина;
|
||||
Конфигурация = Новый Соответствие;
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ИнициализацияВыполнена = ИСТИНА;
|
||||
ИнициализацияВыполнена = Истина;
|
||||
|
||||
КонецПроцедуры // ПриСозданииОбъекта()
|
||||
КонецПроцедуры // ПриСозданииОбъекта()
|
||||
|
||||
Функция ПолучитьСтандартнуюСтруктуруНастроек() Экспорт
|
||||
|
||||
Настройки = Новый Соответствие();
|
||||
|
||||
Настройки.Вставить("ИспользоватьСценарииРепозитория", Ложь);
|
||||
Настройки.Вставить("КаталогЛокальныхСценариев", "");
|
||||
Настройки.Вставить("ГлобальныеСценарии", Новый Массив);
|
||||
Настройки.Вставить("НастройкиСценариев", Новый Соответствие());
|
||||
Возврат Настройки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ЗаписатьСтруктуруНастроек(Настройки) Экспорт
|
||||
|
||||
ШаблонНастройки = "%1\%2";
|
||||
|
||||
Для Каждого Настройка Из Настройки Цикл
|
||||
|
||||
ЗаписатьНастройку(СтрШаблон(ШаблонНастройки, ИмяПоУмолчанию(), Настройка.Ключ), Настройка.Значение);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбновитьКонфигурацию() Экспорт
|
||||
ОбновлятьКонфигурацию = Истина;
|
||||
КонецПроцедуры
|
@ -1,4 +1,3 @@
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Служебный модуль с набором методов для работы с файлами
|
||||
@ -80,4 +79,96 @@
|
||||
|
||||
Возврат ?(ЕстьBOM, КодировкаТекста.UTF8, КодировкаТекста.UTF8NoBOM);
|
||||
|
||||
КонецФункции // ОпределитьКодировку
|
||||
КонецФункции // ОпределитьКодировку
|
||||
|
||||
// Возвращает путь файла относительно корневого каталога
|
||||
//
|
||||
// Параметры:
|
||||
// ПутьКорневогоКаталога - Строка - путь корневого каталога
|
||||
// ПутьВнутреннегоФайла - Строка - путь файла
|
||||
// РазделительПути - Строка или Неопределено - все разделители в пути заменяются на указанный разделитель пути
|
||||
// если Неопределено, то разделители пути не заменяются
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Строка - относительный путь файла
|
||||
//
|
||||
Функция ОтносительныйПуть(Знач ПутьКорневогоКаталога, Знач ПутьВнутреннегоФайла, Знач РазделительПути = Неопределено) Экспорт
|
||||
|
||||
ПроверитьКорневойКаталог(ПутьКорневогоКаталога);
|
||||
|
||||
ФайлКорень = Новый Файл(ПутьКорневогоКаталога);
|
||||
ФайлВнутреннийКаталог = Новый Файл(ПутьВнутреннегоФайла);
|
||||
Рез = СтрЗаменить(ФайлВнутреннийКаталог.ПолноеИмя, ФайлКорень.ПолноеИмя, "");
|
||||
|
||||
Если Найти("\/", Лев(Рез, 1)) > 0 Тогда
|
||||
Рез = Сред(Рез, 2);
|
||||
КонецЕсли;
|
||||
|
||||
Если Найти("\/", Прав(Рез, 1)) > 0 Тогда
|
||||
Рез = Лев(Рез, СтрДлина(Рез)-1);
|
||||
КонецЕсли;
|
||||
|
||||
Если РазделительПути <> Неопределено Тогда
|
||||
Рез = СтрЗаменить(Рез, "\", РазделительПути);
|
||||
Рез = СтрЗаменить(Рез, "/", РазделительПути);
|
||||
КонецЕсли;
|
||||
|
||||
Если ПустаяСтрока(Рез) Тогда
|
||||
Рез = ".";
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Рез;
|
||||
КонецФункции
|
||||
|
||||
// Возвращает относительный путь файла по относительному пути, обрезая разделители. Приводит разделители пути к формату ОС
|
||||
//
|
||||
// Параметры:
|
||||
// ПутьКорневогоКаталога - Строка - путь корневого каталога
|
||||
// ОтносительныйПутьФайла - Строка - относительный путь в корне каталога
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Строка - относительный путь файла
|
||||
//
|
||||
Функция ПолучитьНормализованныйОтносительныйПуть(Знач ПутьКорневогоКаталога, Знач ОтносительныйПутьФайла) Экспорт
|
||||
|
||||
ПроверитьКорневойКаталог(ПутьКорневогоКаталога);
|
||||
|
||||
ПолныйПутьФайла = ОбъединитьПути(ПутьКорневогоКаталога, ОтносительныйПутьФайла);
|
||||
ОтносительныйПуть = ОтносительныйПуть(ПутьКорневогоКаталога, ПолныйПутьФайла, ПолучитьРазделительПути());
|
||||
Файл = Новый Файл(ПолныйПутьФайла);
|
||||
ЭтоКаталог = Файл.Существует() И Файл.ЭтоКаталог();
|
||||
Результат = ?(ЭтоКаталог, ОтносительныйПуть + ПолучитьРазделительПути(), ОтносительныйПуть);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает полный путь файла по относительному пути, обрезая лишние разделители, приводит разделители пути к формату ОС
|
||||
//
|
||||
// Параметры:
|
||||
// ПутьКорневогоКаталога - Строка - путь корневого каталога
|
||||
// ОтносительныйПутьФайла - Строка - относительный путь в корне каталога
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Строка - полный путь файла
|
||||
//
|
||||
Функция ПолучитьНормализованныйПолныйПуть(Знач ПутьКорневогоКаталога, Знач ОтносительныйПутьФайла) Экспорт
|
||||
|
||||
ПроверитьКорневойКаталог(ПутьКорневогоКаталога);
|
||||
|
||||
ОтносительныйПуть = ПолучитьНормализованныйОтносительныйПуть(ПутьКорневогоКаталога, ОтносительныйПутьФайла);
|
||||
Результат = ОбъединитьПути(ПутьКорневогоКаталога, ОтносительныйПуть);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ПроверитьКорневойКаталог(ПутьКорневогоКаталога)
|
||||
|
||||
Если ПустаяСтрока(ПутьКорневогоКаталога) Тогда
|
||||
|
||||
ВызватьИсключение "Не указан корневой путь в методе ОтносительныйПуть";
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
@ -36,7 +36,7 @@
|
||||
Функция ОбработатьФайл(АнализируемыйФайл, КаталогИсходныхФайлов, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Лог = ДополнительныеПараметры.Лог;
|
||||
НастройкиСценария = ДополнительныеПараметры.УправлениеНастройками.Настройка("Precommt4onecСценарии\НастройкиСценариев").Получить(ИмяСценария());
|
||||
НастройкиСценария = ДополнительныеПараметры.Настройки.Получить(ИмяСценария());
|
||||
Если АнализируемыйФайл.Существует() И ТипыФайлов.ЭтоФайлИсходников(АнализируемыйФайл) Тогда
|
||||
|
||||
Лог.Информация("Обработка файла '%1' по сценарию '%2'", АнализируемыйФайл.ПолноеИмя, ИмяСценария());
|
||||
|
@ -37,7 +37,7 @@
|
||||
Функция ОбработатьФайл(АнализируемыйФайл, КаталогИсходныхФайлов, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Лог = ДополнительныеПараметры.Лог;
|
||||
НастройкиСценария = ДополнительныеПараметры.УправлениеНастройками.Настройка("Precommt4onecСценарии\НастройкиСценариев").Получить(ИмяСценария());
|
||||
НастройкиСценария = ДополнительныеПараметры.Настройки.Получить(ИмяСценария());
|
||||
Если АнализируемыйФайл.Существует() И ТипыФайлов.ЭтоФайлИсходников(АнализируемыйФайл) Тогда
|
||||
|
||||
Лог.Информация("Обработка файла '%1' по сценарию '%2'", АнализируемыйФайл.ПолноеИмя, ИмяСценария());
|
||||
|
@ -110,6 +110,7 @@
|
||||
// ничего интересного не осталось
|
||||
Если СтрокаОткрыта И ПозицияКавычек = 0
|
||||
ИЛИ ПустаяСтрока(НоваяСтрокаМодуля) Тогда
|
||||
|
||||
ДобавитьСтрокуСодержимого(НовоеСодержимоеФайла, СтрокаМодуля);
|
||||
Продолжить;
|
||||
|
||||
@ -377,7 +378,8 @@
|
||||
ИначеЕсли ВРег(Режим) = "СПРАВА" Тогда
|
||||
|
||||
Строка = Строка + СтрокаДляДобавления;
|
||||
|
||||
Иначе
|
||||
// ничего
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
@ -385,4 +387,3 @@
|
||||
Возврат Строка;
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
@ -35,39 +35,26 @@
|
||||
Функция ОбработатьФайл(АнализируемыйФайл, КаталогИсходныхФайлов, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Лог = ДополнительныеПараметры.Лог;
|
||||
НастройкиСценария = ДополнительныеПараметры.УправлениеНастройками.Настройка("Precommt4onecСценарии\НастройкиСценариев").Получить(ИмяСценария());
|
||||
Если АнализируемыйФайл.Существует() Тогда
|
||||
|
||||
Если ТипыФайлов.ЭтоФайлОписанияФормы(АнализируемыйФайл) Тогда
|
||||
|
||||
Лог.Информация("Обработка файла '%1' по сценарию '%2'", АнализируемыйФайл.ПолноеИмя, ИмяСценария());
|
||||
|
||||
Если ОбновитьИндексыЭлементовВФорме(АнализируемыйФайл.ПолноеИмя) Тогда
|
||||
|
||||
ДополнительныеПараметры.ИзмененныеКаталоги.Добавить(АнализируемыйФайл.ПолноеИмя);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ИСТИНА;
|
||||
|
||||
ИначеЕсли ТипыФайлов.ЭтоФайлОписанияФормыEDT(АнализируемыйФайл) Тогда
|
||||
|
||||
Лог.Информация("Обработка файла '%1' по сценарию '%2'", АнализируемыйФайл.ПолноеИмя, ИмяСценария());
|
||||
|
||||
Если ОбновитьИндексыЭлементовВФорме(АнализируемыйФайл.ПолноеИмя, Истина) Тогда
|
||||
|
||||
ДополнительныеПараметры.ИзмененныеКаталоги.Добавить(АнализируемыйФайл.ПолноеИмя);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ИСТИНА;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
НастройкиСценария = ДополнительныеПараметры.Настройки.Получить(ИмяСценария());
|
||||
Если НЕ АнализируемыйФайл.Существует() Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
ФорматEDT = ТипыФайлов.ЭтоФайлОписанияФормыEDT(АнализируемыйФайл);
|
||||
Если ТипыФайлов.ЭтоФайлОписанияФормы(АнализируемыйФайл) ИЛИ ФорматEDT Тогда
|
||||
|
||||
Лог.Информация("Обработка файла '%1' по сценарию '%2'", АнализируемыйФайл.ПолноеИмя, ИмяСценария());
|
||||
|
||||
Если ОбновитьИндексыЭлементовВФорме(АнализируемыйФайл.ПолноеИмя, ФорматEDT) Тогда
|
||||
ДополнительныеПараметры.ИзмененныеКаталоги.Добавить(АнализируемыйФайл.ПолноеИмя);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ЛОЖЬ;
|
||||
Возврат Истина;
|
||||
|
||||
Иначе
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции // ОбработатьФайл()
|
||||
|
||||
Функция ОбновитьИндексыЭлементовВФорме(Знач ИмяФайла, EDT = Ложь)
|
||||
@ -100,44 +87,42 @@
|
||||
СтрокиФайла.Вставить(СтрокаТЧ.Значение, ГруппаИндексов.Группы[1].Индекс);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
|
||||
ТЧ.Свернуть("Значение", "Количество");
|
||||
Если ТЧ.Количество() <> ГруппыИндексов.Количество() Тогда
|
||||
|
||||
ТЧ.Сортировать("Значение УБЫВ");
|
||||
ПоследнийНомер = ТЧ[0].Значение;
|
||||
ТЧ.Сортировать("Количество УБЫВ");
|
||||
Для каждого СтрокаТЧ Из ТЧ Цикл
|
||||
|
||||
Если СтрокаТЧ.Количество = 1 Тогда
|
||||
|
||||
Прервать;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Пока СтрокаТЧ.Количество > 1 Цикл
|
||||
|
||||
ИсходнаяСтрока = ?(EDT, "<id>" + СтрокаТЧ.Значение + "<", "id=""" + СтрокаТЧ.Значение + """");
|
||||
ПоследнийНомер = ПоследнийНомер + 1;
|
||||
СтрокаЗамены = ?(EDT, "<id>" + ПоследнийНомер + "<", "id=""" + ПоследнийНомер + """");
|
||||
|
||||
Поз = СтрНайти(СодержимоеФайла, ИсходнаяСтрока);
|
||||
|
||||
НоваяСтрока = Лев(СодержимоеФайла, Поз - 1) + СтрокаЗамены;
|
||||
СодержимоеФайла = НоваяСтрока + Сред(СодержимоеФайла, Поз + СтрДлина(ИсходнаяСтрока));
|
||||
|
||||
СтрокаТЧ.Количество = СтрокаТЧ.Количество - 1;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
ФайловыеОперации.ЗаписатьТекстФайла(ИмяФайла, СодержимоеФайла);
|
||||
|
||||
Возврат ИСТИНА;
|
||||
|
||||
Если ТЧ.Количество() = ГруппыИндексов.Количество() Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ЛОЖЬ;
|
||||
ТЧ.Сортировать("Значение УБЫВ");
|
||||
ПоследнийНомер = ТЧ[0].Значение;
|
||||
ТЧ.Сортировать("Количество УБЫВ");
|
||||
Для каждого СтрокаТЧ Из ТЧ Цикл
|
||||
|
||||
Если СтрокаТЧ.Количество = 1 Тогда
|
||||
|
||||
Прервать;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Пока СтрокаТЧ.Количество > 1 Цикл
|
||||
|
||||
ИсходнаяСтрока = ?(EDT, "<id>" + СтрокаТЧ.Значение + "<", "id=""" + СтрокаТЧ.Значение + """");
|
||||
ПоследнийНомер = ПоследнийНомер + 1;
|
||||
СтрокаЗамены = ?(EDT, "<id>" + ПоследнийНомер + "<", "id=""" + ПоследнийНомер + """");
|
||||
|
||||
Поз = СтрНайти(СодержимоеФайла, ИсходнаяСтрока);
|
||||
|
||||
НоваяСтрока = Лев(СодержимоеФайла, Поз - 1) + СтрокаЗамены;
|
||||
СодержимоеФайла = НоваяСтрока + Сред(СодержимоеФайла, Поз + СтрДлина(ИсходнаяСтрока));
|
||||
|
||||
СтрокаТЧ.Количество = СтрокаТЧ.Количество - 1;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
ФайловыеОперации.ЗаписатьТекстФайла(ИмяФайла, СодержимоеФайла);
|
||||
|
||||
Возврат ИСТИНА;
|
||||
|
||||
КонецФункции
|
||||
|
@ -62,7 +62,7 @@
|
||||
Функция ОбработатьФайл(АнализируемыйФайл, КаталогИсходныхФайлов, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Лог = ДополнительныеПараметры.Лог;
|
||||
НастройкиСценария = ДополнительныеПараметры.УправлениеНастройками.Настройка("Precommt4onecСценарии\НастройкиСценариев").Получить(ИмяСценария());
|
||||
НастройкиСценария = ДополнительныеПараметры.Настройки.Получить(ИмяСценария());
|
||||
|
||||
Если АнализируемыйФайл.Существует() И ТипыФайлов.ЭтоФайлОписанияМетаданных(АнализируемыйФайл) Тогда
|
||||
|
||||
|
@ -36,7 +36,7 @@
|
||||
Функция ОбработатьФайл(АнализируемыйФайл, КаталогИсходныхФайлов, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Лог = ДополнительныеПараметры.Лог;
|
||||
НастройкиСценария = ДополнительныеПараметры.УправлениеНастройками.Настройка("Precommt4onecСценарии\НастройкиСценариев").Получить(ИмяСценария());
|
||||
НастройкиСценария = ДополнительныеПараметры.Настройки.Получить(ИмяСценария());
|
||||
|
||||
Если АнализируемыйФайл.Существует() И ТипыФайлов.ЭтоФайлИсходников(АнализируемыйФайл) Тогда
|
||||
|
||||
|
@ -37,7 +37,7 @@
|
||||
Функция ОбработатьФайл(АнализируемыйФайл, КаталогИсходныхФайлов, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Лог = ДополнительныеПараметры.Лог;
|
||||
НастройкиСценария = ДополнительныеПараметры.УправлениеНастройками.Настройка("Precommt4onecСценарии\НастройкиСценариев").Получить(ИмяСценария());
|
||||
НастройкиСценария = ДополнительныеПараметры.Настройки.Получить(ИмяСценария());
|
||||
Если АнализируемыйФайл.Существует() И ТипыФайлов.ЭтоФайлИсходников(АнализируемыйФайл) Тогда
|
||||
|
||||
Лог.Информация("Обработка файла '%1' по сценарию '%2'", АнализируемыйФайл.ПолноеИмя, ИмяСценария());
|
||||
|
@ -40,7 +40,7 @@
|
||||
Функция ОбработатьФайл(АнализируемыйФайл, КаталогИсходныхФайлов, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Лог = ДополнительныеПараметры.Лог;
|
||||
НастройкиСценария = ДополнительныеПараметры.УправлениеНастройками.Настройка("Precommt4onecСценарии\НастройкиСценариев").Получить(ИмяСценария());
|
||||
НастройкиСценария = ДополнительныеПараметры.Настройки.Получить(ИмяСценария());
|
||||
|
||||
Если ТипыФайлов.ЭтоФайлОбычнойФормы(АнализируемыйФайл) Тогда
|
||||
|
||||
|
@ -64,7 +64,7 @@
|
||||
Функция ОбработатьФайл(АнализируемыйФайл, КаталогИсходныхФайлов, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Лог = ДополнительныеПараметры.Лог;
|
||||
НастройкиСценария = ДополнительныеПараметры.УправлениеНастройками.Настройка("Precommt4onecСценарии\НастройкиСценариев").Получить(ИмяСценария());
|
||||
НастройкиСценария = ДополнительныеПараметры.Настройки.Получить(ИмяСценария());
|
||||
|
||||
Если ТипФайлаПоддерживается(АнализируемыйФайл) Тогда
|
||||
|
||||
|
@ -35,7 +35,7 @@
|
||||
Функция ОбработатьФайл(АнализируемыйФайл, КаталогИсходныхФайлов, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Лог = ДополнительныеПараметры.Лог;
|
||||
НастройкиСценария = ДополнительныеПараметры.УправлениеНастройками.Настройка("Precommt4onecСценарии\НастройкиСценариев").Получить(ИмяСценария());
|
||||
НастройкиСценария = ДополнительныеПараметры.Настройки.Получить(ИмяСценария());
|
||||
Если АнализируемыйФайл.Существует() И ТипыФайлов.ЭтоФайлОписанияКонфигурации(АнализируемыйФайл) Тогда
|
||||
|
||||
Лог.Информация("Обработка файла '%1' по сценарию '%2'", АнализируемыйФайл.ПолноеИмя, ИмяСценария());
|
||||
|
@ -35,7 +35,7 @@
|
||||
Функция ОбработатьФайл(АнализируемыйФайл, КаталогИсходныхФайлов, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Лог = ДополнительныеПараметры.Лог;
|
||||
НастройкиСценария = ДополнительныеПараметры.УправлениеНастройками.Настройка("Precommt4onecСценарии\НастройкиСценариев").Получить(ИмяСценария());
|
||||
НастройкиСценария = ДополнительныеПараметры.Настройки.Получить(ИмяСценария());
|
||||
Если АнализируемыйФайл.Существует() Тогда
|
||||
|
||||
Если ТипыФайлов.ЭтоФайлОписанияКонфигурации(АнализируемыйФайл) Тогда
|
||||
|
@ -35,7 +35,7 @@
|
||||
Функция ОбработатьФайл(АнализируемыйФайл, КаталогИсходныхФайлов, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Лог = ДополнительныеПараметры.Лог;
|
||||
НастройкиСценария = ДополнительныеПараметры.УправлениеНастройками.Настройка("Precommt4onecСценарии\НастройкиСценариев").Получить(ИмяСценария());
|
||||
НастройкиСценария = ДополнительныеПараметры.Настройки.Получить(ИмяСценария());
|
||||
Если АнализируемыйФайл.Существует() Тогда
|
||||
|
||||
Если ТипыФайлов.ЭтоФайлОписанияКонфигурации(АнализируемыйФайл) Тогда
|
||||
|
@ -35,7 +35,7 @@
|
||||
Функция ОбработатьФайл(АнализируемыйФайл, КаталогИсходныхФайлов, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Лог = ДополнительныеПараметры.Лог;
|
||||
НастройкиСценария = ДополнительныеПараметры.УправлениеНастройками.Настройка("Precommt4onecСценарии\НастройкиСценариев").Получить(ИмяСценария());
|
||||
НастройкиСценария = ДополнительныеПараметры.Настройки.Получить(ИмяСценария());
|
||||
Если АнализируемыйФайл.Существует() И ТипыФайлов.ЭтоФайлИсходников(АнализируемыйФайл) Тогда
|
||||
|
||||
Лог.Информация("Обработка файла '%1' по сценарию '%2'", АнализируемыйФайл.ПолноеИмя, ИмяСценария());
|
||||
|
@ -35,7 +35,7 @@
|
||||
Функция ОбработатьФайл(АнализируемыйФайл, КаталогИсходныхФайлов, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Лог = ДополнительныеПараметры.Лог;
|
||||
НастройкиСценария = ДополнительныеПараметры.УправлениеНастройками.Настройка("Precommt4onecСценарии\НастройкиСценариев").Получить(ИмяСценария());
|
||||
НастройкиСценария = ДополнительныеПараметры.Настройки.Получить(ИмяСценария());
|
||||
Если АнализируемыйФайл.Существует() И ТипыФайлов.ЭтоФайлИсходников(АнализируемыйФайл) Тогда
|
||||
|
||||
Лог.Информация("Обработка файла '%1' по сценарию '%2'", АнализируемыйФайл.ПолноеИмя, ИмяСценария());
|
||||
|
@ -60,7 +60,7 @@
|
||||
|
||||
ВызватьИсключение "Обработка файла не реализована";
|
||||
Лог = ДополнительныеПараметры.Лог;
|
||||
НастройкиСценария = ДополнительныеПараметры.УправлениеНастройками.Настройка("Precommt4onecСценарии\НастройкиСценариев").Получить(ИмяСценария());
|
||||
НастройкиСценария = ДополнительныеПараметры.Настройки.Получить(ИмяСценария());
|
||||
|
||||
// анализ файла без изменения его содержимого
|
||||
Если АнализируемыйФайл.Существует() И ТипыФайлов.ЭтоФайлИсходников(АнализируемыйФайл) Тогда
|
||||
|
@ -36,7 +36,7 @@
|
||||
Функция ОбработатьФайл(АнализируемыйФайл, КаталогИсходныхФайлов, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Лог = ДополнительныеПараметры.Лог;
|
||||
НастройкиСценария = ДополнительныеПараметры.УправлениеНастройками.Настройка("Precommt4onecСценарии\НастройкиСценариев").Получить(ИмяСценария());
|
||||
НастройкиСценария = ДополнительныеПараметры.Настройки.Получить(ИмяСценария());
|
||||
|
||||
Если АнализируемыйФайл.Существует() И ТипыФайлов.ЭтоФайлИсходников(АнализируемыйФайл) Тогда
|
||||
|
||||
|
@ -112,7 +112,6 @@
|
||||
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "обнаружены неуникальные имена методов");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, СПараметрами, "обнаружены неуникальные имена методов");
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@ -212,8 +211,9 @@
|
||||
Функция ПолучитьДополнительныеНастройки()
|
||||
|
||||
УправлениеНастройками = Новый НастройкиРепозитория(ТекущийКаталог());
|
||||
ДополнительныеНастройки = Новый Структура("Лог, УправлениеНастройками, ИзмененныеКаталоги",
|
||||
Лог, УправлениеНастройками, Новый Массив);
|
||||
Настройка = УправлениеНастройками.НастройкиПриложения(УправлениеНастройками.ИмяПоУмолчанию())
|
||||
.Получить("НастройкиСценариев");
|
||||
ДополнительныеНастройки = Новый Структура("Лог, Настройки, ИзмененныеКаталоги", Лог, Настройка, Новый Массив());
|
||||
|
||||
Возврат ДополнительныеНастройки;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user