diff --git a/docs/img/GitExtensions_StagedFiles.png b/docs/img/GitExtensions_StagedFiles.png new file mode 100644 index 0000000..cc95cf2 Binary files /dev/null and b/docs/img/GitExtensions_StagedFiles.png differ 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/docs/СортировкаСостава.md b/docs/СортировкаСостава.md index 485a0b1..c4200e4 100644 --- a/docs/СортировкаСостава.md +++ b/docs/СортировкаСостава.md @@ -8,8 +8,10 @@ - Конфигурации (все объекты верхнего уровня, кроме языков и подсистем) - Определяемых типов +- Общих реквизитов - Планов обмена - Функциональных опций +- Подписок на события - Подсистем Пример настройки: @@ -26,8 +28,10 @@ "ОтключенныеОбъекты": [ "Конфигурация", "ОпределяемыйТип", + "ОбщийРеквизит", "ПланОбмена", "ФункциональнаяОпция", + "ПодпискаНаСобытие", "Подсистема" ] } 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/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 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.ПолучитьВыводКоманды(); 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 74f9536..04f5596 100644 --- a/src/Модули/ПараметрыПриложения.os +++ b/src/Модули/ПараметрыПриложения.os @@ -24,7 +24,7 @@ // Функция ВерсияПродукта() Экспорт - Возврат "24.11"; + Возврат "25.01"; КонецФункции // ВерсияПродукта diff --git a/src/Модули/ТипыОбъектовДляСортировки.os b/src/Модули/ТипыОбъектовДляСортировки.os index f3c6491..ef75dda 100644 --- a/src/Модули/ТипыОбъектовДляСортировки.os +++ b/src/Модули/ТипыОбъектовДляСортировки.os @@ -10,9 +10,11 @@ Перем Конфигурация Экспорт; Перем ОпределяемыйТип Экспорт; +Перем ОбщийРеквизит Экспорт; Перем ПланОбмена Экспорт; Перем ФункциональнаяОпция Экспорт; Перем Подсистема Экспорт; +Перем ПодпискаНаСобытие Экспорт; Перем Неизвестный Экспорт; // BSLLS:ExportVariables-on @@ -24,22 +26,27 @@ Если ЭтоЕДТ Или ТипыФайлов.ЭтоФайлОписанияКонфигурации(АнализируемыйФайл) Тогда Описание.Тип = Конфигурация; Описание.ЕДТ = ЭтоЕДТ; - Описание.Заимствованный = ТипыФайлов.ЭтоФайлЗаимствованногоОбъектаРасширения(АнализируемыйФайл); ИначеЕсли ТипыФайлов.ЭтоФайлОписанияОпределяемогоТипа(АнализируемыйФайл) Тогда Описание.Тип = ОпределяемыйТип; Описание.ЕДТ = ТипыФайлов.ЭтоФайлОписанияОпределяемогоТипаEDT(АнализируемыйФайл); - Описание.Заимствованный = ТипыФайлов.ЭтоФайлЗаимствованногоОбъектаРасширения(АнализируемыйФайл); ИначеЕсли ТипыФайлов.ЭтоФайлОписанияПланаОбмена(АнализируемыйФайл) Тогда Описание.Тип = ПланОбмена; Описание.ЕДТ = ТипыФайлов.ЭтоФайлОписанияПланаОбменаEDT(АнализируемыйФайл); - Описание.Заимствованный = ТипыФайлов.ЭтоФайлЗаимствованногоОбъектаРасширения(АнализируемыйФайл); ИначеЕсли ТипыФайлов.ЭтоФайлОписанияФункциональнойОпции(АнализируемыйФайл) Тогда Описание.Тип = ФункциональнаяОпция; Описание.ЕДТ = ТипыФайлов.ЭтоФайлОписанияФункциональнойОпцииEDT(АнализируемыйФайл); - Описание.Заимствованный = ТипыФайлов.ЭтоФайлЗаимствованногоОбъектаРасширения(АнализируемыйФайл); + ИначеЕсли ТипыФайлов.ЭтоФайлОписанияПодпискиНаСобытие(АнализируемыйФайл) Тогда + Описание.Тип = ПодпискаНаСобытие; + Описание.ЕДТ = ТипыФайлов.ЭтоФайлОписанияПодпискиНаСобытиеEDT(АнализируемыйФайл); ИначеЕсли ТипыФайлов.ЭтоФайлОписанияПодсистемы(АнализируемыйФайл) Тогда Описание.Тип = Подсистема; Описание.ЕДТ = ТипыФайлов.ЭтоФайлОписанияПодсистемыEDT(АнализируемыйФайл); + ИначеЕсли ТипыФайлов.ЭтоФайлОписанияОбщегоРеквизита(АнализируемыйФайл) Тогда + Описание.Тип = ОбщийРеквизит; + Описание.ЕДТ = ТипыФайлов.ЭтоФайлОписанияОбщегоРеквизитаEDT(АнализируемыйФайл); + КонецЕсли; + + Если Описание.Тип <> Неизвестный Тогда Описание.Заимствованный = ТипыФайлов.ЭтоФайлЗаимствованногоОбъектаРасширения(АнализируемыйФайл); КонецЕсли; @@ -48,7 +55,9 @@ Конфигурация = "Конфигурация"; ОпределяемыйТип = "ОпределяемыйТип"; +ОбщийРеквизит = "ОбщийРеквизит"; ПланОбмена = "ПланОбмена"; ФункциональнаяОпция = "ФункциональнаяОпция"; +ПодпискаНаСобытие = "ПодпискаНаСобытие"; Подсистема = "Подсистема"; Неизвестный = ""; diff --git a/src/Модули/ТипыФайлов.os b/src/Модули/ТипыФайлов.os index c0bbccd..2066e29 100644 --- a/src/Модули/ТипыФайлов.os +++ b/src/Модули/ТипыФайлов.os @@ -235,6 +235,18 @@ Возврат ЭтоФайлОписанияМетаданныхEDT(Файл) И ПутьСодержитКаталог(Файл, "definedtypes"); КонецФункции +Функция ЭтоФайлОписанияОбщегоРеквизита(Файл) Экспорт + Возврат ЭтоФайлОписанияОбщегоРеквизитаКонфигуратора(Файл) Или ЭтоФайлОписанияОбщегоРеквизитаEDT(Файл); +КонецФункции + +Функция ЭтоФайлОписанияОбщегоРеквизитаКонфигуратора(Файл) Экспорт + Возврат ЭтоФайлОписанияМетаданныхКонфигуратора(Файл) И ПутьСодержитКаталог(Файл, "commonattributes"); +КонецФункции + +Функция ЭтоФайлОписанияОбщегоРеквизитаEDT(Файл) Экспорт + Возврат ЭтоФайлОписанияМетаданныхEDT(Файл) И ПутьСодержитКаталог(Файл, "commonattributes"); +КонецФункции + Функция ЭтоФайлОписанияПланаОбмена(Файл) Экспорт Возврат ЭтоФайлОписанияПланаОбменаКонфигуратора(Файл) Или ЭтоФайлОписанияПланаОбменаEDT(Файл); КонецФункции @@ -271,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 7c69722..24f3198 100644 --- a/src/СценарииОбработки/СортировкаСостава.os +++ b/src/СценарииОбработки/СортировкаСостава.os @@ -73,6 +73,7 @@ ПрефиксыСортировки = ПрефиксыСортировки(НастройкиСценария); НесортируемыеТипыМетаданных = НесортируемыеТипыМетаданных(); КонецЕсли; + Возврат НастройкиСортировкиСостава; КонецФункции @@ -87,6 +88,10 @@ УстановитьУсловияОбработкиФайлаОпределяемыйТип(НастройкиСортировки); ИначеЕсли НастройкиСортировки.Тип = ТипыОбъектовДляСортировки.ПланОбмена Тогда УстановитьУсловияОбработкиФайлаПланОбмена(НастройкиСортировки); + ИначеЕсли НастройкиСортировки.Тип = ТипыОбъектовДляСортировки.ОбщийРеквизит Тогда + УстановитьУсловияОбработкиФайлаОбщийРеквизит(НастройкиСортировки); + ИначеЕсли НастройкиСортировки.Тип = ТипыОбъектовДляСортировки.ПодпискаНаСобытие Тогда + УстановитьУсловияОбработкиФайлаПодпискаНаСобытие(НастройкиСортировки); Иначе ВызватьИсключение "Неизвестный тип для сортировки"; КонецЕсли; @@ -160,6 +165,45 @@ КонецЕсли; КонецПроцедуры +Процедура УстановитьУсловияОбработкиФайлаОбщийРеквизит(НастройкиСортировки) + Если НастройкиСортировки.ЕДТ() Тогда + Если НастройкиСортировки.Заимствованный() Тогда + НастройкаСценарияСортировкиСостава = Новый НастройкаСценарияСортировкиСостава("extension"); + НастройкаСценарияСортировкиСостава.УстановитьЕстьАтрибуты(); + НастройкаСценарияСортировкиСостава.УстановитьРазделительЭлементов(" "); + НастройкаСценарияСортировкиСостава.УстановитьИмяВложенного("content"); + НастройкиСортировки.ДобавитьСценарий(НастройкаСценарияСортировкиСостава); + КонецЕсли; + + НастройкаСценарияСортировкиСостава = Новый НастройкаСценарияСортировкиСостава("content"); + НастройкаСценарияСортировкиСостава.УстановитьРазделительЭлементов(" "); + НастройкаСценарияСортировкиСостава.УстановитьИмяВложенного("metadata"); + НастройкиСортировки.ДобавитьСценарий(НастройкаСценарияСортировкиСостава); + Иначе + НастройкаСценарияСортировкиСостава = Новый НастройкаСценарияСортировкиСостава("xr:Item"); + НастройкаСценарияСортировкиСостава.УстановитьРодительскийЭлемент("Content", " "); + НастройкаСценарияСортировкиСостава.УстановитьРазделительЭлементов(" "); + НастройкаСценарияСортировкиСостава.УстановитьИмяВложенного("xr:Metadata"); + НастройкиСортировки.ДобавитьСценарий(НастройкаСценарияСортировкиСостава); + КонецЕсли; +КонецПроцедуры + +Процедура УстановитьУсловияОбработкиФайлаПодпискаНаСобытие(НастройкиСортировки) + Если НастройкиСортировки.ЕДТ() Тогда + НастройкаСценарияСортировкиСостава = Новый НастройкаСценарияСортировкиСостава("types"); + НастройкаСценарияСортировкиСостава.УстановитьРазделительЭлементов(" "); + НастройкиСортировки.ДобавитьСценарий(НастройкаСценарияСортировкиСостава); + Иначе + НастройкаСценарияСортировкиСостава = Новый НастройкаСценарияСортировкиСостава("v8:Type"); + НастройкаСценарияСортировкиСостава.УстановитьРазделительЭлементов(" "); + НастройкиСортировки.ДобавитьСценарий(НастройкаСценарияСортировкиСостава); + + НастройкаСценарияСортировкиСостава = Новый НастройкаСценарияСортировкиСостава("v8:TypeSet"); + НастройкаСценарияСортировкиСостава.УстановитьРазделительЭлементов(" "); + НастройкиСортировки.ДобавитьСценарий(НастройкаСценарияСортировкиСостава); + КонецЕсли; +КонецПроцедуры + Процедура УстановитьУсловияОбработкиФайлаПланОбмена(НастройкиСортировки) Если НастройкиСортировки.ЕДТ() Тогда Если НастройкиСортировки.Заимствованный() Тогда @@ -203,13 +247,11 @@ ЗначениеНастройки = НастройкиСценария.Получить(ИмяНастройки); Если ЗначениеЗаполнено(ЗначениеНастройки) Тогда - Если ТипЗнч(ЗначениеНастройки) <> Тип("Массив") Тогда ЗначениеНастройки = СтрРазделить(Строка(ЗначениеНастройки), ",", Ложь); КонецЕсли; Для Каждого Элемент Из ЗначениеНастройки Цикл - Если Не ЗначениеЗаполнено(Элемент) Тогда Продолжить; КонецЕсли; @@ -223,9 +265,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/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 7ffd342..36082f1 100644 --- a/tests/ТестПроверкаСценариевОбработки.os +++ b/tests/ТестПроверкаСценариевОбработки.os @@ -23,6 +23,8 @@ ВсеТесты.Добавить("СортировкаСостава_ExchangePlans"); ВсеТесты.Добавить("СортировкаСостава_FunctionalOptions"); ВсеТесты.Добавить("СортировкаСостава_Subsystems"); + ВсеТесты.Добавить("СортировкаСостава_CommonAttributes"); + ВсеТесты.Добавить("СортировкаСостава_EventSubscriptions"); ВсеТесты.Добавить("ТипыФайлов_ЗащищенныеМодулиНеОпределяютсяКакФайлИсходников"); ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСинхронизацияОбъектовМетаданныхВызываетИсключение"); ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурВызываетИсключение"); @@ -95,6 +97,16 @@ ПроверитьОбработкуФайлов("СортировкаСостава", "Subsystems\Ext"); КонецПроцедуры +Процедура СортировкаСостава_CommonAttributes() Экспорт + ПроверитьОбработкуФайлов("СортировкаСостава", "CommonAttributes\Configuration"); + ПроверитьОбработкуФайлов("СортировкаСостава", "CommonAttributes\Ext"); +КонецПроцедуры + +Процедура СортировкаСостава_EventSubscriptions() Экспорт + ПроверитьОбработкуФайлов("СортировкаСостава", "EventSubscriptions\Configuration"); + ПроверитьОбработкуФайлов("СортировкаСостава", "EventSubscriptions\Ext"); +КонецПроцедуры + Процедура ПроверитьОбработкуФайлов(ИмяСценария, ПодкаталогИсходников) ОбъектСценария = ПолучитьСценарий(ИмяСценария);