diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index ce69f1f..fad2e88 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -159,12 +159,3 @@ jobs: GITSYNC_V8VERSION: ${{ matrix.v8_version }} with: run: oscript ./tasks/test.os - - - name: Публикация отчета - if: success() || failure() - uses: mikepenz/action-junit-report@v5 - with: - report_paths: '**/build/reports/*.xml' - fail_on_failure: true - comment: true - check_name: 'Результаты тестов. ОС: ${{ matrix.os }}. Версия 1С: ${{ matrix.v8_version }}. Версия OneScript: ${{ matrix.oscript_version }}. Версия EDT: ${{ matrix.edt_version }}' diff --git a/features/step_definitions/limit.os b/features/step_definitions/limit.os index 01472b3..e52bcd5 100644 --- a/features/step_definitions/limit.os +++ b/features/step_definitions/limit.os @@ -1,11 +1,12 @@ -// Реализация шагов BDD-фич/сценариев c помощью фреймворка https://github.com/artbear/1bdd +// BSLLS:MissingParameterDescription-off + #Использовать tempfiles #Использовать asserts Перем БДД; //контекст фреймворка 1bdd // Метод выдает список шагов, реализованных в данном файле-шагов -Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт +Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт // BSLLS:MissingReturnedValueDescription-off БДД = КонтекстФреймворкаBDD; ВсеШаги = Новый Массив; @@ -23,7 +24,7 @@ КонецПроцедуры // Процедура выполняется после завершения каждого сценария -Процедура ПослеЗапускаСценария(Знач Узел) Экспорт +Процедура ПослеЗапускаСценария(Знач Узел) Экспорт // BSLLS:UnusedParameters-off ВременныеФайлы.Удалить(); КонецПроцедуры diff --git a/features/step_definitions/shared.os b/features/step_definitions/shared.os index 8778257..7cd5488 100644 --- a/features/step_definitions/shared.os +++ b/features/step_definitions/shared.os @@ -1,7 +1,5 @@ -// BSLLS:UnusedParameters-off -// BSLLS:LatinAndCyrillicSymbolInWord-off +// BSLLS:LatinAndCyrillicSymbolInWord-off // BSLLS:MissingParameterDescription-off -// BSLLS:MissingReturnedValueDescription-off // Реализация шагов BDD-фич/сценариев c помощью фреймворка https://github.com/artbear/1bdd #Использовать 1commands @@ -13,7 +11,7 @@ Перем ЭтоWindows; // Метод выдает список шагов, реализованных в данном файле-шагов -Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт +Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт // BSLLS:MissingReturnedValueDescription-off БДД = КонтекстФреймворкаBDD; ВсеШаги = Новый Массив; @@ -46,7 +44,6 @@ ВсеШаги.Добавить("ЯСоздаюВременныйКаталогИСохраняюЕгоВПеременной"); ВсеШаги.Добавить("ЯСкопировалКаталогТестовогоХранилищаКонфигурацииВКаталогИзПеременной"); - Возврат ВсеШаги; КонецФункции @@ -131,7 +128,6 @@ УстановитьТекущийКаталог(ОбъединитьПути(ТекущийКаталог(), ВременныйКаталог)); КонецПроцедуры - //Я выключаю все плагины Процедура ЯВыключаюВсеПлагины() Экспорт @@ -151,7 +147,6 @@ Возврат "bdd.gitsync.feature"; КонецФункции - // Реализация шагов // Процедура выполняется перед запуском каждого сценария @@ -159,7 +154,6 @@ // ЯСоздаюНовыйОбъектГитрепозиторий() КонецПроцедуры - //Я инициализирую репозиторий в каталоге из переменной "ПутьКаталогаИсходников" Процедура ЯИнициализируюРепозиторийВКаталогеИзПеременной(Знач ПутьКаталогаИсходников) Экспорт ГитРепозиторий = БДД.ПолучитьИзКонтекста("ГитРепозиторий"); @@ -173,10 +167,9 @@ КонецПроцедуры //Я наполняю bare репозиторий из переменной "URLРепозитория" тестовыми данными -Процедура ЯНаполняюBareРепозиторийИзПеременнойТестовымиДанными(Знач ПеременнаяURLРепозитория) Экспорт - +Процедура ЯНаполняюBareРепозиторийИзПеременнойТестовымиДанными(Знач URLРепозитория) Экспорт ГитРепозиторий = БДД.ПолучитьИзКонтекста("ГитРепозиторий"); - URLРепозитория = БДД.ПолучитьИзКонтекста(ПеременнаяURLРепозитория); + URLРепозитория = БДД.ПолучитьИзКонтекста(URLРепозитория); ВременныйКаталог = ВременныеФайлы.СоздатьКаталог(); @@ -209,7 +202,7 @@ КонецПроцедуры // Процедура выполняется после завершения каждого сценария -Процедура ПослеЗапускаСценария(Знач Узел) Экспорт +Процедура ПослеЗапускаСценария(Знач Узел) Экспорт // BSLLS:UnusedParameters-off ВременныеФайлы.Удалить(); КонецПроцедуры @@ -288,11 +281,11 @@ КонецПроцедуры //я инициализирую связь "ПутьКаталогаИсходников" с внешним репозиторием "URLРепозитория" -Процедура ЯИнициализируюСвязьСВнешнимРепозиторием(Знач ПеременнаяПутьКаталогаИсходников, Знач ПеременнаяURLРепозитория) Экспорт +Процедура ЯИнициализируюСвязьСВнешнимРепозиторием(Знач ПутьКаталогаИсходников, Знач URLРепозитория) Экспорт ГитРепозиторий = БДД.ПолучитьИзКонтекста("ГитРепозиторий"); - URLРепозитория = БДД.ПолучитьИзКонтекста(ПеременнаяURLРепозитория); - ПутьКаталогаИсходников = БДД.ПолучитьИзКонтекста(ПеременнаяПутьКаталогаИсходников); + URLРепозитория = БДД.ПолучитьИзКонтекста(URLРепозитория); + ПутьКаталогаИсходников = БДД.ПолучитьИзКонтекста(ПутьКаталогаИсходников); ГитРепозиторий.УстановитьРабочийКаталог(ПутьКаталогаИсходников); ГитРепозиторий.Инициализировать(); @@ -459,4 +452,4 @@ ЭтоWindows = ЭтоWindows(); -Лог = Логирование.ПолучитьЛог(ИмяЛога()); +Лог = Логирование.ПолучитьЛог(ИмяЛога()); // BSLLS:UnusedLocalVariable-off diff --git a/features/step_definitions/smart-tags.os b/features/step_definitions/smart-tags.os index 11ecb8f..f44ed17 100644 --- a/features/step_definitions/smart-tags.os +++ b/features/step_definitions/smart-tags.os @@ -1,11 +1,13 @@ -#Использовать asserts +// BSLLS:MissingParameterDescription-off + +#Использовать asserts // Реализация шагов BDD-фич/сценариев c помощью фреймворка https://github.com/artbear/1bdd Перем БДД; //контекст фреймворка 1bdd // Метод выдает список шагов, реализованных в данном файле-шагов -Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт +Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт // BSLLS:MissingReturnedValueDescription-off БДД = КонтекстФреймворкаBDD; ВсеШаги = Новый Массив; @@ -29,7 +31,6 @@ //Тег "1.0" должен присутствовать в репозитории Процедура ТегДолженПрисутствоватьВРепозитории(Знач ОжидаемыйВыводКоманды) Экспорт - ГитРепозиторий = БДД.ПолучитьИзКонтекста("ГитРепозиторий"); ПутьКаталогаИсходников = БДД.ПолучитьИзКонтекста("ПутьКаталогаИсходников"); @@ -44,4 +45,3 @@ Ожидаем.Что(Вывод).Содержит(ОжидаемыйВыводКоманды); КонецПроцедуры - diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/disableSupport.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/disableSupport.os" index 80cfc12..70f1585 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/disableSupport.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/disableSupport.os" @@ -1,11 +1,6 @@ #Использовать logos -Перем Лог; -Перем КомандыПлагина; -Перем Описание; -Перем Обработчик; - #Область Интерфейс_плагина // Возвращает версию плагина @@ -64,17 +59,11 @@ #КонецОбласти -Процедура ПриАктивизации(СтандартныйОбработчик) Экспорт - - Обработчик = СтандартныйОбработчик; - -КонецПроцедуры - Процедура ПередВыгрузкойКонфигурациюВИсходники(Конфигуратор, - КаталогРабочейКопии, - КаталогВыгрузки, - ПутьКХранилищу, - НомерВерсииФормат) Экспорт + КаталогРабочейКопии, // BSLLS:UnusedParameters-off + КаталогВыгрузки, // BSLLS:UnusedParameters-off + ПутьКХранилищу, // BSLLS:UnusedParameters-off + НомерВерсииФормат) Экспорт // BSLLS:UnusedParameters-off Конфигуратор.СнятьКонфигурациюСПоддержки(Истина); @@ -82,7 +71,7 @@ Процедура Инициализация() - Лог = Логирование.ПолучитьЛог(ИмяЛога()); + Лог = Логирование.ПолучитьЛог(ИмяЛога()); // BSLLS:UnusedLocalVariable-off КонецПроцедуры diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/dropConfigDump.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/dropConfigDump.os" index a01a894..0f46cd8 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/dropConfigDump.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/dropConfigDump.os" @@ -1,10 +1,12 @@ #Использовать logos #Использовать gitsync +// BSLLS:UnusedLocalVariable-off Перем Лог; // Лог - объект протоколирования (logger) Перем Обработчик; // Команда - обработчик текущей команды gitsync Перем КомандыПлагина; // Массив из Строка - список команд к которым подключается текущий плагин Перем ТекущаяКоманда; // Строка - имя выполняемой команды gitsync +// BSLLS:UnusedLocalVariable-on Перем ЗакоммититьФайлИгнорируемыхИзменений; // Булево - Истина - закоммитить файл .gitignore. @@ -95,7 +97,7 @@ КонецПроцедуры -Процедура ПриРегистрацииКомандыПриложения(ИмяКоманды, КлассРеализации) Экспорт +Процедура ПриРегистрацииКомандыПриложения(ИмяКоманды, КлассРеализации) Экспорт // BSLLS:UnusedParameters-off ТекущаяКоманда = ИмяКоманды; @@ -110,7 +112,9 @@ КонецПроцедуры -Процедура ПередВыгрузкойКонфигурациюВИсходники(Конфигуратор, +// BSLLS:UnusedParameters-off + +Процедура ПередВыгрузкойКонфигурациюВИсходники(Конфигуратор, // BSLLS:MissingParameterDescription-off КаталогРабочейКопии, КаталогВыгрузки, ПутьКХранилищу, @@ -119,14 +123,15 @@ УдалитьФайлДампаИзменений(КаталогРабочейКопии); КонецПроцедуры +// BSLLS:UnusedParameters-on -Процедура ПослеВыгрузкиКонфигурациюВИсходники(Конфигуратор, КаталогВыгрузки) Экспорт +Процедура ПослеВыгрузкиКонфигурациюВИсходники(Конфигуратор, КаталогВыгрузки) Экспорт // BSLLS:UnusedParameters-off УдалитьФайлДампаИзменений(КаталогВыгрузки); КонецПроцедуры -Процедура ПередКоммитом(КаталогРабочейКопии, Комментарий, Автор, Дата) Экспорт +Процедура ПередКоммитом(КаталогРабочейКопии, Комментарий, Автор, Дата) Экспорт // BSLLS:UnusedParameters-off КорневойКаталогГит = КорневойКаталогГит(КаталогРабочейКопии); @@ -163,7 +168,9 @@ КонецПроцедуры -Процедура ПриКоммите(ГитРепозиторий, +// BSLLS:NumberOfParams-off +// BSLLS:UnusedParameters-off +Процедура ПриКоммите(ГитРепозиторий, // BSLLS:MissingParameterDescription-off Комментарий, ПроиндексироватьОтслеживаемыеФайлы, ИмяФайлаКомментария, @@ -171,6 +178,8 @@ ДатаДляГит, Коммитер, ДатаКоммитера) Экспорт +// BSLLS:NumberOfParams-on +// BSLLS:UnusedParameters-on Если НЕ ЗакоммититьФайлИгнорируемыхИзменений Тогда Возврат; @@ -212,11 +221,12 @@ ТекущийКаталог = Новый Файл(КаталогРабочейКопии); + // BSLLS:MagicNumber-off ЭтоКорневойКаталог = (ТекущийКаталог.ПолноеИмя = "/" ИЛИ Прав(ТекущийКаталог.ПолноеИмя, 1) = ":" ИЛИ Прав(ТекущийКаталог.ПолноеИмя, 2) = ":/" ИЛИ Прав(ТекущийКаталог.ПолноеИмя, 2) = ":\"); - + // BSLLS:MagicNumber-on Если ЭтоКорневойКаталог Тогда Возврат ""; КонецЕсли; diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/dropSupport.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/dropSupport.os" index 8f8525d..dd41508 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/dropSupport.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/dropSupport.os" @@ -1,10 +1,10 @@ +// BSLLS:MissingParameterDescription-off + #Использовать logos #Использовать gitsync Перем Лог; // Лог - объект протоколирования (logger) -Перем Обработчик; // Команда - обработчик текущей команды gitsync Перем КомандыПлагина; // Массив из Строка - список команд к которым подключается текущий плагин -Перем ТекущаяКоманда; // Строка - имя выполняемой команды gitsync Перем ЗакоммититьФайлИгнорируемыхИзменений; // Булево - Истина - закоммитить файл .gitignore. @@ -70,15 +70,7 @@ #Область Подписки_на_события -Процедура ПриАктивизации(СтандартныйОбработчик) Экспорт - - Обработчик = СтандартныйОбработчик; - -КонецПроцедуры - -Процедура ПриРегистрацииКомандыПриложения(ИмяКоманды, КлассРеализации) Экспорт - - ТекущаяКоманда = ИмяКоманды; +Процедура ПриРегистрацииКомандыПриложения(ИмяКоманды, КлассРеализации) Экспорт // BSLLS:UnusedParameters-off Лог.Отладка("Ищу команду <%1> в списке поддерживаемых", ИмяКоманды); Если КомандыПлагина.Найти(ИмяКоманды) = Неопределено Тогда @@ -91,23 +83,25 @@ КонецПроцедуры +// BSLLS:UnusedParameters-off Процедура ПередВыгрузкойКонфигурациюВИсходники(Конфигуратор, КаталогРабочейКопии, КаталогВыгрузки, ПутьКХранилищу, НомерВерсии) Экспорт +// BSLLS:UnusedParameters-on УдалитьИнформациюОПоддержке(КаталогРабочейКопии); КонецПроцедуры -Процедура ПослеВыгрузкиКонфигурациюВИсходники(Конфигуратор, КаталогВыгрузки) Экспорт +Процедура ПослеВыгрузкиКонфигурациюВИсходники(Конфигуратор, КаталогВыгрузки) Экспорт // BSLLS:UnusedParameters-off УдалитьИнформациюОПоддержке(КаталогВыгрузки); КонецПроцедуры -Процедура ПередКоммитом(КаталогРабочейКопии, Комментарий, Автор, Дата) Экспорт +Процедура ПередКоммитом(КаталогРабочейКопии, Комментарий, Автор, Дата) Экспорт // BSLLS:UnusedParameters-off КорневойКаталогГит = КорневойКаталогГит(КаталогРабочейКопии); @@ -142,6 +136,8 @@ КонецПроцедуры +// BSLLS:UnusedParameters-off +// BSLLS:NumberOfParams-off Процедура ПриКоммите(ГитРепозиторий, Комментарий, ПроиндексироватьОтслеживаемыеФайлы, @@ -150,6 +146,8 @@ ДатаДляГит, Коммитер, ДатаКоммитера) Экспорт +// BSLLS:UnusedParameters-on +// BSLLS:NumberOfParams-on Если НЕ ЗакоммититьФайлИгнорируемыхИзменений Тогда Возврат; @@ -191,10 +189,12 @@ ТекущийКаталог = Новый Файл(КаталогРабочейКопии); + // BSLLS:MagicNumber-off ЭтоКорневойКаталог = (ТекущийКаталог.ПолноеИмя = "/" ИЛИ Прав(ТекущийКаталог.ПолноеИмя, 1) = ":" ИЛИ Прав(ТекущийКаталог.ПолноеИмя, 2) = ":/" ИЛИ Прав(ТекущийКаталог.ПолноеИмя, 2) = ":\"); + // BSLLS:MagicNumber-on Если ЭтоКорневойКаталог Тогда Возврат ""; diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/increment.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/increment.os" index 70294aa..fd33a40 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/increment.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/increment.os" @@ -1,19 +1,19 @@ +// BSLLS:MissingParameterDescription-off #Использовать logos #Использовать gitrunner #Использовать fs -Перем Лог; - -Перем Обработчик; +Перем Лог; // Лог - объект протоколирования (logger) +Перем Обработчик; // Команда - обработчик текущей команды gitsync Перем ИмяФайлаДампаКонфигурации; Перем ПутьКФайлуВерсийМетаданных; Перем ВыгрузкаИзмененийВозможна; Перем ИмяРасширения; +Перем ПутьКВременномуФайлуИзменений; Перем ИмяФайлаИзменений; -Перем ПутьКФайлуИзменений; #Область Интерфейс_плагина @@ -89,13 +89,19 @@ // ПутьКХранилищу - Строка - полный путь к хранилищу конфигурации // КаталогРабочейКопии - Строка - полный путь к рабочему каталогу копии // -Процедура ПередНачаломВыполнения(ПутьКХранилищу, КаталогРабочейКопии) Экспорт +Процедура ПередНачаломВыполнения(ПутьКХранилищу, КаталогРабочейКопии) Экспорт // BSLLS:UnusedParameters-off ИмяРасширения = Обработчик.ПолучитьИмяРасширения(); КонецПроцедуры -Процедура ПередВыгрузкойКонфигурациюВИсходники(Конфигуратор, КаталогРабочейКопии, КаталогВыгрузки, ПутьКХранилищу, НомерВерсии) Экспорт +// BSLLS:UnusedParameters-off +Процедура ПередВыгрузкойКонфигурациюВИсходники(Конфигуратор, + КаталогРабочейКопии, + КаталогВыгрузки, + ПутьКХранилищу, + НомерВерсии) Экспорт +// BSLLS:UnusedParameters-on Лог.Информация("Определяю тип возможной выгрузки конфигурации в файлы"); @@ -148,15 +154,19 @@ Конфигуратор.ВыполнитьКоманду(Параметры); - Если ФС.ФайлСуществует(ПутьКФайлуИзменений) Тогда - ПереместитьФайл(ПутьКФайлуИзменений, ОбъединитьПути(КаталогВыгрузки, ИмяФайлаИзменений)); - КонецЕсли; + Если ФС.ФайлСуществует(ПутьКВременномуФайлуИзменений) Тогда + ПереместитьФайл(ПутьКВременномуФайлуИзменений, ОбъединитьПути(КаталогВыгрузки, ИмяФайлаИзменений)); + КонецЕсли; КонецЕсли; КонецПроцедуры -Процедура ПриОчисткеКаталогаРабочейКопии(КаталогРабочейКопии, СоответствиеИменФайловДляПропуска, СтандартнаяОбработка) Экспорт +// BSLLS:UnusedParameters-off +Процедура ПриОчисткеКаталогаРабочейКопии(КаталогРабочейКопии, + СоответствиеИменФайловДляПропуска, + СтандартнаяОбработка) Экспорт +// BSLLS:UnusedParameters-on Если ВыгрузкаИзмененийВозможна Тогда СтандартнаяОбработка = Ложь; @@ -171,31 +181,27 @@ // Функция проверяет возможность обновления файлов выгрузки, для каталога или конкретного файла версий // // Параметры: -// Конфигуратор - <Тип.Вид> - <описание параметра> -// КаталогВыгрузки - Строка - временный каталог -// ПутьКФайлуВерсийДляСравнения - Строка - <описание параметра> +// Конфигуратор - Конфигуратор - объект конфигуратора +// ПутьКФайлуВерсийДляСравнения - Строка - путь к файлу версий для сравнения // // Возвращаемое значение: -// Булево - обновление возможно? +// Булево - обновление возможно // - Функция ПроверитьВозможностьОбновленияФайловВыгрузки(Конфигуратор, Знач ПутьКФайлуВерсийДляСравнения = "") ОбновлениеВозможно = Ложь; КаталогПроверки = ВременныеФайлы.СоздатьКаталог(); - ТекущийФайлВерсийМетаданных = Новый Файл(ОбъединитьПути(КаталогПроверки, "ConfigDumpInfo.xml")); - Если ПустаяСтрока(ПутьКФайлуВерсийДляСравнения) Тогда Возврат ОбновлениеВозможно; КонецЕсли; - ПутьКФайлуИзменений = ВременныеФайлы.НовоеИмяФайла(); + ПутьКВременномуФайлуИзменений = ВременныеФайлы.НовоеИмяФайла(); Параметры = Конфигуратор.ПолучитьПараметрыЗапуска(); Параметры.Добавить(СтрШаблон("/DumpConfigToFiles %1", ОбернутьВКавычки(КаталогПроверки))); - Параметры.Добавить(СтрШаблон("-getChanges %1", ОбернутьВКавычки(ПутьКФайлуИзменений))); + Параметры.Добавить(СтрШаблон("-getChanges %1", ОбернутьВКавычки(ПутьКВременномуФайлуИзменений))); Если ЗначениеЗаполнено(ИмяРасширения) Тогда Параметры.Добавить(СтрШаблон("-Extension %1", ИмяРасширения)); @@ -209,11 +215,11 @@ Конфигуратор.ВыполнитьКоманду(Параметры); - ФайлИзменений = Новый Файл(ПутьКФайлуИзменений); + ФайлИзменений = Новый Файл(ПутьКВременномуФайлуИзменений); Если ФайлИзменений.Существует() Тогда СтрокаПолныйДамп = ВРег("FullDump"); - ЧтениеФайла = Новый ЧтениеТекста(ПутьКФайлуИзменений); + ЧтениеФайла = Новый ЧтениеТекста(ПутьКВременномуФайлуИзменений); СтрокаВыгрузки = Лев(ВРег(ЧтениеФайла.ПрочитатьСтроку()), СтрДлина(СтрокаПолныйДамп)); Если Не ПустаяСтрока(СокрЛП(СтрокаВыгрузки)) Тогда @@ -229,7 +235,7 @@ ВременныеФайлы.УдалитьФайл(КаталогПроверки); Если НЕ ОбновлениеВозможно Тогда - ВременныеФайлы.УдалитьФайл(ПутьКФайлуИзменений); + ВременныеФайлы.УдалитьФайл(ПутьКВременномуФайлуИзменений); КонецЕсли; Возврат ОбновлениеВозможно; @@ -243,7 +249,7 @@ Лог = Логирование.ПолучитьЛог(ИмяЛога()); ПутьКФайлуВерсийМетаданных = ""; - ПутьКФайлуИзменений = ""; + ПутьКВременномуФайлуИзменений = ""; ИмяФайлаДампаКонфигурации = "ConfigDumpInfo.xml"; ИмяФайлаИзменений = "dumplist.txt"; // файл используется в 2х плагинах - increment и edtExport ВыгрузкаИзмененийВозможна = Ложь; diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/useIbcmd.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/useIbcmd.os" index ad095cc..2e0d7c8 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/useIbcmd.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/useIbcmd.os" @@ -1,3 +1,5 @@ +// BSLLS:MissingParameterDescription-off + #Использовать logos #Использовать v8find #Использовать 1commands @@ -6,7 +8,8 @@ Перем Лог; // Лог - объект протоколирования (logger) Перем Обработчик; // Команда - обработчик текущей команды gitsync Перем КомандыПлагина; // Массив из Строка - список команд к которым подключается текущий плагин -Перем ТекущаяКоманда; // Строка - имя выполняемой команды gitsync + +Перем ТекущаяКоманда; // Строка - имя выполняемой команды gitsync // BSLLS:UnusedLocalVariable-off Перем РабочийКаталогIBCMD; // Строка - путь к рабочему каталогу утилиты ibcmd Перем ТипСУБД; // Строка - тип сервера базы данных @@ -17,9 +20,10 @@ Перем Инкрементально; // Булево - Истина - будет выполнена инкрементальная выгрузка если возможно Перем ЧислоПотоков; // Число - 0 - Количество потоков используемых при экспорте. -Перем ИнкрементальнаяВыгрузкаВозможна; // Булево - Истина - инкрементальная выгрузка возможна -Перем ПутьКФайлуДампаИзменений; // Строка - путь к файлу ConfigDumpInfo.xml -Перем ПутьКФайлуИзменений; // Строка - Путь к файлу, в который будет записываться информация об изменениях в конфигурации +Перем ИнкрементальнаяВыгрузкаВозможна; // Булево - Истина - инкрементальная выгрузка возможна +Перем ПутьКФайлуДампаИзменений; // Строка - путь к файлу ConfigDumpInfo.xml +Перем ПутьКФайлуПроверки; // Строка - путь к файлу проверки +Перем ПутьКФайлуИзменений; // Строка - путь к файлу с информацией об изменениях в конфигурации #Область Интерфейс_плагина @@ -183,17 +187,19 @@ КонецПроцедуры +// BSLLS:UnusedParameters-off Процедура ПередВыгрузкойКонфигурациюВИсходники(Конфигуратор, КаталогРабочейКопии, КаталогВыгрузки, ПутьКХранилищу, НомерВерсии) Экспорт +// BSLLS:UnusedParameters-on ФайлДампаИзменений = Новый Файл(ОбъединитьПути(КаталогРабочейКопии, ИмяФайлаДампаИзменений())); ПутьКФайлуДампаИзменений = ФайлДампаИзменений.ПолноеИмя; ИнкрементальнаяВыгрузкаВозможна = (Инкрементально - И ИнкрементальнаяВыгрузкаВозможна(Конфигуратор, ПутьКФайлуДампаИзменений)); + И ИнкрементальнаяВыгрузкаВозможна(Конфигуратор)); КонецПроцедуры @@ -214,8 +220,8 @@ КонецПроцедуры -Процедура ПриОчисткеКаталогаРабочейКопии(КаталогРабочейКопии, - СоответствиеИменФайловДляПропуска, +Процедура ПриОчисткеКаталогаРабочейКопии(КаталогРабочейКопии, // BSLLS:UnusedParameters-off + СоответствиеИменФайловДляПропуска, // BSLLS:UnusedParameters-off СтандартнаяОбработка) Экспорт Если Инкрементально И ИнкрементальнаяВыгрузкаВозможна Тогда @@ -287,22 +293,18 @@ // // Параметры: // Конфигуратор - УправлениеКонфигуратором - объект управление конфигуратором (v8runner) -// ПутьКФайлуДампаИзменений - Строка - путь к файлу ConfigDumpInfo.xml // // Возвращаемое значение: // Булево - Истина - возможна инкрементальная выгрузка // -Функция ИнкрементальнаяВыгрузкаВозможна(Знач Конфигуратор, Знач ПутьКФайлуДампаИзменений) +Функция ИнкрементальнаяВыгрузкаВозможна(Знач Конфигуратор) // BSLLS:UnusedParameters-off Лог.Информация("Определяю тип возможной выгрузки конфигурации в файлы"); Результат = Ложь; - ИмяРасширения = Обработчик.ПолучитьИмяРасширения(); - ФайлДампаИзменений = Новый Файл(ПутьКФайлуДампаИзменений); - ПутьКФайлуПроверки = ПолучитьИмяВременногоФайла("dmp"); ПутьКФайлуИзменений = ""; Лог.Отладка("Проверяю существование файла <%1> в каталоге <%2>, файл <%3>", @@ -312,13 +314,32 @@ Если НЕ ФайлДампаИзменений.Существует() Тогда Лог.Отладка("Инкрементальная выгрузка конфигурации - НЕВОЗМОЖНА"); - Лог.Информация("ИНФОРМАЦИЯ - Тип выгрузки конфигурации в файлы: ПОЛНАЯ ВЫГРУЗКА"); + Лог.Информация("Тип выгрузки конфигурации в файлы: ПОЛНАЯ ВЫГРУЗКА"); Возврат Результат; КонецЕсли; Лог.Отладка("РабочийКаталогIBCMD = <%1>", РабочийКаталогIBCMD); Лог.Отладка("Проверяю возможность обновления выгрузки для файла <%1>", ПутьКФайлуДампаИзменений); + + ВыводКоманды = ВыполнитьКомандуIBCMD(Конфигуратор); + + Результат = ИнкрементальнаяВыгрузкаВозможнаПоВыводуIBCMD(ВыводКоманды); + + СпособВыгрузки = ?(Результат, "ИНКРЕМЕНТАЛЬНАЯ ВЫГРУЗКА", "ПОЛНАЯ ВЫГРУЗКА"); + Лог.Информация("Тип выгрузки конфигурации в файлы: %1%2", СпособВыгрузки, Символы.ПС); + Возврат Результат; + +КонецФункции // ИнкрементальнаяВыгрузкаВозможна() + +Функция ВыполнитьКомандуIBCMD(Конфигуратор) + + ПутьКФайлуПроверки = ПолучитьИмяВременногоФайла("dmp"); // BSLLS:MissingTemporaryFileDeletion-off + + ВыводКоманды = ""; + + ИмяРасширения = Обработчик.ПолучитьИмяРасширения(); + ПутьКIBCMD = Платформа1С.ПутьКIBCMD(Обработчик.ТекущаяВерсияПлатформы); КомандаIBCMD = Новый Команда; @@ -342,23 +363,11 @@ ФайлПроверки = Новый Файл(ПутьКФайлуПроверки); Если ФайлПроверки.Существует() Тогда - СтрокаПолныйДамп = "modified: all"; + ЧтениеФайла = Новый ЧтениеТекста(ПутьКФайлуПроверки); - СтрокаПроверки = Лев(ЧтениеФайла.ПрочитатьСтроку(), СтрДлина(СтрокаПолныйДамп)); - - Если Не ПустаяСтрока(СокрЛП(СтрокаПроверки)) Тогда - - Лог.Отладка("Строка проверки на возможность выгрузки конфигурации: <%1> = <%2> ", СтрокаПолныйДамп, СтрокаПроверки); - Результат = НЕ (ВРег(СтрокаПроверки) = ВРег(СтрокаПолныйДамп)); - - КонецЕсли; + ВыводКоманды = ЧтениеФайла.ПрочитатьСтроку(); ЧтениеФайла.Закрыть(); - Если Результат Тогда - ПутьКФайлуИзменений = ПутьКФайлуПроверки; - Иначе - УдалитьФайлы(ПутьКФайлуПроверки); - КонецЕсли; КонецЕсли; Иначе ТекстОшибки = КомандаIBCMD.ПолучитьВывод(); @@ -367,15 +376,33 @@ ТекстОшибки); КонецЕсли; - Лог.Отладка("Инкрементальная выгрузка конфигурации - %1", ?(Результат, "ВОЗМОЖНА", "НЕВОЗМОЖНА")); + Возврат ВыводКоманды; - СпособВыгрузки = ?(Результат, "ИНКРЕМЕНТАЛЬНАЯ ВЫГРУЗКА", "ПОЛНАЯ ВЫГРУЗКА"); +КонецФункции + +Функция ИнкрементальнаяВыгрузкаВозможнаПоВыводуIBCMD(ВыводКоманды) - Лог.Информация("ИНФОРМАЦИЯ - Тип выгрузки конфигурации в файлы: %1%2", СпособВыгрузки, Символы.ПС); + Результат = ""; + + СтрокаПолныйДамп = "modified: all"; + + СтрокаПроверки = Лев(ВыводКоманды, СтрДлина(СтрокаПолныйДамп)); + + Если Не ПустаяСтрока(СокрЛП(СтрокаПроверки)) Тогда + + Лог.Отладка("Строка проверки на возможность выгрузки конфигурации: <%1> = <%2> ", СтрокаПолныйДамп, СтрокаПроверки); + Результат = НЕ (ВРег(СтрокаПроверки) = ВРег(СтрокаПолныйДамп)); + КонецЕсли; + + Если Результат Тогда + ПутьКФайлуИзменений = ПутьКФайлуПроверки; + Иначе + УдалитьФайлы(ПутьКФайлуПроверки); + КонецЕсли; Возврат Результат; -КонецФункции // ИнкрементальнаяВыгрузкаВозможна() +КонецФункции // Процедура - добавляет параметры подключения к информационной базе для команды запуска утилиты ibcmd // @@ -394,6 +421,7 @@ СервернаяБаза = Ложь; ПутьКБД = ""; + // BSLLS:MagicNumber-off Если Лев(СтрокаСоединения, 2) = "/F" Тогда ПутьКБД = СокрЛП(Сред(СтрокаСоединения, 3)); ИначеЕсли Лев(СтрокаСоединения, 2) = "/S" Тогда @@ -408,6 +436,7 @@ Иначе ПутьКБД = Конфигуратор.ПутьКВременнойБазе(); КонецЕсли; + // BSLLS:MagicNumber-on Если СервернаяБаза Тогда Команда.ДобавитьПараметр(СтрШаблон("--dbms=%1", ТипСУБД));