From 3f041b30010ff39c111a8ff241565fcd14498026 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=97=D0=B0=D0=B7=D1=83=D0=BB=D0=BE=D0=B2=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B5=D0=B9=20=D0=90=D0=BB=D0=B5=D0=BA=D1=81?= =?UTF-8?q?=D0=B0=D0=BD=D0=B4=D1=80=D0=BE=D0=B2=D0=B8=D1=87=20=28=D0=97?= =?UTF-8?q?=D0=9A-0001393=29?= Date: Wed, 11 Dec 2024 17:37:22 +0300 Subject: [PATCH 1/4] =?UTF-8?q?ORAIS-928:=20=D0=9F=D1=80=D0=B5-=D0=9F?= =?UTF-8?q?=D1=80=D0=B5=D0=BA=D0=BE=D0=BC=D0=BC=D0=B8=D1=82.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/img/GitExtensions_StagedFiles.png | Bin 0 -> 10403 bytes docs/КомандаВыполнитьСценарии.md | 17 ++++- src/Классы/КомандаВыполнитьСценарии.os | 82 +++++++++++++++---------- 3 files changed, 65 insertions(+), 34 deletions(-) create mode 100644 docs/img/GitExtensions_StagedFiles.png diff --git a/docs/img/GitExtensions_StagedFiles.png b/docs/img/GitExtensions_StagedFiles.png new file mode 100644 index 0000000000000000000000000000000000000000..cc95cf205ca417820ec0e6e0591c7c27320a2c80 GIT binary patch literal 10403 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 literal 0 HcmV?d00001 diff --git a/docs/КомандаВыполнитьСценарии.md b/docs/КомандаВыполнитьСценарии.md index 522ea05..b75d255 100644 --- a/docs/КомандаВыполнитьСценарии.md +++ b/docs/КомандаВыполнитьСценарии.md @@ -5,7 +5,7 @@ ### Параметры команды ``` -exec-rules -source-dir <Каталоги исходных файлов> -rules <Применяемые сценарии> -cfg-file <Файл настроек> <КаталогРепозитория> <Коммит1> <Коммит2> +exec-rules -source-dir <Каталоги исходных файлов> -rules <Применяемые сценарии> -cfg-file <Файл настроек> -staged-only <КаталогРепозитория> <Коммит1> <Коммит2> ``` Описание параметров: @@ -13,7 +13,8 @@ exec-rules -source-dir <Каталоги исходных файлов> -rules < - Коммит1, Коммит2 - необязательные параметры, если указаны, сценарии будут выполнены не для всех исходных файлов, а только для тех, которые были изменены между двумя коммитами. В качестве значения следует передавать хэш коммита. Если указано два хэша, будут составлен список измененных файлов между ними, если один, то он должен иметь двух родителей (как в случае коммита при merge-реквесте), иначе будет вызвано исключение; - Каталоги исходных файлов - необязательный параметр, поддерживает перечисление через запятую относительных путей к каталогам внутри каталога репозитория, в которых расположены исходные файлы, для которых будут выполнять сценарии прекоммита. Значение по-умолчанию - "src"; - Применяемые сценарии - необязательный параметр, содержащий список сценариев, перечисленных через запятую, выполняемый для обрабатываемых файлов. Если не указан, выполняются все сценарии прекоммита; -- Файл настроек - необязательный параметр, путь к файлу настроек прекоммита. Если не указан, используется файл `v8config.json` репозитория или глобальные настройки, если файл в репозитории отсутствует. +- Файл настроек - необязательный параметр, путь к файлу настроек прекоммита. Если не указан, используется файл `v8config.json` репозитория или глобальные настройки, если файл в репозитории отсутствует; +- Флаг обработки индексированных файлов - при использовании флага `-staged-only` игнорируются хэши коммитов, если они указаны, и обрабатываются только файлы, добавленные в индекс Git (добавление в индекс осуществляется командой `git add` или переносом измененных файлов в область `Staged`, при использовании утилит с графическим интерфейсом). ### Примеры @@ -33,6 +34,14 @@ exec-rules -source-dir <Каталоги исходных файлов> -rules < Для файлов в каталоге `C:\МойРепозиторий\src`, измененных между указанными коммитами, будут выполнены все сценарии прекоммита. Если файлы находятся вне каталога `src`, они будут проигнорированы. +3. Команда: + + ```shell + precommit4onec exec-rules "C:\МойРепозиторий" -source-dir "ПапкаИсходныхФайловSrc" -staged-only + ``` + + Добавленные в индекс файлы, находящиеся в каталоге `ПапкаИсходныхФайловSrc` или вложенных каталогах, будут обработаны всеми сценариями прекоммита. + ### Вызов команды в Git Extensions Возможности [Git Extension](https://gitextensions.github.io/) позволяют подключать пользовательские скрипты для работы с данными. Например, следующая настройка в разделе `Git Extensions\Scripts`: @@ -46,3 +55,7 @@ exec-rules -source-dir <Каталоги исходных файлов> -rules < В настройках указывается: - Command - путь к скрипту запуска прекоммита; - Arguments - параметры запуска по шаблону, описанному выше. Вместо `{sHashes}` Git Extensions подставит разделенные пробелом хэши выделенных в дереве коммитов. + +Вариант настройки команды для предварительной обработки добавленных в индекс файлов: + +![Settings](img/GitExtensions_StagedFiles.png) diff --git a/src/Классы/КомандаВыполнитьСценарии.os b/src/Классы/КомандаВыполнитьСценарии.os index 8c32790..0866996 100644 --- a/src/Классы/КомандаВыполнитьСценарии.os +++ b/src/Классы/КомандаВыполнитьСценарии.os @@ -24,6 +24,8 @@ Парсер.ДобавитьПозиционныйПараметрКоманды(Команда, "Коммит2", "Идентификатор коммита. Если указан, то анализируются только файлы, которые отличаются | между двумя указанными коммитами."); + Парсер.ДобавитьПараметрФлагКоманды(Команда, "-staged-only", + "Флаг, ограничивающий список обрабатываемых файлов добавленными в индекс git."); Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-source-dir", "Каталог расположения исходных файлов относительно корня репозитория. | Если сценариев несколько, указываются в кавычках через , . По умолчанию "); @@ -147,13 +149,10 @@ Возврат Неопределено; КонецЕсли; - Коммиты = МассивКоммитов(ПараметрыКоманды, КаталогРепозитория); + ОбрабатываемыеОбъекты = ОбрабатываемыеОбъекты(ПараметрыКоманды, КаталогРепозитория); + КаталогКонфигурационногоФайла = ЗначениеПараметра(ПараметрыКоманды, "-cfg-file", КаталогРепозитория); - ПараметрКаталогиИсходныхФайлов = ЗначениеПараметра(ПараметрыКоманды, "-source-dir", "src"); - КаталогиИсходныхФайлов = СтрРазделить(ПараметрКаталогиИсходныхФайлов, ",", Ложь); - - ОбрабатываемыеОбъекты = ОбрабатываемыеОбъекты(КаталогРепозитория, КаталогиИсходныхФайлов, Коммиты); - + Сценарии = Неопределено; ИменаСценариев = Новый Массив; ПараметрИменаЗагружаемыхСценариев = ЗначениеПараметра(ПараметрыКоманды, "-rules"); @@ -181,28 +180,15 @@ Возврат ?(ЗначениеЗаполнено(Значение), Значение, ЗначениеПоУмолчанию); КонецФункции -Функция ОбрабатываемыеОбъекты(КаталогРепозитория, КаталогиИсходныхФайлов, Коммиты) - ОбрабатываемыеФайлы = Новый Массив(); - КаталогиФайлов = Новый Соответствие(); - - Если Коммиты.Количество() > 0 Тогда - Изменения = СписокИзмененийМеждуКоммитами(Коммиты, КаталогРепозитория); - Для Каждого ИмяФайла Из Изменения Цикл - Для Каждого КаталогИсходныхФайлов Из КаталогиИсходныхФайлов Цикл - ТекущийКаталогИсходныхФайлов = ОбъединитьПути(КаталогРепозитория, СокрЛП(КаталогИсходныхФайлов)); - ФайлПодлежитОбработке = ЭтоСуществующийКаталог(ТекущийКаталогИсходныхФайлов) - И ФайловыеОперации.ФайлНаходитсяВКаталоге(ИмяФайла, ТекущийКаталогИсходныхФайлов); - - Если ФайлПодлежитОбработке Тогда - ОбрабатываемыйФайл = ФайловыеОперации.НовыйФайл(ИмяФайла); - ОбрабатываемыеФайлы.Добавить(ОбрабатываемыйФайл); - КаталогиФайлов.Вставить(ОбрабатываемыйФайл.ПолноеИмя, ТекущийКаталогИсходныхФайлов); - - Прервать; - КонецЕсли; - КонецЦикла; - КонецЦикла; - Иначе +Функция ОбрабатываемыеОбъекты(ПараметрыКоманды, КаталогРепозитория) + ОбрабатыватьТолькоИндексированныеФайлы = ЗначениеПараметра(ПараметрыКоманды, "-staged-only", Ложь); + Коммиты = МассивКоммитов(ПараметрыКоманды, КаталогРепозитория); + ПараметрКаталогиИсходныхФайлов = ЗначениеПараметра(ПараметрыКоманды, "-source-dir", "src"); + КаталогиИсходныхФайлов = СтрРазделить(ПараметрКаталогиИсходныхФайлов, ",", Ложь); + + Результат = Новый Структура("Файлы, Каталоги", Новый Массив(), Новый Соответствие()); + Если НЕ ОбрабатыватьТолькоИндексированныеФайлы И Коммиты.Количество() = 0 Тогда + // Обрабатываются все файлы в каталогах исходных файлов Для Каждого КаталогИсходныхФайлов Из КаталогиИсходныхФайлов Цикл ТекущийКаталогИсходныхФайлов = ОбъединитьПути(КаталогРепозитория, СокрЛП(КаталогИсходныхФайлов)); Если НЕ ЭтоСуществующийКаталог(ТекущийКаталогИсходныхФайлов) Тогда @@ -211,16 +197,39 @@ ОбрабатываемыеФайлыКаталога = НайтиФайлы(ТекущийКаталогИсходныхФайлов, ПолучитьМаскуВсеФайлы(), Истина); Для Каждого ОбрабатываемыйФайлКаталога Из ОбрабатываемыеФайлыКаталога Цикл - ОбрабатываемыеФайлы.Добавить(ОбрабатываемыйФайлКаталога); - КаталогиФайлов.Вставить(ОбрабатываемыйФайлКаталога.ПолноеИмя, ТекущийКаталогИсходныхФайлов); + ДобавитьОбрабатываемыйОбъект(Результат, ОбрабатываемыйФайлКаталога, ТекущийКаталогИсходныхФайлов); + КонецЦикла; + КонецЦикла; + Иначе + Если ОбрабатыватьТолькоИндексированныеФайлы Тогда + // Обрабатываются только файлы, добавленные в индекс Git + Изменения = СписокИндексированныхФайлов(КаталогРепозитория); + Иначе + // Обрабатываются только файлы, измененные между двумя переданными коммитами или merge-request'ом + Изменения = СписокИзмененийМеждуКоммитами(Коммиты, КаталогРепозитория); + КонецЕсли; + + Для Каждого ИмяФайла Из Изменения Цикл + Для Каждого КаталогИсходныхФайлов Из КаталогиИсходныхФайлов Цикл + ТекущийКаталогИсходныхФайлов = ОбъединитьПути(КаталогРепозитория, СокрЛП(КаталогИсходныхФайлов)); + Если ЭтоСуществующийКаталог(ТекущийКаталогИсходныхФайлов) + И ФайловыеОперации.ФайлНаходитсяВКаталоге(ИмяФайла, ТекущийКаталогИсходныхФайлов) Тогда + ДобавитьОбрабатываемыйОбъект(Результат, ИмяФайла, ТекущийКаталогИсходныхФайлов); + Прервать; + КонецЕсли; КонецЦикла; КонецЦикла; КонецЕсли; - Результат = Новый Структура("Файлы, Каталоги", ОбрабатываемыеФайлы, КаталогиФайлов); Возврат Результат; КонецФункции +Процедура ДобавитьОбрабатываемыйОбъект(Коллекция, Знач Файл, Знач Каталог) + ОбрабатываемыйФайл = ФайловыеОперации.НовыйФайл(Файл); + Коллекция.Файлы.Добавить(ОбрабатываемыйФайл); + Коллекция.Каталоги.Вставить(ОбрабатываемыйФайл.ПолноеИмя, Каталог); +КонецПроцедуры + Функция ЭтоСуществующийКаталог(Каталог) КаталогОбъект = Новый Файл(Каталог); Если НЕ КаталогОбъект.Существует() Тогда @@ -299,8 +308,17 @@ Возврат Новый Массив; КонецЕсли; - Git = РепозиторийGit(КаталогРепозитория); ПараметрыКоманды = МассивПараметров(СтрШаблон("diff --name-only %1 %2", Коммиты[0], Коммиты[1])); + Возврат ИзмененияРепозитория(КаталогРепозитория, ПараметрыКоманды); +КонецФункции + +Функция СписокИндексированныхФайлов(КаталогРепозитория) + ПараметрыКоманды = МассивПараметров("diff --name-only --staged"); + Возврат ИзмененияРепозитория(КаталогРепозитория, ПараметрыКоманды); +КонецФункции + +Функция ИзмененияРепозитория(КаталогРепозитория, ПараметрыКоманды) + Git = РепозиторийGit(КаталогРепозитория); Git.ВыполнитьКоманду(ПараметрыКоманды); Результат = Git.ПолучитьВыводКоманды(); From 80f24b13b7f5f54031466e97ace1379d9a7a8330 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=97=D0=B0=D0=B7=D1=83=D0=BB=D0=BE=D0=B2=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B5=D0=B9=20=D0=90=D0=BB=D0=B5=D0=BA=D1=81?= =?UTF-8?q?=D0=B0=D0=BD=D0=B4=D1=80=D0=BE=D0=B2=D0=B8=D1=87=20=28=D0=97?= =?UTF-8?q?=D0=9A-0001393=29?= Date: Mon, 16 Dec 2024 07:13:37 +0300 Subject: [PATCH 2/4] =?UTF-8?q?ORAIS-1870:=20=D0=9D=D0=BE=D0=B2=D1=8B?= =?UTF-8?q?=D0=B9=20=D1=81=D1=86=D0=B5=D0=BD=D0=B0=D1=80=D0=B8=D0=B9=20"?= =?UTF-8?q?=D0=A1=D0=BE=D1=80=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=BA=D0=B0=20?= =?UTF-8?q?=D1=81=D0=BE=D1=81=D1=82=D0=B0=D0=B2=D0=B0=20=D0=BE=D0=B1=D1=89?= =?UTF-8?q?=D0=B8=D1=85=20=D1=80=D0=B5=D0=BA=D0=B2=D0=B8=D0=B7=D0=B8=D1=82?= =?UTF-8?q?=D0=BE=D0=B2".?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/СортировкаСостава.md | 2 + src/Классы/НастройкиСортировкиСостава.os | 10 ++-- src/Модули/ТипыОбъектовДляСортировки.os | 12 +++-- src/Модули/ТипыФайлов.os | 12 +++++ src/СценарииОбработки/СортировкаСостава.os | 30 +++++++++-- .../CommonAttributes/Configuration/До/Реквизит.mdo | 36 +++++++++++++ .../CommonAttributes/Configuration/До/Реквизит.xml | 50 +++++++++++++++++++ .../CommonAttributes/Configuration/После/Реквизит.mdo | 36 +++++++++++++ .../CommonAttributes/Configuration/После/Реквизит.xml | 50 +++++++++++++++++++ .../CommonAttributes/Ext/До/Реквизит.mdo | 35 +++++++++++++ .../CommonAttributes/Ext/До/Реквизит.xml | 42 ++++++++++++++++ .../CommonAttributes/Ext/После/Реквизит.mdo | 35 +++++++++++++ .../CommonAttributes/Ext/После/Реквизит.xml | 42 ++++++++++++++++ tests/ТестПроверкаСценариевОбработки.os | 6 +++ 14 files changed, 385 insertions(+), 13 deletions(-) create mode 100644 tests/fixtures/СортировкаСостава/CommonAttributes/Configuration/До/Реквизит.mdo create mode 100644 tests/fixtures/СортировкаСостава/CommonAttributes/Configuration/До/Реквизит.xml create mode 100644 tests/fixtures/СортировкаСостава/CommonAttributes/Configuration/После/Реквизит.mdo create mode 100644 tests/fixtures/СортировкаСостава/CommonAttributes/Configuration/После/Реквизит.xml create mode 100644 tests/fixtures/СортировкаСостава/CommonAttributes/Ext/До/Реквизит.mdo create mode 100644 tests/fixtures/СортировкаСостава/CommonAttributes/Ext/До/Реквизит.xml create mode 100644 tests/fixtures/СортировкаСостава/CommonAttributes/Ext/После/Реквизит.mdo create mode 100644 tests/fixtures/СортировкаСостава/CommonAttributes/Ext/После/Реквизит.xml diff --git a/docs/СортировкаСостава.md b/docs/СортировкаСостава.md index 485a0b1..7d53fba 100644 --- a/docs/СортировкаСостава.md +++ b/docs/СортировкаСостава.md @@ -8,6 +8,7 @@ - Конфигурации (все объекты верхнего уровня, кроме языков и подсистем) - Определяемых типов +- Общих реквизитов - Планов обмена - Функциональных опций - Подсистем @@ -26,6 +27,7 @@ "ОтключенныеОбъекты": [ "Конфигурация", "ОпределяемыйТип", + "ОбщийРеквизит", "ПланОбмена", "ФункциональнаяОпция", "Подсистема" diff --git a/src/Классы/НастройкиСортировкиСостава.os b/src/Классы/НастройкиСортировкиСостава.os index 67bf18c..3811986 100644 --- a/src/Классы/НастройкиСортировкиСостава.os +++ b/src/Классы/НастройкиСортировкиСостава.os @@ -11,7 +11,7 @@ Перем ЕДТ; // Признак формата ЕДТ содержимого Перем Заимствованный; // Признак отношения файла к расширению и заимствованности из основной конфигурации Перем Сценарии; // Сценарии обработки файла -Перем Пустой; // Признак отсутствия настроек +Перем Пустой; // Признак отсутствия настроек // Конструктор создания на основании анализируемого файла Процедура ПриСозданииОбъекта(АнализируемыйФайл) @@ -41,6 +41,7 @@ КонецФункции Процедура ДобавитьСценарий(НастройкиСценария) Экспорт + ТекстАтрибутов = ?(НастройкиСценария.САтрибутами(), "[^>]*", ""); // 1-я группа: состав объектов ШаблонПоискаСостава = ""; @@ -49,15 +50,14 @@ ШаблонПоискаСостава = "\s*()[ \t]*\n*"; ИначеЕсли НастройкиСценария.ЕстьРодительскийЭлемент() Тогда РодительскийЭлемент = НастройкиСценария.РодительскийЭлемент(); - ШаблонПоискаСостава = СтрШаблон("\s*<%1>([\w\W]*?)<\/%2>[ \t]*\n*", - РодительскийЭлемент.Имя, РодительскийЭлемент.Завершение); + ШаблонПоискаСостава = СтрШаблон("\s*<%1%2>([\w\W]*?)<\/%3>[ \t]*\n*", + РодительскийЭлемент.Имя, ТекстАтрибутов, РодительскийЭлемент.Завершение); Иначе - ШаблонПоискаСостава = СтрШаблон("\s*(<%1>[\w\W]*<\/%1>)[ \t]*\n*", НастройкиСценария.ИмяЭлемента()); + ШаблонПоискаСостава = СтрШаблон("\s*(<%1%2>[\w\W]*<\/%1>)[ \t]*\n*", НастройкиСценария.ИмяЭлемента(), ТекстАтрибутов); КонецЕсли; // 1-я группа: имя объекта состава ШаблонПоискаЭлементов = ""; - ТекстАтрибутов = ?(НастройкиСценария.САтрибутами(), "\s+[^>]+", ""); Если НастройкиСценария.ЕстьВложенный() Тогда ШаблонПоискаЭлементов = СтрШаблон( // BSLLS:NestedFunctionInParameters-off используются геттеры "<%1%2>[\w\W]*?<%3>([^<]*?)<\/%3>[\w\W]*?<\/%1>", diff --git a/src/Модули/ТипыОбъектовДляСортировки.os b/src/Модули/ТипыОбъектовДляСортировки.os index f3c6491..3880f82 100644 --- a/src/Модули/ТипыОбъектовДляСортировки.os +++ b/src/Модули/ТипыОбъектовДляСортировки.os @@ -10,6 +10,7 @@ Перем Конфигурация Экспорт; Перем ОпределяемыйТип Экспорт; +Перем ОбщийРеквизит Экспорт; Перем ПланОбмена Экспорт; Перем ФункциональнаяОпция Экспорт; Перем Подсистема Экспорт; @@ -24,22 +25,24 @@ Если ЭтоЕДТ Или ТипыФайлов.ЭтоФайлОписанияКонфигурации(АнализируемыйФайл) Тогда Описание.Тип = Конфигурация; Описание.ЕДТ = ЭтоЕДТ; - Описание.Заимствованный = ТипыФайлов.ЭтоФайлЗаимствованногоОбъектаРасширения(АнализируемыйФайл); ИначеЕсли ТипыФайлов.ЭтоФайлОписанияОпределяемогоТипа(АнализируемыйФайл) Тогда Описание.Тип = ОпределяемыйТип; Описание.ЕДТ = ТипыФайлов.ЭтоФайлОписанияОпределяемогоТипаEDT(АнализируемыйФайл); - Описание.Заимствованный = ТипыФайлов.ЭтоФайлЗаимствованногоОбъектаРасширения(АнализируемыйФайл); ИначеЕсли ТипыФайлов.ЭтоФайлОписанияПланаОбмена(АнализируемыйФайл) Тогда Описание.Тип = ПланОбмена; Описание.ЕДТ = ТипыФайлов.ЭтоФайлОписанияПланаОбменаEDT(АнализируемыйФайл); - Описание.Заимствованный = ТипыФайлов.ЭтоФайлЗаимствованногоОбъектаРасширения(АнализируемыйФайл); ИначеЕсли ТипыФайлов.ЭтоФайлОписанияФункциональнойОпции(АнализируемыйФайл) Тогда Описание.Тип = ФункциональнаяОпция; Описание.ЕДТ = ТипыФайлов.ЭтоФайлОписанияФункциональнойОпцииEDT(АнализируемыйФайл); - Описание.Заимствованный = ТипыФайлов.ЭтоФайлЗаимствованногоОбъектаРасширения(АнализируемыйФайл); ИначеЕсли ТипыФайлов.ЭтоФайлОписанияПодсистемы(АнализируемыйФайл) Тогда Описание.Тип = Подсистема; Описание.ЕДТ = ТипыФайлов.ЭтоФайлОписанияПодсистемыEDT(АнализируемыйФайл); + ИначеЕсли ТипыФайлов.ЭтоФайлОписанияОбщегоРеквизита(АнализируемыйФайл) Тогда + Описание.Тип = ОбщийРеквизит; + Описание.ЕДТ = ТипыФайлов.ЭтоФайлОписанияОбщегоРеквизитаEDT(АнализируемыйФайл); + КонецЕсли; + + Если Описание.Тип <> Неизвестный Тогда Описание.Заимствованный = ТипыФайлов.ЭтоФайлЗаимствованногоОбъектаРасширения(АнализируемыйФайл); КонецЕсли; @@ -48,6 +51,7 @@ Конфигурация = "Конфигурация"; ОпределяемыйТип = "ОпределяемыйТип"; +ОбщийРеквизит = "ОбщийРеквизит"; ПланОбмена = "ПланОбмена"; ФункциональнаяОпция = "ФункциональнаяОпция"; Подсистема = "Подсистема"; diff --git a/src/Модули/ТипыФайлов.os b/src/Модули/ТипыФайлов.os index c0bbccd..59b0338 100644 --- a/src/Модули/ТипыФайлов.os +++ b/src/Модули/ТипыФайлов.os @@ -235,6 +235,18 @@ Возврат ЭтоФайлОписанияМетаданныхEDT(Файл) И ПутьСодержитКаталог(Файл, "definedtypes"); КонецФункции +Функция ЭтоФайлОписанияОбщегоРеквизита(Файл) Экспорт + Возврат ЭтоФайлОписанияОбщегоРеквизитаКонфигуратора(Файл) Или ЭтоФайлОписанияОбщегоРеквизитаEDT(Файл); +КонецФункции + +Функция ЭтоФайлОписанияОбщегоРеквизитаКонфигуратора(Файл) Экспорт + Возврат ЭтоФайлОписанияМетаданныхКонфигуратора(Файл) И ПутьСодержитКаталог(Файл, "commonattributes"); +КонецФункции + +Функция ЭтоФайлОписанияОбщегоРеквизитаEDT(Файл) Экспорт + Возврат ЭтоФайлОписанияМетаданныхEDT(Файл) И ПутьСодержитКаталог(Файл, "commonattributes"); +КонецФункции + Функция ЭтоФайлОписанияПланаОбмена(Файл) Экспорт Возврат ЭтоФайлОписанияПланаОбменаКонфигуратора(Файл) Или ЭтоФайлОписанияПланаОбменаEDT(Файл); КонецФункции diff --git a/src/СценарииОбработки/СортировкаСостава.os b/src/СценарииОбработки/СортировкаСостава.os index 7c69722..803b5d5 100644 --- a/src/СценарииОбработки/СортировкаСостава.os +++ b/src/СценарииОбработки/СортировкаСостава.os @@ -73,6 +73,7 @@ ПрефиксыСортировки = ПрефиксыСортировки(НастройкиСценария); НесортируемыеТипыМетаданных = НесортируемыеТипыМетаданных(); КонецЕсли; + Возврат НастройкиСортировкиСостава; КонецФункции @@ -87,6 +88,8 @@ УстановитьУсловияОбработкиФайлаОпределяемыйТип(НастройкиСортировки); ИначеЕсли НастройкиСортировки.Тип = ТипыОбъектовДляСортировки.ПланОбмена Тогда УстановитьУсловияОбработкиФайлаПланОбмена(НастройкиСортировки); + ИначеЕсли НастройкиСортировки.Тип = ТипыОбъектовДляСортировки.ОбщийРеквизит Тогда + УстановитьУсловияОбработкиФайлаОбщийРеквизит(НастройкиСортировки); Иначе ВызватьИсключение "Неизвестный тип для сортировки"; КонецЕсли; @@ -160,6 +163,29 @@ КонецЕсли; КонецПроцедуры +Процедура УстановитьУсловияОбработкиФайлаОбщийРеквизит(НастройкиСортировки) + Если НастройкиСортировки.ЕДТ() Тогда + Если НастройкиСортировки.Заимствованный() Тогда + НастройкаСценарияСортировкиСостава = Новый НастройкаСценарияСортировкиСостава("extension"); + НастройкаСценарияСортировкиСостава.УстановитьЕстьАтрибуты(); + НастройкаСценарияСортировкиСостава.УстановитьРазделительЭлементов(" "); + НастройкаСценарияСортировкиСостава.УстановитьИмяВложенного("content"); + НастройкиСортировки.ДобавитьСценарий(НастройкаСценарияСортировкиСостава); + КонецЕсли; + + НастройкаСценарияСортировкиСостава = Новый НастройкаСценарияСортировкиСостава("content"); + НастройкаСценарияСортировкиСостава.УстановитьРазделительЭлементов(" "); + НастройкаСценарияСортировкиСостава.УстановитьИмяВложенного("metadata"); + НастройкиСортировки.ДобавитьСценарий(НастройкаСценарияСортировкиСостава); + Иначе + НастройкаСценарияСортировкиСостава = Новый НастройкаСценарияСортировкиСостава("xr:Item"); + НастройкаСценарияСортировкиСостава.УстановитьРодительскийЭлемент("Content", " "); + НастройкаСценарияСортировкиСостава.УстановитьРазделительЭлементов(" "); + НастройкаСценарияСортировкиСостава.УстановитьИмяВложенного("xr:Metadata"); + НастройкиСортировки.ДобавитьСценарий(НастройкаСценарияСортировкиСостава); + КонецЕсли; +КонецПроцедуры + Процедура УстановитьУсловияОбработкиФайлаПланОбмена(НастройкиСортировки) Если НастройкиСортировки.ЕДТ() Тогда Если НастройкиСортировки.Заимствованный() Тогда @@ -203,13 +229,11 @@ ЗначениеНастройки = НастройкиСценария.Получить(ИмяНастройки); Если ЗначениеЗаполнено(ЗначениеНастройки) Тогда - Если ТипЗнч(ЗначениеНастройки) <> Тип("Массив") Тогда ЗначениеНастройки = СтрРазделить(Строка(ЗначениеНастройки), ",", Ложь); КонецЕсли; Для Каждого Элемент Из ЗначениеНастройки Цикл - Если Не ЗначениеЗаполнено(Элемент) Тогда Продолжить; КонецЕсли; @@ -223,9 +247,7 @@ КонецЕсли; Результат.Добавить(Элемент); - КонецЦикла; - КонецЕсли; Возврат Результат; diff --git a/tests/fixtures/СортировкаСостава/CommonAttributes/Configuration/До/Реквизит.mdo b/tests/fixtures/СортировкаСостава/CommonAttributes/Configuration/До/Реквизит.mdo new file mode 100644 index 0000000..461cfab --- /dev/null +++ b/tests/fixtures/СортировкаСостава/CommonAttributes/Configuration/До/Реквизит.mdo @@ -0,0 +1,36 @@ + + + Реквизит + + ru + Реквизит + + + CatalogRef.Пользователи + + + + InformationRegister.УчетФН + Use + + + Catalog.СертификатыЭП + Use + + + Catalog.Должности + Use + + + InformationRegister.РасширенныеНастройкиРегламентныхЗаданий + DontUse + + + Document.ЧекККМ + Use + + DontUse + DontUse + DontUse + DontUse + diff --git a/tests/fixtures/СортировкаСостава/CommonAttributes/Configuration/До/Реквизит.xml b/tests/fixtures/СортировкаСостава/CommonAttributes/Configuration/До/Реквизит.xml new file mode 100644 index 0000000..f93650c --- /dev/null +++ b/tests/fixtures/СортировкаСостава/CommonAttributes/Configuration/До/Реквизит.xml @@ -0,0 +1,50 @@ + + + + + Реквизит + + + ru + Реквизит + + + + + cfg:CatalogRef.Пользователи + + + DontCheck + + + InformationRegister.УчетФН + Use + + + + Catalog.СертификатыЭП + Use + + + + Catalog.Должности + Use + + + + InformationRegister.РасширенныеНастройкиРегламентныхЗаданий + DontUse + + + + Document.ЧекККМ + Use + + + + DontUse + DontUse + Independently + + + \ No newline at end of file diff --git a/tests/fixtures/СортировкаСостава/CommonAttributes/Configuration/После/Реквизит.mdo b/tests/fixtures/СортировкаСостава/CommonAttributes/Configuration/После/Реквизит.mdo new file mode 100644 index 0000000..2823181 --- /dev/null +++ b/tests/fixtures/СортировкаСостава/CommonAttributes/Configuration/После/Реквизит.mdo @@ -0,0 +1,36 @@ + + + Реквизит + + ru + Реквизит + + + CatalogRef.Пользователи + + + + Catalog.Должности + Use + + + Catalog.СертификатыЭП + Use + + + Document.ЧекККМ + Use + + + InformationRegister.РасширенныеНастройкиРегламентныхЗаданий + DontUse + + + InformationRegister.УчетФН + Use + + DontUse + DontUse + DontUse + DontUse + diff --git a/tests/fixtures/СортировкаСостава/CommonAttributes/Configuration/После/Реквизит.xml b/tests/fixtures/СортировкаСостава/CommonAttributes/Configuration/После/Реквизит.xml new file mode 100644 index 0000000..e521b74 --- /dev/null +++ b/tests/fixtures/СортировкаСостава/CommonAttributes/Configuration/После/Реквизит.xml @@ -0,0 +1,50 @@ + + + + + Реквизит + + + ru + Реквизит + + + + + cfg:CatalogRef.Пользователи + + + DontCheck + + + Catalog.Должности + Use + + + + Catalog.СертификатыЭП + Use + + + + Document.ЧекККМ + Use + + + + InformationRegister.РасширенныеНастройкиРегламентныхЗаданий + DontUse + + + + InformationRegister.УчетФН + Use + + + + DontUse + DontUse + Independently + + + \ No newline at end of file diff --git a/tests/fixtures/СортировкаСостава/CommonAttributes/Ext/До/Реквизит.mdo b/tests/fixtures/СортировкаСостава/CommonAttributes/Ext/До/Реквизит.mdo new file mode 100644 index 0000000..0afc7b0 --- /dev/null +++ b/tests/fixtures/СортировкаСостава/CommonAttributes/Ext/До/Реквизит.mdo @@ -0,0 +1,35 @@ + + + Реквизит + Adopted + + Checked + + + Checked + CatalogRef.Пользователи + + + Checked + + + InformationRegister.УчетФН + Use + + + Catalog.СертификатыЭП + Use + + + Catalog.Должности + Use + + + InformationRegister.РасширенныеНастройкиРегламентныхЗаданий + DontUse + + + Document.ЧекККМ + Use + + diff --git a/tests/fixtures/СортировкаСостава/CommonAttributes/Ext/До/Реквизит.xml b/tests/fixtures/СортировкаСостава/CommonAttributes/Ext/До/Реквизит.xml new file mode 100644 index 0000000..303983d --- /dev/null +++ b/tests/fixtures/СортировкаСостава/CommonAttributes/Ext/До/Реквизит.xml @@ -0,0 +1,42 @@ + + + + + + Реквизит + + Adopted + f6342b71-f550-435c-843b-e197aff119f0 + + cfg:CatalogRef.Пользователи + + + + InformationRegister.УчетФН + Use + + + + Catalog.СертификатыЭП + Use + + + + Catalog.Должности + Use + + + + InformationRegister.РасширенныеНастройкиРегламентныхЗаданий + DontUse + + + + Document.ЧекККМ + Use + + + + + + \ No newline at end of file diff --git a/tests/fixtures/СортировкаСостава/CommonAttributes/Ext/После/Реквизит.mdo b/tests/fixtures/СортировкаСостава/CommonAttributes/Ext/После/Реквизит.mdo new file mode 100644 index 0000000..9fdc587 --- /dev/null +++ b/tests/fixtures/СортировкаСостава/CommonAttributes/Ext/После/Реквизит.mdo @@ -0,0 +1,35 @@ + + + Реквизит + Adopted + + Checked + + + Checked + CatalogRef.Пользователи + + + Checked + + + Catalog.Должности + Use + + + Catalog.СертификатыЭП + Use + + + Document.ЧекККМ + Use + + + InformationRegister.РасширенныеНастройкиРегламентныхЗаданий + DontUse + + + InformationRegister.УчетФН + Use + + diff --git a/tests/fixtures/СортировкаСостава/CommonAttributes/Ext/После/Реквизит.xml b/tests/fixtures/СортировкаСостава/CommonAttributes/Ext/После/Реквизит.xml new file mode 100644 index 0000000..2f47f2a --- /dev/null +++ b/tests/fixtures/СортировкаСостава/CommonAttributes/Ext/После/Реквизит.xml @@ -0,0 +1,42 @@ + + + + + + Реквизит + + Adopted + f6342b71-f550-435c-843b-e197aff119f0 + + cfg:CatalogRef.Пользователи + + + + Catalog.Должности + Use + + + + Catalog.СертификатыЭП + Use + + + + Document.ЧекККМ + Use + + + + InformationRegister.РасширенныеНастройкиРегламентныхЗаданий + DontUse + + + + InformationRegister.УчетФН + Use + + + + + + \ No newline at end of file diff --git a/tests/ТестПроверкаСценариевОбработки.os b/tests/ТестПроверкаСценариевОбработки.os index 7ffd342..982075f 100644 --- a/tests/ТестПроверкаСценариевОбработки.os +++ b/tests/ТестПроверкаСценариевОбработки.os @@ -23,6 +23,7 @@ ВсеТесты.Добавить("СортировкаСостава_ExchangePlans"); ВсеТесты.Добавить("СортировкаСостава_FunctionalOptions"); ВсеТесты.Добавить("СортировкаСостава_Subsystems"); + ВсеТесты.Добавить("СортировкаСостава_CommonAttributes"); ВсеТесты.Добавить("ТипыФайлов_ЗащищенныеМодулиНеОпределяютсяКакФайлИсходников"); ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСинхронизацияОбъектовМетаданныхВызываетИсключение"); ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурВызываетИсключение"); @@ -95,6 +96,11 @@ ПроверитьОбработкуФайлов("СортировкаСостава", "Subsystems\Ext"); КонецПроцедуры +Процедура СортировкаСостава_CommonAttributes() Экспорт + ПроверитьОбработкуФайлов("СортировкаСостава", "CommonAttributes\Configuration"); + ПроверитьОбработкуФайлов("СортировкаСостава", "CommonAttributes\Ext"); +КонецПроцедуры + Процедура ПроверитьОбработкуФайлов(ИмяСценария, ПодкаталогИсходников) ОбъектСценария = ПолучитьСценарий(ИмяСценария); From af9b87fa8a463766cf17a8a44cdeddaea88955aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=97=D0=B0=D0=B7=D1=83=D0=BB=D0=BE=D0=B2=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B5=D0=B9=20=D0=90=D0=BB=D0=B5=D0=BA=D1=81?= =?UTF-8?q?=D0=B0=D0=BD=D0=B4=D1=80=D0=BE=D0=B2=D0=B8=D1=87=20=28=D0=97?= =?UTF-8?q?=D0=9A-0001393=29?= Date: Tue, 21 Jan 2025 09:13:37 +0300 Subject: [PATCH 3/4] =?UTF-8?q?ORAIS-1949:=20=D0=9D=D0=BE=D0=B2=D1=8B?= =?UTF-8?q?=D0=B9=20=D1=81=D1=86=D0=B5=D0=BD=D0=B0=D1=80=D0=B8=D0=B9=20?= =?UTF-8?q?=D1=81=D0=BE=D1=80=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=BA=D0=B0=20?= =?UTF-8?q?=D1=81=D0=BE=D1=81=D1=82=D0=B0=D0=B2=D0=B0=20=D0=BF=D0=BE=D0=B4?= =?UTF-8?q?=D0=BF=D0=B8=D1=81=D0=BE=D0=BA=20=D0=BD=D0=B0=20=D1=81=D0=BE?= =?UTF-8?q?=D0=B1=D1=8B=D1=82=D0=B8=D1=8F.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/СортировкаСостава.md | 2 + packagedef | 2 +- src/Модули/ТипыОбъектовДляСортировки.os | 5 +++ src/Модули/ТипыФайлов.os | 12 ++++++ src/СценарииОбработки/СортировкаСостава.os | 18 +++++++++ .../EventSubscriptions/Configuration/До/Менеджеры.mdo | 36 ++++++++++++++++++ .../EventSubscriptions/Configuration/До/Менеджеры.xml | 25 +++++++++++++ .../EventSubscriptions/Configuration/До/Объекты.mdo | 30 +++++++++++++++ .../EventSubscriptions/Configuration/До/Объекты.xml | 37 +++++++++++++++++++ .../EventSubscriptions/Configuration/После/Менеджеры.mdo | 36 ++++++++++++++++++ .../EventSubscriptions/Configuration/После/Менеджеры.xml | 25 +++++++++++++ .../EventSubscriptions/Configuration/После/Объекты.mdo | 30 +++++++++++++++ .../EventSubscriptions/Configuration/После/Объекты.xml | 37 +++++++++++++++++++ .../EventSubscriptions/Ext/До/Менеджеры.mdo | 16 ++++++++ .../EventSubscriptions/Ext/До/Менеджеры.xml | 19 ++++++++++ .../EventSubscriptions/Ext/До/Объекты.mdo | 17 +++++++++ .../EventSubscriptions/Ext/До/Объекты.xml | 20 ++++++++++ .../EventSubscriptions/Ext/После/Менеджеры.mdo | 16 ++++++++ .../EventSubscriptions/Ext/После/Менеджеры.xml | 19 ++++++++++ .../EventSubscriptions/Ext/После/Объекты.mdo | 17 +++++++++ .../EventSubscriptions/Ext/После/Объекты.xml | 20 ++++++++++ tests/ТестПроверкаСценариевОбработки.os | 6 +++ 22 files changed, 444 insertions(+), 1 deletion(-) create mode 100644 tests/fixtures/СортировкаСостава/EventSubscriptions/Configuration/До/Менеджеры.mdo create mode 100644 tests/fixtures/СортировкаСостава/EventSubscriptions/Configuration/До/Менеджеры.xml create mode 100644 tests/fixtures/СортировкаСостава/EventSubscriptions/Configuration/До/Объекты.mdo create mode 100644 tests/fixtures/СортировкаСостава/EventSubscriptions/Configuration/До/Объекты.xml create mode 100644 tests/fixtures/СортировкаСостава/EventSubscriptions/Configuration/После/Менеджеры.mdo create mode 100644 tests/fixtures/СортировкаСостава/EventSubscriptions/Configuration/После/Менеджеры.xml create mode 100644 tests/fixtures/СортировкаСостава/EventSubscriptions/Configuration/После/Объекты.mdo create mode 100644 tests/fixtures/СортировкаСостава/EventSubscriptions/Configuration/После/Объекты.xml create mode 100644 tests/fixtures/СортировкаСостава/EventSubscriptions/Ext/До/Менеджеры.mdo create mode 100644 tests/fixtures/СортировкаСостава/EventSubscriptions/Ext/До/Менеджеры.xml create mode 100644 tests/fixtures/СортировкаСостава/EventSubscriptions/Ext/До/Объекты.mdo create mode 100644 tests/fixtures/СортировкаСостава/EventSubscriptions/Ext/До/Объекты.xml create mode 100644 tests/fixtures/СортировкаСостава/EventSubscriptions/Ext/После/Менеджеры.mdo create mode 100644 tests/fixtures/СортировкаСостава/EventSubscriptions/Ext/После/Менеджеры.xml create mode 100644 tests/fixtures/СортировкаСостава/EventSubscriptions/Ext/После/Объекты.mdo create mode 100644 tests/fixtures/СортировкаСостава/EventSubscriptions/Ext/После/Объекты.xml diff --git a/docs/СортировкаСостава.md b/docs/СортировкаСостава.md index 7d53fba..c4200e4 100644 --- a/docs/СортировкаСостава.md +++ b/docs/СортировкаСостава.md @@ -11,6 +11,7 @@ - Общих реквизитов - Планов обмена - Функциональных опций +- Подписок на события - Подсистем Пример настройки: @@ -30,6 +31,7 @@ "ОбщийРеквизит", "ПланОбмена", "ФункциональнаяОпция", + "ПодпискаНаСобытие", "Подсистема" ] } diff --git a/packagedef b/packagedef index 01210b6..fe0fa90 100644 --- a/packagedef +++ b/packagedef @@ -17,7 +17,7 @@ .РазработкаЗависитОт("asserts") .РазработкаЗависитОт("tempfiles", "1.1.1") .РазработкаЗависитОт("fs") - .РазработкаЗависитОт("coverage") + .РазработкаЗависитОт("coverage", "0.6.1") .ВключитьФайл("src") .ВключитьФайл("v8config.json") .ВключитьФайл("LICENSE") diff --git a/src/Модули/ТипыОбъектовДляСортировки.os b/src/Модули/ТипыОбъектовДляСортировки.os index 3880f82..ef75dda 100644 --- a/src/Модули/ТипыОбъектовДляСортировки.os +++ b/src/Модули/ТипыОбъектовДляСортировки.os @@ -14,6 +14,7 @@ Перем ПланОбмена Экспорт; Перем ФункциональнаяОпция Экспорт; Перем Подсистема Экспорт; +Перем ПодпискаНаСобытие Экспорт; Перем Неизвестный Экспорт; // BSLLS:ExportVariables-on @@ -34,6 +35,9 @@ ИначеЕсли ТипыФайлов.ЭтоФайлОписанияФункциональнойОпции(АнализируемыйФайл) Тогда Описание.Тип = ФункциональнаяОпция; Описание.ЕДТ = ТипыФайлов.ЭтоФайлОписанияФункциональнойОпцииEDT(АнализируемыйФайл); + ИначеЕсли ТипыФайлов.ЭтоФайлОписанияПодпискиНаСобытие(АнализируемыйФайл) Тогда + Описание.Тип = ПодпискаНаСобытие; + Описание.ЕДТ = ТипыФайлов.ЭтоФайлОписанияПодпискиНаСобытиеEDT(АнализируемыйФайл); ИначеЕсли ТипыФайлов.ЭтоФайлОписанияПодсистемы(АнализируемыйФайл) Тогда Описание.Тип = Подсистема; Описание.ЕДТ = ТипыФайлов.ЭтоФайлОписанияПодсистемыEDT(АнализируемыйФайл); @@ -54,5 +58,6 @@ ОбщийРеквизит = "ОбщийРеквизит"; ПланОбмена = "ПланОбмена"; ФункциональнаяОпция = "ФункциональнаяОпция"; +ПодпискаНаСобытие = "ПодпискаНаСобытие"; Подсистема = "Подсистема"; Неизвестный = ""; diff --git a/src/Модули/ТипыФайлов.os b/src/Модули/ТипыФайлов.os index 59b0338..2066e29 100644 --- a/src/Модули/ТипыФайлов.os +++ b/src/Модули/ТипыФайлов.os @@ -283,6 +283,18 @@ Возврат ЭтоФайлОписанияМетаданныхEDT(Файл) И ПутьСодержитКаталог(Файл, "functionaloptions"); КонецФункции +Функция ЭтоФайлОписанияПодпискиНаСобытие(Файл) Экспорт + Возврат ЭтоФайлОписанияПодпискиНаСобытиеКонфигуратора(Файл) ИЛИ ЭтоФайлОписанияПодпискиНаСобытиеEDT(Файл); +КонецФункции + +Функция ЭтоФайлОписанияПодпискиНаСобытиеКонфигуратора(Файл) Экспорт + Возврат ЭтоФайлОписанияМетаданныхКонфигуратора(Файл) И ПутьСодержитКаталог(Файл, "eventsubscriptions"); +КонецФункции + +Функция ЭтоФайлОписанияПодпискиНаСобытиеEDT(Файл) Экспорт + Возврат ЭтоФайлОписанияМетаданныхEDT(Файл) И ПутьСодержитКаталог(Файл, "eventsubscriptions"); +КонецФункции + Функция ЭтоФайлПравРоли(Файл) Экспорт Возврат СтрСравнить(Файл.Имя, "Rights.xml") = 0 ИЛИ СтрСравнить(Файл.Имя, "Rights.rights") = 0; КонецФункции diff --git a/src/СценарииОбработки/СортировкаСостава.os b/src/СценарииОбработки/СортировкаСостава.os index 803b5d5..24f3198 100644 --- a/src/СценарииОбработки/СортировкаСостава.os +++ b/src/СценарииОбработки/СортировкаСостава.os @@ -90,6 +90,8 @@ УстановитьУсловияОбработкиФайлаПланОбмена(НастройкиСортировки); ИначеЕсли НастройкиСортировки.Тип = ТипыОбъектовДляСортировки.ОбщийРеквизит Тогда УстановитьУсловияОбработкиФайлаОбщийРеквизит(НастройкиСортировки); + ИначеЕсли НастройкиСортировки.Тип = ТипыОбъектовДляСортировки.ПодпискаНаСобытие Тогда + УстановитьУсловияОбработкиФайлаПодпискаНаСобытие(НастройкиСортировки); Иначе ВызватьИсключение "Неизвестный тип для сортировки"; КонецЕсли; @@ -186,6 +188,22 @@ КонецЕсли; КонецПроцедуры +Процедура УстановитьУсловияОбработкиФайлаПодпискаНаСобытие(НастройкиСортировки) + Если НастройкиСортировки.ЕДТ() Тогда + НастройкаСценарияСортировкиСостава = Новый НастройкаСценарияСортировкиСостава("types"); + НастройкаСценарияСортировкиСостава.УстановитьРазделительЭлементов(" "); + НастройкиСортировки.ДобавитьСценарий(НастройкаСценарияСортировкиСостава); + Иначе + НастройкаСценарияСортировкиСостава = Новый НастройкаСценарияСортировкиСостава("v8:Type"); + НастройкаСценарияСортировкиСостава.УстановитьРазделительЭлементов(" "); + НастройкиСортировки.ДобавитьСценарий(НастройкаСценарияСортировкиСостава); + + НастройкаСценарияСортировкиСостава = Новый НастройкаСценарияСортировкиСостава("v8:TypeSet"); + НастройкаСценарияСортировкиСостава.УстановитьРазделительЭлементов(" "); + НастройкиСортировки.ДобавитьСценарий(НастройкаСценарияСортировкиСостава); + КонецЕсли; +КонецПроцедуры + Процедура УстановитьУсловияОбработкиФайлаПланОбмена(НастройкиСортировки) Если НастройкиСортировки.ЕДТ() Тогда Если НастройкиСортировки.Заимствованный() Тогда diff --git a/tests/fixtures/СортировкаСостава/EventSubscriptions/Configuration/До/Менеджеры.mdo b/tests/fixtures/СортировкаСостава/EventSubscriptions/Configuration/До/Менеджеры.mdo new file mode 100644 index 0000000..c40514d --- /dev/null +++ b/tests/fixtures/СортировкаСостава/EventSubscriptions/Configuration/До/Менеджеры.mdo @@ -0,0 +1,36 @@ + + + ПодпискаТест + + ru + Подписка тест + + + CatalogManager.Банки + CatalogManager.Алгоритмы + CatalogManager.Валюты + CatalogManager.ИсточникиДанных + DocumentManager.ЧекККМ + DocumentManager.КассоваяСмена + EnumManager.ВидыВызоваШины + ChartOfCharacteristicTypesManager.ТипыЗначенийВидовПравДоступа + ChartOfAccountsManager + ChartOfCalculationTypesManager + ReportManager.ДинамикаРостаДанных + DataProcessorManager.ЖурналРегистрации + BusinessProcessManager + TaskManager + ExchangePlanManager.ТрансляцияИзменений + DocumentJournalManager + InformationRegisterManager.ДанныеШины + AccumulationRegisterManager + AccountingRegisterManager + CalculationRegisterManager + ConstantValueManager.ЗаголовокСистемы + FilterCriterionManager.ПодчиненныеДокументы + SequenceRecordSet + SettingsStorageManager + + FormGetProcessing + CommonModule.ПодпискиНаСобытия.ПодпискаТестОбработкаПолученияФормы + diff --git a/tests/fixtures/СортировкаСостава/EventSubscriptions/Configuration/До/Менеджеры.xml b/tests/fixtures/СортировкаСостава/EventSubscriptions/Configuration/До/Менеджеры.xml new file mode 100644 index 0000000..3772c8e --- /dev/null +++ b/tests/fixtures/СортировкаСостава/EventSubscriptions/Configuration/До/Менеджеры.xml @@ -0,0 +1,25 @@ + + + + + ПодпискаТест + + + ru + Подписка тест + + + + + cfg:DocumentManager.КассоваяСмена + cfg:CatalogManager.ИсточникиДанных + cfg:CatalogManager.Валюты + cfg:CatalogManager.Банки + cfg:CatalogManager.Алгоритмы + cfg:DocumentManager.ЧекККМ + + FormGetProcessing + CommonModule.ПодпискиНаСобытия.ПодпискаТестОбработкаПолученияФормы + + + \ No newline at end of file diff --git a/tests/fixtures/СортировкаСостава/EventSubscriptions/Configuration/До/Объекты.mdo b/tests/fixtures/СортировкаСостава/EventSubscriptions/Configuration/До/Объекты.mdo new file mode 100644 index 0000000..ad831ad --- /dev/null +++ b/tests/fixtures/СортировкаСостава/EventSubscriptions/Configuration/До/Объекты.mdo @@ -0,0 +1,30 @@ + + + ОбработкаПроверкиЗаполненияТест + + ru + Обработка проверки заполнения тест + + + DefinedType.ДоговорыКлиентов + CatalogObject.Алгоритмы + CatalogObject.Банки + CatalogObject.Валюты + CatalogObject.ИсточникиДанных + DocumentObject.КассоваяСмена + DocumentObject.ЧекККМ + ChartOfCharacteristicTypesObject + ChartOfAccountsObject + ChartOfCalculationTypesObject + BusinessProcessObject + TaskObject + ExchangePlanObject.ТрансляцияИзменений + InformationRegisterRecordSet.ВерсииОбъектов + AccumulationRegisterRecordSet + AccountingRegisterRecordSet + CalculationRegisterRecordSet + ExternalDataSourceTableRecordSet.ТекущаяСУБД.ИнформацияОбОшибках + RecalculationRecordSet + + FillCheckProcessing + diff --git a/tests/fixtures/СортировкаСостава/EventSubscriptions/Configuration/До/Объекты.xml b/tests/fixtures/СортировкаСостава/EventSubscriptions/Configuration/До/Объекты.xml new file mode 100644 index 0000000..ada7e5d --- /dev/null +++ b/tests/fixtures/СортировкаСостава/EventSubscriptions/Configuration/До/Объекты.xml @@ -0,0 +1,37 @@ + + + + + ОбработкаПроверкиЗаполненияТест + + + ru + Обработка проверки заполнения тест + + + + + cfg:CatalogObject.Алгоритмы + cfg:DocumentObject.ЧекККМ + cfg:DocumentObject.КассоваяСмена + cfg:ExchangePlanObject.ТрансляцияИзменений + cfg:InformationRegisterRecordSet.ВерсииОбъектов + cfg:ExternalDataSourceTableRecordSet.ТекущаяСУБД.ИнформацияОбОшибках + cfg:CatalogObject.ИсточникиДанных + cfg:CatalogObject.Валюты + cfg:CatalogObject.Банки + cfg:BusinessProcessObject + cfg:ChartOfCalculationTypesObject + cfg:ChartOfAccountsObject + cfg:AccountingRegisterRecordSet + cfg:CalculationRegisterRecordSet + cfg:AccumulationRegisterRecordSet + cfg:ChartOfCharacteristicTypesObject + cfg:RecalculationRecordSet + cfg:TaskObject + + FillCheckProcessing + CommonModule.ПодпискиНаСобытия.ОбработкаПроверкиЗаполненияТестОбработкаПроверкиЗаполнения + + + \ No newline at end of file diff --git a/tests/fixtures/СортировкаСостава/EventSubscriptions/Configuration/После/Менеджеры.mdo b/tests/fixtures/СортировкаСостава/EventSubscriptions/Configuration/После/Менеджеры.mdo new file mode 100644 index 0000000..5400a34 --- /dev/null +++ b/tests/fixtures/СортировкаСостава/EventSubscriptions/Configuration/После/Менеджеры.mdo @@ -0,0 +1,36 @@ + + + ПодпискаТест + + ru + Подписка тест + + + AccountingRegisterManager + AccumulationRegisterManager + BusinessProcessManager + CalculationRegisterManager + CatalogManager.Алгоритмы + CatalogManager.Банки + CatalogManager.Валюты + CatalogManager.ИсточникиДанных + ChartOfAccountsManager + ChartOfCalculationTypesManager + ChartOfCharacteristicTypesManager.ТипыЗначенийВидовПравДоступа + ConstantValueManager.ЗаголовокСистемы + DataProcessorManager.ЖурналРегистрации + DocumentJournalManager + DocumentManager.КассоваяСмена + DocumentManager.ЧекККМ + EnumManager.ВидыВызоваШины + ExchangePlanManager.ТрансляцияИзменений + FilterCriterionManager.ПодчиненныеДокументы + InformationRegisterManager.ДанныеШины + ReportManager.ДинамикаРостаДанных + SequenceRecordSet + SettingsStorageManager + TaskManager + + FormGetProcessing + CommonModule.ПодпискиНаСобытия.ПодпискаТестОбработкаПолученияФормы + diff --git a/tests/fixtures/СортировкаСостава/EventSubscriptions/Configuration/После/Менеджеры.xml b/tests/fixtures/СортировкаСостава/EventSubscriptions/Configuration/После/Менеджеры.xml new file mode 100644 index 0000000..5687f58 --- /dev/null +++ b/tests/fixtures/СортировкаСостава/EventSubscriptions/Configuration/После/Менеджеры.xml @@ -0,0 +1,25 @@ + + + + + ПодпискаТест + + + ru + Подписка тест + + + + + cfg:CatalogManager.Алгоритмы + cfg:CatalogManager.Банки + cfg:CatalogManager.Валюты + cfg:CatalogManager.ИсточникиДанных + cfg:DocumentManager.КассоваяСмена + cfg:DocumentManager.ЧекККМ + + FormGetProcessing + CommonModule.ПодпискиНаСобытия.ПодпискаТестОбработкаПолученияФормы + + + \ No newline at end of file diff --git a/tests/fixtures/СортировкаСостава/EventSubscriptions/Configuration/После/Объекты.mdo b/tests/fixtures/СортировкаСостава/EventSubscriptions/Configuration/После/Объекты.mdo new file mode 100644 index 0000000..607164e --- /dev/null +++ b/tests/fixtures/СортировкаСостава/EventSubscriptions/Configuration/После/Объекты.mdo @@ -0,0 +1,30 @@ + + + ОбработкаПроверкиЗаполненияТест + + ru + Обработка проверки заполнения тест + + + AccountingRegisterRecordSet + AccumulationRegisterRecordSet + BusinessProcessObject + CalculationRegisterRecordSet + CatalogObject.Алгоритмы + CatalogObject.Банки + CatalogObject.Валюты + CatalogObject.ИсточникиДанных + ChartOfAccountsObject + ChartOfCalculationTypesObject + ChartOfCharacteristicTypesObject + DefinedType.ДоговорыКлиентов + DocumentObject.КассоваяСмена + DocumentObject.ЧекККМ + ExchangePlanObject.ТрансляцияИзменений + ExternalDataSourceTableRecordSet.ТекущаяСУБД.ИнформацияОбОшибках + InformationRegisterRecordSet.ВерсииОбъектов + RecalculationRecordSet + TaskObject + + FillCheckProcessing + diff --git a/tests/fixtures/СортировкаСостава/EventSubscriptions/Configuration/После/Объекты.xml b/tests/fixtures/СортировкаСостава/EventSubscriptions/Configuration/После/Объекты.xml new file mode 100644 index 0000000..4eac2e4 --- /dev/null +++ b/tests/fixtures/СортировкаСостава/EventSubscriptions/Configuration/После/Объекты.xml @@ -0,0 +1,37 @@ + + + + + ОбработкаПроверкиЗаполненияТест + + + ru + Обработка проверки заполнения тест + + + + + cfg:CatalogObject.Алгоритмы + cfg:CatalogObject.Банки + cfg:CatalogObject.Валюты + cfg:CatalogObject.ИсточникиДанных + cfg:DocumentObject.КассоваяСмена + cfg:DocumentObject.ЧекККМ + cfg:ExchangePlanObject.ТрансляцияИзменений + cfg:ExternalDataSourceTableRecordSet.ТекущаяСУБД.ИнформацияОбОшибках + cfg:InformationRegisterRecordSet.ВерсииОбъектов + cfg:AccountingRegisterRecordSet + cfg:AccumulationRegisterRecordSet + cfg:BusinessProcessObject + cfg:CalculationRegisterRecordSet + cfg:ChartOfAccountsObject + cfg:ChartOfCalculationTypesObject + cfg:ChartOfCharacteristicTypesObject + cfg:RecalculationRecordSet + cfg:TaskObject + + FillCheckProcessing + CommonModule.ПодпискиНаСобытия.ОбработкаПроверкиЗаполненияТестОбработкаПроверкиЗаполнения + + + \ No newline at end of file diff --git a/tests/fixtures/СортировкаСостава/EventSubscriptions/Ext/До/Менеджеры.mdo b/tests/fixtures/СортировкаСостава/EventSubscriptions/Ext/До/Менеджеры.mdo new file mode 100644 index 0000000..1da0010 --- /dev/null +++ b/tests/fixtures/СортировкаСостава/EventSubscriptions/Ext/До/Менеджеры.mdo @@ -0,0 +1,16 @@ + + + ПодпискаТест + Adopted + + Checked + Checked + + + CatalogManager.Метаданные + DocumentManager + DataProcessorManager + InformationRegisterManager + InformationRegisterManager.СообщенияСервисовИнтеграции + + diff --git a/tests/fixtures/СортировкаСостава/EventSubscriptions/Ext/До/Менеджеры.xml b/tests/fixtures/СортировкаСостава/EventSubscriptions/Ext/До/Менеджеры.xml new file mode 100644 index 0000000..df3907f --- /dev/null +++ b/tests/fixtures/СортировкаСостава/EventSubscriptions/Ext/До/Менеджеры.xml @@ -0,0 +1,19 @@ + + + + + + ПодпискаТест + + Adopted + 67086bed-ead8-4ddc-9e80-f83ac86bf930 + + cfg:InformationRegisterManager + cfg:DocumentManager + cfg:InformationRegisterManager.СообщенияСервисовИнтеграции + cfg:DataProcessorManager + cfg:CatalogManager.Метаданные + + + + \ No newline at end of file diff --git a/tests/fixtures/СортировкаСостава/EventSubscriptions/Ext/До/Объекты.mdo b/tests/fixtures/СортировкаСостава/EventSubscriptions/Ext/До/Объекты.mdo new file mode 100644 index 0000000..21fa6f8 --- /dev/null +++ b/tests/fixtures/СортировкаСостава/EventSubscriptions/Ext/До/Объекты.mdo @@ -0,0 +1,17 @@ + + + ОбработкаПроверкиЗаполненияТест + Adopted + + Checked + Checked + + + DocumentObject + CatalogObject.ИндивидуальныеОбработкиОтчеты + ChartOfAccountsObject + TaskObject + InformationRegisterRecordSet.СообщенияСервисовИнтеграции + CalculationRegisterRecordSet + + diff --git a/tests/fixtures/СортировкаСостава/EventSubscriptions/Ext/До/Объекты.xml b/tests/fixtures/СортировкаСостава/EventSubscriptions/Ext/До/Объекты.xml new file mode 100644 index 0000000..804e520 --- /dev/null +++ b/tests/fixtures/СортировкаСостава/EventSubscriptions/Ext/До/Объекты.xml @@ -0,0 +1,20 @@ + + + + + + ОбработкаПроверкиЗаполненияТест + + Adopted + f00e893b-a4e8-4ad0-9129-09f619b06ba5 + + cfg:CatalogObject.ИндивидуальныеОбработкиОтчеты + cfg:InformationRegisterRecordSet.СообщенияСервисовИнтеграции + cfg:ChartOfAccountsObject + cfg:CalculationRegisterRecordSet + cfg:TaskObject + cfg:DocumentObject + + + + \ No newline at end of file diff --git a/tests/fixtures/СортировкаСостава/EventSubscriptions/Ext/После/Менеджеры.mdo b/tests/fixtures/СортировкаСостава/EventSubscriptions/Ext/После/Менеджеры.mdo new file mode 100644 index 0000000..403de15 --- /dev/null +++ b/tests/fixtures/СортировкаСостава/EventSubscriptions/Ext/После/Менеджеры.mdo @@ -0,0 +1,16 @@ + + + ПодпискаТест + Adopted + + Checked + Checked + + + CatalogManager.Метаданные + DataProcessorManager + DocumentManager + InformationRegisterManager + InformationRegisterManager.СообщенияСервисовИнтеграции + + diff --git a/tests/fixtures/СортировкаСостава/EventSubscriptions/Ext/После/Менеджеры.xml b/tests/fixtures/СортировкаСостава/EventSubscriptions/Ext/После/Менеджеры.xml new file mode 100644 index 0000000..4db3be6 --- /dev/null +++ b/tests/fixtures/СортировкаСостава/EventSubscriptions/Ext/После/Менеджеры.xml @@ -0,0 +1,19 @@ + + + + + + ПодпискаТест + + Adopted + 67086bed-ead8-4ddc-9e80-f83ac86bf930 + + cfg:CatalogManager.Метаданные + cfg:DataProcessorManager + cfg:DocumentManager + cfg:InformationRegisterManager + cfg:InformationRegisterManager.СообщенияСервисовИнтеграции + + + + \ No newline at end of file diff --git a/tests/fixtures/СортировкаСостава/EventSubscriptions/Ext/После/Объекты.mdo b/tests/fixtures/СортировкаСостава/EventSubscriptions/Ext/После/Объекты.mdo new file mode 100644 index 0000000..f8d985b --- /dev/null +++ b/tests/fixtures/СортировкаСостава/EventSubscriptions/Ext/После/Объекты.mdo @@ -0,0 +1,17 @@ + + + ОбработкаПроверкиЗаполненияТест + Adopted + + Checked + Checked + + + CalculationRegisterRecordSet + CatalogObject.ИндивидуальныеОбработкиОтчеты + ChartOfAccountsObject + DocumentObject + InformationRegisterRecordSet.СообщенияСервисовИнтеграции + TaskObject + + diff --git a/tests/fixtures/СортировкаСостава/EventSubscriptions/Ext/После/Объекты.xml b/tests/fixtures/СортировкаСостава/EventSubscriptions/Ext/После/Объекты.xml new file mode 100644 index 0000000..cd949ea --- /dev/null +++ b/tests/fixtures/СортировкаСостава/EventSubscriptions/Ext/После/Объекты.xml @@ -0,0 +1,20 @@ + + + + + + ОбработкаПроверкиЗаполненияТест + + Adopted + f00e893b-a4e8-4ad0-9129-09f619b06ba5 + + cfg:CatalogObject.ИндивидуальныеОбработкиОтчеты + cfg:InformationRegisterRecordSet.СообщенияСервисовИнтеграции + cfg:CalculationRegisterRecordSet + cfg:ChartOfAccountsObject + cfg:DocumentObject + cfg:TaskObject + + + + \ No newline at end of file diff --git a/tests/ТестПроверкаСценариевОбработки.os b/tests/ТестПроверкаСценариевОбработки.os index 982075f..36082f1 100644 --- a/tests/ТестПроверкаСценариевОбработки.os +++ b/tests/ТестПроверкаСценариевОбработки.os @@ -24,6 +24,7 @@ ВсеТесты.Добавить("СортировкаСостава_FunctionalOptions"); ВсеТесты.Добавить("СортировкаСостава_Subsystems"); ВсеТесты.Добавить("СортировкаСостава_CommonAttributes"); + ВсеТесты.Добавить("СортировкаСостава_EventSubscriptions"); ВсеТесты.Добавить("ТипыФайлов_ЗащищенныеМодулиНеОпределяютсяКакФайлИсходников"); ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСинхронизацияОбъектовМетаданныхВызываетИсключение"); ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурВызываетИсключение"); @@ -101,6 +102,11 @@ ПроверитьОбработкуФайлов("СортировкаСостава", "CommonAttributes\Ext"); КонецПроцедуры +Процедура СортировкаСостава_EventSubscriptions() Экспорт + ПроверитьОбработкуФайлов("СортировкаСостава", "EventSubscriptions\Configuration"); + ПроверитьОбработкуФайлов("СортировкаСостава", "EventSubscriptions\Ext"); +КонецПроцедуры + Процедура ПроверитьОбработкуФайлов(ИмяСценария, ПодкаталогИсходников) ОбъектСценария = ПолучитьСценарий(ИмяСценария); From 1e884fe797ddbf2564dc18fb4305071a2293576a Mon Sep 17 00:00:00 2001 From: Maximov Valery Date: Wed, 22 Jan 2025 18:32:41 +0300 Subject: [PATCH 4/4] =?UTF-8?q?=D0=A0=D0=B5=D0=BB=D0=B8=D0=B7=2025.01?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- features/Конфигурирование.feature | 4 ++-- features/ПростыеКоманды.feature | 6 +++--- features/УстановкаПрекоммита.feature | 8 ++++---- src/Модули/ПараметрыПриложения.os | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/features/Конфигурирование.feature b/features/Конфигурирование.feature index 47944af..52814b9 100644 --- a/features/Конфигурирование.feature +++ b/features/Конфигурирование.feature @@ -10,7 +10,7 @@ Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os configure -global" Тогда Код возврата команды "oscript" равен 0 И Я сообщаю вывод команды "oscript" - И Вывод команды "oscript" содержит "precommit4onec v24.11" + И Вывод команды "oscript" содержит "precommit4onec v25.01" И Вывод команды "oscript" содержит "Установленные настройки:" И Вывод команды "oscript" содержит "ИспользоватьСценарииРепозитория =" И Вывод команды "oscript" содержит "КаталогЛокальныхСценариев =" @@ -33,7 +33,7 @@ И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os configure -global" И Код возврата команды "oscript" равен 0 И Я сообщаю вывод команды "oscript" - И Вывод команды "oscript" содержит "precommit4onec v24.11" + И Вывод команды "oscript" содержит "precommit4onec v25.01" И Вывод команды "oscript" содержит "Установленные настройки: Базовые настройки" И Вывод команды "oscript" содержит "КаталогЛокальныхСценариев =" И Вывод команды "oscript" содержит "ГлобальныеСценарии = ВставкаКопирайтов.os,ДобавлениеПробеловПередКлючевымиСловами.os,ЗапретИспользованияПерейти.os,ИсправлениеНеКаноническогоНаписания.os,КорректировкаXMLФорм.os,ОбработкаЮнитТестов.os,ОтключениеПолнотекстовогоПоиска.os,ОтключениеРазрешенияИзменятьФорму.os,ПроверкаДублейПроцедурИФункций.os,ПроверкаКорректностиИнструкцийПрепроцессора.os,ПроверкаКорректностиОбластей.os,ПроверкаНецензурныхСлов.os,РазборОбычныхФормНаИсходники.os,РазборОтчетовОбработокРасширений.os,СинхронизацияОбъектовМетаданныхИФайлов.os,СортировкаПравРолей.os,СортировкаСостава.os,УдалениеДублейМетаданных.os,УдалениеЛишнихКонцевыхПробелов.os,УдалениеЛишнихПустыхСтрок.os" diff --git a/features/ПростыеКоманды.feature b/features/ПростыеКоманды.feature index 5c28d11..3078e72 100644 --- a/features/ПростыеКоманды.feature +++ b/features/ПростыеКоманды.feature @@ -14,7 +14,7 @@ Сценарий: Получение версии продукта Когда Я выполняю команду "oscript" с параметрами "src/main.os version" Тогда Я сообщаю вывод команды "oscript" - И Вывод команды "oscript" содержит "24.11" + И Вывод команды "oscript" содержит "25.01" И Вывод команды "oscript" не содержит "precommit4onec v" И Код возврата команды "oscript" равен 0 @@ -22,7 +22,7 @@ Когда Я выполняю команду "oscript" с параметрами "src/main.os help" Тогда Вывод команды "oscript" содержит """ - precommit4onec v24.11 + precommit4onec v25.01 Возможные команды: help - Выводит справку по командам version - Выводит версию приложения @@ -37,7 +37,7 @@ Когда Я выполняю команду "oscript" с параметрами "src/main.os" Тогда Вывод команды "oscript" содержит """ - precommit4onec v24.11 + precommit4onec v25.01 Возможные команды: help - Выводит справку по командам version - Выводит версию приложения diff --git a/features/УстановкаПрекоммита.feature b/features/УстановкаПрекоммита.feature index 89a719b..0463553 100644 --- a/features/УстановкаПрекоммита.feature +++ b/features/УстановкаПрекоммита.feature @@ -18,7 +18,7 @@ Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os install rep1" Тогда Код возврата команды "oscript" равен 0 И Я сообщаю вывод команды "oscript" - И Вывод команды "oscript" содержит "precommit4onec v24.11" + И Вывод команды "oscript" содержит "precommit4onec v25.01" И Вывод команды "oscript" содержит "Pre-commit hook для rep1 создан" И В каталоге ".git/hooks" репозитория "Репозиторий1" есть файл "pre-commit" @@ -28,14 +28,14 @@ И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os install ./" Тогда Код возврата команды "oscript" равен 0 И Я сообщаю вывод команды "oscript" - И Вывод команды "oscript" содержит "precommit4onec v24.11" + И Вывод команды "oscript" содержит "precommit4onec v25.01" И Вывод команды "oscript" содержит "не является репозиторием git" Сценарий: Установка precommit4onec во вложенные каталоги Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os install ./ -r" Тогда Код возврата команды "oscript" равен 0 И Я сообщаю вывод команды "oscript" - И Вывод команды "oscript" содержит "precommit4onec v24.11" + И Вывод команды "oscript" содержит "precommit4onec v25.01" И В каталоге ".git/hooks" репозитория "Репозиторий1" есть файл "pre-commit" И В каталоге ".git/hooks" репозитория "Репозиторий2" есть файл "pre-commit" @@ -51,6 +51,6 @@ И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os install ./ -r" Тогда Код возврата команды "oscript" равен 0 И Я сообщаю вывод команды "oscript" - И Вывод команды "oscript" содержит "precommit4onec v24.11" + И Вывод команды "oscript" содержит "precommit4onec v25.01" И В каталоге ".git/hooks" репозитория "Репозиторий1" есть файл "pre-commit" И В каталоге ".git/hooks" репозитория "Репозиторий2" есть файл "pre-commit" diff --git a/src/Модули/ПараметрыПриложения.os b/src/Модули/ПараметрыПриложения.os index 74f9536..04f5596 100644 --- a/src/Модули/ПараметрыПриложения.os +++ b/src/Модули/ПараметрыПриложения.os @@ -24,7 +24,7 @@ // Функция ВерсияПродукта() Экспорт - Возврат "24.11"; + Возврат "25.01"; КонецФункции // ВерсияПродукта