diff --git "a/features/\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265.feature" "b/features/\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265.feature" index dce4dec..2c5b92f 100644 --- "a/features/\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265.feature" +++ "b/features/\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265.feature" @@ -10,7 +10,7 @@ Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os configure -global" Тогда Код возврата команды "oscript" равен 0 И Я сообщаю вывод команды "oscript" - И Вывод команды "oscript" содержит "precommit4onec v23.12" + И Вывод команды "oscript" содержит "precommit4onec v24.03" И Вывод команды "oscript" содержит "Установленные настройки:" И Вывод команды "oscript" содержит "ИспользоватьСценарииРепозитория =" И Вывод команды "oscript" содержит "КаталогЛокальныхСценариев =" @@ -33,7 +33,7 @@ И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os configure -global" И Код возврата команды "oscript" равен 0 И Я сообщаю вывод команды "oscript" - И Вывод команды "oscript" содержит "precommit4onec v23.12" + И Вывод команды "oscript" содержит "precommit4onec v24.03" И Вывод команды "oscript" содержит "Установленные настройки: Базовые настройки" И Вывод команды "oscript" содержит "КаталогЛокальныхСценариев =" И Вывод команды "oscript" содержит "ГлобальныеСценарии = ВставкаКопирайтов.os,ДобавлениеПробеловПередКлючевымиСловами.os,ЗапретИспользованияПерейти.os,ИсправлениеНеКаноническогоНаписания.os,КорректировкаXMLФорм.os,ОбработкаЮнитТестов.os,ОтключениеПолнотекстовогоПоиска.os,ОтключениеРазрешенияИзменятьФорму.os,ПроверкаДублейПроцедурИФункций.os,ПроверкаКорректностиИнструкцийПрепроцессора.os,ПроверкаКорректностиОбластей.os,ПроверкаНецензурныхСлов.os,РазборОбычныхФормНаИсходники.os,РазборОтчетовОбработокРасширений.os,СинхронизацияОбъектовМетаданныхИФайлов.os,СортировкаСостава.os,УдалениеДублейМетаданных.os,УдалениеЛишнихКонцевыхПробелов.os,УдалениеЛишнихПустыхСтрок.os" diff --git "a/features/\320\237\321\200\320\276\321\201\321\202\321\213\320\265\320\232\320\276\320\274\320\260\320\275\320\264\321\213.feature" "b/features/\320\237\321\200\320\276\321\201\321\202\321\213\320\265\320\232\320\276\320\274\320\260\320\275\320\264\321\213.feature" index a644a7f..137c360 100644 --- "a/features/\320\237\321\200\320\276\321\201\321\202\321\213\320\265\320\232\320\276\320\274\320\260\320\275\320\264\321\213.feature" +++ "b/features/\320\237\321\200\320\276\321\201\321\202\321\213\320\265\320\232\320\276\320\274\320\260\320\275\320\264\321\213.feature" @@ -14,7 +14,7 @@ Сценарий: Получение версии продукта Когда Я выполняю команду "oscript" с параметрами "src/main.os version" Тогда Я сообщаю вывод команды "oscript" - И Вывод команды "oscript" содержит "23.12" + И Вывод команды "oscript" содержит "24.03" И Вывод команды "oscript" не содержит "precommit4onec v" И Код возврата команды "oscript" равен 0 @@ -22,7 +22,7 @@ Когда Я выполняю команду "oscript" с параметрами "src/main.os help" Тогда Вывод команды "oscript" содержит """ - precommit4onec v23.12 + precommit4onec v24.03 Возможные команды: help - Выводит справку по командам version - Выводит версию приложения @@ -37,7 +37,7 @@ Когда Я выполняю команду "oscript" с параметрами "src/main.os" Тогда Вывод команды "oscript" содержит """ - precommit4onec v23.12 + precommit4onec v24.03 Возможные команды: help - Выводит справку по командам version - Выводит версию приложения diff --git "a/features/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260\320\237\321\200\320\265\320\272\320\276\320\274\320\274\320\270\321\202\320\260.feature" "b/features/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260\320\237\321\200\320\265\320\272\320\276\320\274\320\274\320\270\321\202\320\260.feature" index 6453729..7bca57b 100644 --- "a/features/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260\320\237\321\200\320\265\320\272\320\276\320\274\320\274\320\270\321\202\320\260.feature" +++ "b/features/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260\320\237\321\200\320\265\320\272\320\276\320\274\320\274\320\270\321\202\320\260.feature" @@ -18,7 +18,7 @@ Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os install rep1" Тогда Код возврата команды "oscript" равен 0 И Я сообщаю вывод команды "oscript" - И Вывод команды "oscript" содержит "precommit4onec v23.12" + И Вывод команды "oscript" содержит "precommit4onec v24.03" И Вывод команды "oscript" содержит "Pre-commit hook для rep1 создан" И В каталоге ".git/hooks" репозитория "Репозиторий1" есть файл "pre-commit" @@ -28,14 +28,14 @@ И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os install ./" Тогда Код возврата команды "oscript" равен 0 И Я сообщаю вывод команды "oscript" - И Вывод команды "oscript" содержит "precommit4onec v23.12" + И Вывод команды "oscript" содержит "precommit4onec v24.03" И Вывод команды "oscript" содержит "не является репозиторием git" Сценарий: Установка precommit4onec во вложенные каталоги Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os install ./ -r" Тогда Код возврата команды "oscript" равен 0 И Я сообщаю вывод команды "oscript" - И Вывод команды "oscript" содержит "precommit4onec v23.12" + И Вывод команды "oscript" содержит "precommit4onec v24.03" И В каталоге ".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 v23.12" + И Вывод команды "oscript" содержит "precommit4onec v24.03" И В каталоге ".git/hooks" репозитория "Репозиторий1" есть файл "pre-commit" И В каталоге ".git/hooks" репозитория "Репозиторий2" есть файл "pre-commit" diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\270\320\241\320\276\321\201\321\202\320\260\320\262\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\270\320\241\320\276\321\201\321\202\320\260\320\262\320\260.os" new file mode 100644 index 0000000..683aa50 --- /dev/null +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\270\320\241\320\276\321\201\321\202\320\260\320\262\320\260.os" @@ -0,0 +1,93 @@ +/////////////////////////////////////////////////////////////////// +// Содержит настройки сценария для сортировки блока состав +// конкретного файла +// +// (с) BIA Technologies, LLC +// +/////////////////////////////////////////////////////////////////// + +Перем ИмяЭлемента; // имя (или паттерн) для определения элемента +Перем РазделительЭлементов; // разделитель элементов между собой +Перем РодительскийЭлемент; // родительский элемент, внутри которого осуществляетсяя поиск +Перем РодительскийЭлементЗавершение; // Завершение родительского элемента, если отличается от начала +Перем ОтступРодительскогоЭлемента; // отступ родительского элемента от начала строки +Перем ШаблонПоискаСостава; // Шаблон (регулярное выражение) для поиска блока, содержащего состав + // для сортировки +Перем ШаблонПоискаЭлементов; // Шаблон (регулярное выражение) для поиска элементов внутри блока с составом +Перем ИмеетАтрибуты; // Признак-подсказка о наличии атрибутов у элемента +Перем ИмяВложенного; // Имя вложенного тега в теге элемента + +Процедура ПриСозданииОбъекта(ПараметрИмяЭлемента) + ИмяЭлемента = ПараметрИмяЭлемента; + РазделительЭлементов = Символы.ПС; + РодительскийЭлемент = ""; + ОтступРодительскогоЭлемента = ""; + ШаблонПоискаСостава = ""; + ШаблонПоискаЭлементов = ""; + ИмеетАтрибуты = Ложь; + ИмяВложенного = ""; +КонецПроцедуры + +Процедура УстановитьРазделительЭлементов(Разделитель) Экспорт + РазделительЭлементов = Символы.ПС + Разделитель; +КонецПроцедуры + +Процедура УстановитьРодительскийЭлемент(Имя, Отступ, ИмяЗавершение = "") Экспорт + РодительскийЭлемент = Имя; + ОтступРодительскогоЭлемента = Отступ; + Если ПустаяСтрока(ИмяЗавершение) Тогда + РодительскийЭлементЗавершение = РодительскийЭлемент; + Иначе + РодительскийЭлементЗавершение = ИмяЗавершение; + КонецЕсли; +КонецПроцедуры + +Процедура УставитьШаблоныПоиска(ШаблонСостава, ШаблонЭлементов) Экспорт + ШаблонПоискаСостава = ШаблонСостава; + ШаблонПоискаЭлементов = ШаблонЭлементов; +КонецПроцедуры + +Функция ШаблонПоискаСостава() Экспорт + Возврат РегулярныеВыражения.Создать(ШаблонПоискаСостава); +КонецФункции + +Функция ШаблонПоискаЭлементов() Экспорт + Возврат ШаблонПоискаЭлементов; +КонецФункции + +Функция ИмяЭлемента() Экспорт + Возврат ИмяЭлемента; +КонецФункции + +Функция РазделительЭлементов() Экспорт + Возврат РазделительЭлементов; +КонецФункции + +Функция ЕстьРодительскийЭлемент() Экспорт + Возврат ЗначениеЗаполнено(РодительскийЭлемент); +КонецФункции + +Функция РодительскийЭлемент() Экспорт + Возврат Новый Структура("Отступ, Имя, Завершение", + ОтступРодительскогоЭлемента, РодительскийЭлемент, РодительскийЭлементЗавершение); +КонецФункции + +Процедура УстановитьЕстьАтрибуты() Экспорт + ИмеетАтрибуты = Истина; +КонецПроцедуры + +Функция САтрибутами() Экспорт + Возврат ИмеетАтрибуты; +КонецФункции + +Процедура УстановитьИмяВложенного(Имя) Экспорт + ИмяВложенного = Имя; +КонецПроцедуры + +Функция ЕстьВложенный() Экспорт + Возврат ЗначениеЗаполнено(ИмяВложенного); +КонецФункции + +Функция ИмяВложенного() Экспорт + Возврат ИмяВложенного; +КонецФункции diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\240\320\265\320\277\320\276\320\267\320\270\321\202\320\276\321\200\320\270\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\240\320\265\320\277\320\276\320\267\320\270\321\202\320\276\321\200\320\270\321\217.os" index 22c5e24..36720d9 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\240\320\265\320\277\320\276\320\267\320\270\321\202\320\276\321\200\320\270\321\217.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\240\320\265\320\277\320\276\320\267\320\270\321\202\320\276\321\200\320\270\321\217.os" @@ -1,5 +1,4 @@ -// -/////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////// // Работает с настройками в конфигурационном файле репозитория 1С // в Git // @@ -171,9 +170,9 @@ ВызватьИсключение "Не указано имя приложения"; КонецЕсли; - тмп = Конфигурация.Получить(ИмяПриложения); - Тмп.Удалить(ИмяНастройки); - Конфигурация.Вставить(ИмяПриложения,Тмп); + Временный = Конфигурация.Получить(ИмяПриложения); + Временный.Удалить(ИмяНастройки); + Конфигурация.Вставить(ИмяПриложения, Временный); ОбновитьКонфигурационныйФайл(); КонецПроцедуры // УдалитьНастройкиПриложения() @@ -189,6 +188,8 @@ ВызватьИсключение "Необходимо выполнить инициализацию"; КонецЕсли; + + Возврат Истина; КонецФункции // ПроверкаИнициализации() @@ -216,9 +217,7 @@ ПарсерJSON = Новый ПарсерJSON; ТекстКонфигурации = ПарсерJSON.ЗаписатьJSON(Конфигурация); - Запись = Новый ЗаписьТекста(АдресКонфигурационногоФайла, КодировкаТекста.UTF8NoBOM); - Запись.Записать(ТекстКонфигурации); - Запись.Закрыть(); + ФайловыеОперации.ЗаписатьТекстФайла(АдресКонфигурационногоФайла, ТекстКонфигурации); НовыйКонфиг = Ложь; @@ -259,9 +258,7 @@ Файл = Новый Файл(АдресКонфигурационногоФайла); Если Файл.Существует() Тогда - Чтение = Новый ЧтениеТекста(АдресКонфигурационногоФайла, КодировкаТекста.UTF8NoBOM); - ТекстКонфигурации = Чтение.Прочитать(); - Чтение.Закрыть(); + ТекстКонфигурации = ФайловыеОперации.ПрочитатьТекстФайла(АдресКонфигурационногоФайла); ПарсерJSON = Новый ПарсерJSON; Конфигурация = ПарсерJSON.ПрочитатьJSON(ТекстКонфигурации); @@ -279,4 +276,4 @@ Процедура ОбновитьКонфигурацию() Экспорт ОбновлятьКонфигурацию = Истина; -КонецПроцедуры \ No newline at end of file +КонецПроцедуры diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\270\320\241\320\276\321\201\321\202\320\260\320\262\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\270\320\241\320\276\321\201\321\202\320\260\320\262\320\260.os" new file mode 100644 index 0000000..7712d8d --- /dev/null +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\270\320\241\320\276\321\201\321\202\320\260\320\262\320\260.os" @@ -0,0 +1,75 @@ +/////////////////////////////////////////////////////////////////// +// Содержит настройки для сортировки конкретного файла +// +// (с) BIA Technologies, LLC +// +/////////////////////////////////////////////////////////////////// + +// BSLLS:ExportVariables-off Геттер не создать +Перем Тип Экспорт; // Тип обрабатываемого файла +// BSLLS:ExportVariables-on +Перем ЕДТ; // Признак формата ЕДТ содержимого +Перем Заимствованный; // Признак отношения файла к расширению и заимствованности из основной конфигурации +Перем Сценарии; // Сценарии обработки файла +Перем Пустой; // Признак отсутствия настроек + +// Конструктор создания на основании анализируемого файла +Процедура ПриСозданииОбъекта(АнализируемыйФайл) + ОписаниеПоФайлу = ТипыОбъектовДляСортировки.ПоФайлу(АнализируемыйФайл); + Если ОписаниеПоФайлу.Тип = ТипыОбъектовДляСортировки.Неизвестный Тогда + Пустой = Истина; + Возврат; + КонецЕсли; + + Пустой = Ложь; + Тип = ОписаниеПоФайлу.Тип; + ЕДТ = ОписаниеПоФайлу.ЕДТ; + Заимствованный = ОписаниеПоФайлу.Заимствованный; + Сценарии = Новый Массив; +КонецПроцедуры + +Функция Пустой() Экспорт + Возврат Пустой; +КонецФункции + +Функция ЕДТ() Экспорт + Возврат ЕДТ; +КонецФункции + +Функция Заимствованный() Экспорт + Возврат Заимствованный; +КонецФункции + +Процедура ДобавитьСценарий(НастройкиСценария) Экспорт + + // 1-я группа: состав объектов + ШаблонПоискаСостава = ""; + Если Тип = ТипыОбъектовДляСортировки.Конфигурация И ЕДТ Тогда + // 2-я группа: завершающий блок ЕДТ + ШаблонПоискаСостава = "\s*()[ \t]*\n*"; + ИначеЕсли НастройкиСценария.ЕстьРодительскийЭлемент() Тогда + РодительскийЭлемент = НастройкиСценария.РодительскийЭлемент(); + ШаблонПоискаСостава = СтрШаблон("\s*<%1>([\w\W]*?)<\/%2>[ \t]*\n*", + РодительскийЭлемент.Имя, РодительскийЭлемент.Завершение); + Иначе + ШаблонПоискаСостава = СтрШаблон("\s*(<%1>[\w\W]*<\/%1>)[ \t]*\n*", НастройкиСценария.ИмяЭлемента()); + КонецЕсли; + + // 1-я группа: имя объекта состава + ШаблонПоискаЭлементов = ""; + ТекстАтрибутов = ?(НастройкиСценария.САтрибутами(), "\s+[^>]+", ""); + Если НастройкиСценария.ЕстьВложенный() Тогда + ШаблонПоискаЭлементов = СтрШаблон( // BSLLS:NestedFunctionInParameters-off используются геттеры + "<%1%2>[\w\W]*?<%3>([^<]*?)<\/%3>[\w\W]*?<\/%1>", + НастройкиСценария.ИмяЭлемента(), ТекстАтрибутов, НастройкиСценария.ИмяВложенного()); + Иначе + ШаблонПоискаЭлементов = СтрШаблон("<%1%2>([^<]*?)<\/%1>", НастройкиСценария.ИмяЭлемента(), ТекстАтрибутов); + КонецЕсли; + + НастройкиСценария.УставитьШаблоныПоиска(ШаблонПоискаСостава, ШаблонПоискаЭлементов); + Сценарии.Добавить(НастройкиСценария); +КонецПроцедуры + +Функция Сценарии() Экспорт + Возврат Сценарии; +КонецФункции diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\321\217\320\237\320\276\321\201\321\202\320\260\320\262\321\211\320\270\320\272\320\260.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\321\217\320\237\320\276\321\201\321\202\320\260\320\262\321\211\320\270\320\272\320\260.os" index 2ad7bbf..7e5dc02 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\321\217\320\237\320\276\321\201\321\202\320\260\320\262\321\211\320\270\320\272\320\260.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\321\217\320\237\320\276\321\201\321\202\320\260\320\262\321\211\320\270\320\272\320\260.os" @@ -127,6 +127,11 @@ КонецПроцедуры Функция ИдентификаторОбъекта(ИмяФайла) + Файл = Новый Файл(ИмяФайла); + Если НЕ Файл.Существует() Тогда + Возврат ""; + КонецЕсли; + ДанныеОбъекта = ФайловыеОперации.ПрочитатьТекстФайла(ИмяФайла); Вхождения = НайтиВхождения(ДанныеОбъекта, "<.+ uuid=""(\S{36})"">"); diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.os" index 7166527..af0cf71 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.os" @@ -43,6 +43,8 @@ КаталогиТиповМетаданных.Добавить("FunctionalOptionsParameters", "FunctionalOptionsParameter"); КаталогиТиповМетаданных.Добавить("HTTPServices", "HTTPService"); КаталогиТиповМетаданных.Добавить("InformationRegisters", "InformationRegister"); + КаталогиТиповМетаданных.Добавить("IntegrationServices", "IntegrationService"); + КаталогиТиповМетаданных.Добавить("Interfaces", "Interface"); КаталогиТиповМетаданных.Добавить("Reports", "Report"); КаталогиТиповМетаданных.Добавить("Roles", "Role"); КаталогиТиповМетаданных.Добавить("ScheduledJobs", "ScheduledJob"); diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" index 041eba7..233bd3f 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" @@ -24,7 +24,7 @@ // Функция ВерсияПродукта() Экспорт - Возврат "23.12"; + Возврат "24.03"; КонецФункции // ВерсияПродукта diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\240\320\265\320\263\321\203\320\273\321\217\321\200\320\275\321\213\320\265\320\222\321\213\321\200\320\260\320\266\320\265\320\275\320\270\321\217.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\240\320\265\320\263\321\203\320\273\321\217\321\200\320\275\321\213\320\265\320\222\321\213\321\200\320\260\320\266\320\265\320\275\320\270\321\217.os" index cebcd99..d87059e 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\240\320\265\320\263\321\203\320\273\321\217\321\200\320\275\321\213\320\265\320\222\321\213\321\200\320\260\320\266\320\265\320\275\320\270\321\217.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\240\320\265\320\263\321\203\320\273\321\217\321\200\320\275\321\213\320\265\320\222\321\213\321\200\320\260\320\266\320\265\320\275\320\270\321\217.os" @@ -37,9 +37,9 @@ Элементы.ДочерниеЭлементыСтрока = ДочерниеЭлементы[0].Группы[2].Значение; Если ЭтоEDT Тогда - РегекспМетаданные = Создать("^\s+<[\w]+>([a-zA-Z]+)\.([а-яa-zA-ZА-Я0-9_]+)<\/[\w]+>"); + РегекспМетаданные = Создать("^\s+<[\w]+>([a-zA-Z]+)\.([а-яёa-zA-ZА-ЯЁ0-9_]+)<\/[\w]+>"); Иначе - РегекспМетаданные = Создать("^\s+<([\w]+)>([а-яa-zA-ZА-Я0-9_]+)<\/[\w]+>"); + РегекспМетаданные = Создать("^\s+<([\w]+)>([а-яёa-zA-ZА-ЯЁ0-9_]+)<\/[\w]+>"); КонецЕсли; Элементы.Совпадения = РегекспМетаданные.НайтиСовпадения(Элементы.ДочерниеЭлементыСтрока); diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\242\320\270\320\277\321\213\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\224\320\273\321\217\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\270.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\242\320\270\320\277\321\213\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\224\320\273\321\217\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\270.os" new file mode 100644 index 0000000..50ea2c3 --- /dev/null +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\242\320\270\320\277\321\213\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\224\320\273\321\217\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\270.os" @@ -0,0 +1,51 @@ +/////////////////////////////////////////////////////////////////////////////// +// +// Служебный модуль-перечисление с типама объектов для сортировки +// +// (с) BIA Technologies, LLC +// +/////////////////////////////////////////////////////////////////////////////// + +// BSLLS:ExportVariables-off + +Перем Конфигурация Экспорт; +Перем ОпределяемыйТип Экспорт; +Перем ПланОбмена Экспорт; +Перем ФункциональнаяОпция Экспорт; +Перем Подсистема Экспорт; +Перем Неизвестный Экспорт; + +// BSLLS:ExportVariables-on + +// По файлу определеяет тип сорируемого объекта и некоторые дополнительные данные +Функция ПоФайлу(АнализируемыйФайл) Экспорт + Описание = Новый Структура("Тип, Заимствованный, ЕДТ", Неизвестный, Ложь, Ложь); + Описание.Заимствованный = ТипыФайлов.ЭтоФайлЗаимствованногоОбъектаРасширения(АнализируемыйФайл); + + ЭтоЕДТ = ТипыФайлов.ЭтоФайлОписанияКонфигурацииEDT(АнализируемыйФайл); + Если ЭтоЕДТ Или ТипыФайлов.ЭтоФайлОписанияКонфигурации(АнализируемыйФайл) Тогда + Описание.Тип = Конфигурация; + Описание.ЕДТ = ЭтоЕДТ; + ИначеЕсли ТипыФайлов.ЭтоФайлОписанияОпределяемогоТипа(АнализируемыйФайл) Тогда + Описание.Тип = ОпределяемыйТип; + Описание.ЕДТ = ТипыФайлов.ЭтоФайлОписанияОпределяемогоТипаEDT(АнализируемыйФайл); + ИначеЕсли ТипыФайлов.ЭтоФайлОписанияПланаОбмена(АнализируемыйФайл) Тогда + Описание.Тип = ПланОбмена; + Описание.ЕДТ = ТипыФайлов.ЭтоФайлОписанияПланаОбменаEDT(АнализируемыйФайл); + ИначеЕсли ТипыФайлов.ЭтоФайлОписанияФункциональнойОпции(АнализируемыйФайл) Тогда + Описание.Тип = ФункциональнаяОпция; + Описание.ЕДТ = ТипыФайлов.ЭтоФайлОписанияФункциональнойОпцииEDT(АнализируемыйФайл); + ИначеЕсли ТипыФайлов.ЭтоФайлОписанияПодсистемы(АнализируемыйФайл) Тогда + Описание.Тип = Подсистема; + Описание.ЕДТ = ТипыФайлов.ЭтоФайлОписанияПодсистемыEDT(АнализируемыйФайл); + КонецЕсли; + + Возврат Описание; +КонецФункции + +Конфигурация = "Конфигурация"; +ОпределяемыйТип = "ОпределяемыйТип"; +ПланОбмена = "ПланОбмена"; +ФункциональнаяОпция = "ФункциональнаяОпция"; +Подсистема = "Подсистема"; +Неизвестный = ""; \ No newline at end of file diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\242\320\270\320\277\321\213\320\244\320\260\320\271\320\273\320\276\320\262.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\242\320\270\320\277\321\213\320\244\320\260\320\271\320\273\320\276\320\262.os" index 8bf22d7..1b27382 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\242\320\270\320\277\321\213\320\244\320\260\320\271\320\273\320\276\320\262.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\242\320\270\320\277\321\213\320\244\320\260\320\271\320\273\320\276\320\262.os" @@ -58,7 +58,7 @@ // Функция ЭтоФайлОбычнойФормы(Файл) Экспорт - Возврат СтрСравнить(Файл.Имя, "Form.bin") = 0; + Возврат СтрСравнить(Файл.Имя, "Form.bin") = 0 Или СтрСравнить(Файл.Имя, "Form.oform") = 0; КонецФункции // ЭтоФайлОбычнойФормы @@ -247,6 +247,25 @@ Возврат СтрСравнить(Файл.Имя, "RecordSetModule.bsl") = 0; КонецФункции +// По косвенным признакам опрделеяет принадлежность анализируемого файла к заимствованному в расширение +Функция ЭтоФайлЗаимствованногоОбъектаРасширения(Файл) Экспорт + Результат = Ложь; + + Если НЕ (Файл.Существует() И Файл.ЭтоФайл())Тогда + Возврат Результат; + КонецЕсли; + + Если ЭтоФайлОписанияПланаОбменаКонфигуратора(Файл) Тогда + // для плана обмена анализируется файл состава, поэтому смотрим на другой тег + ОбязательныйТегРасширения = ВРег(""); + Иначе + ОбязательныйТегРасширения = ВРег(""); + КонецЕсли; + + ТекстФайла = ВРег(ФайловыеОперации.ПрочитатьТекстФайла(Файл.ПолноеИмя)); + Возврат СтрНайти(ТекстФайла, ОбязательныйТегРасширения) > 0; +КонецФункции + Функция ПолучитьОтносительныйПуть(Путь, Надкаталог) Результат = Путь; diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\244\320\260\320\271\320\273\320\276\320\262\321\213\320\265\320\236\320\277\320\265\321\200\320\260\321\206\320\270\320\270.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\244\320\260\320\271\320\273\320\276\320\262\321\213\320\265\320\236\320\277\320\265\321\200\320\260\321\206\320\270\320\270.os" index e4ab86d..e6a3885 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\244\320\260\320\271\320\273\320\276\320\262\321\213\320\265\320\236\320\277\320\265\321\200\320\260\321\206\320\270\320\270.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\244\320\260\320\271\320\273\320\276\320\262\321\213\320\265\320\236\320\277\320\265\321\200\320\260\321\206\320\270\320\270.os" @@ -81,31 +81,31 @@ // Перечисление - Кодировка файла // Функция ОпределитьКодировку(ПутьКФайлу) Экспорт + + Кодировка = КодировкаТекста.UTF8NoBOM; + Файл = Новый Файл(ПутьКФайлу); + Если НЕ Файл.Существует() ИЛИ НЕ Файл.ЭтоФайл() Тогда + Возврат Кодировка; + КонецЕсли; МаркерUTFBOM = СтрРазделить("239 187 191", " "); ЧтениеДанных = Новый ЧтениеДанных(ПутьКФайлу); Буфер = Новый БуферДвоичныхДанных(МаркерUTFBOM.Количество()); - ЧтениеДанных.ПрочитатьВБуферДвоичныхДанных(Буфер, , МаркерUTFBOM.Количество()); - Cч = 0; - ЕстьBOM = Истина; - + ЧтениеДанных.Закрыть(); + + Сч = 0; Для Каждого Байт ИЗ Буфер Цикл - - Если МаркерUTFBOM[Cч] <> Строка(Байт) Тогда - - ЕстьBOM = Ложь; - Прервать; - + Если МаркерUTFBOM[Сч] <> Строка(Байт) Тогда + Возврат Кодировка; КонецЕсли; - Cч = Cч + 1; - + Сч = Сч + 1; КонецЦикла; - ЧтениеДанных.Закрыть(); + Кодировка = КодировкаТекста.UTF8; - Возврат ?(ЕстьBOM, КодировкаТекста.UTF8, КодировкаТекста.UTF8NoBOM); + Возврат Кодировка; КонецФункции // ОпределитьКодировку diff --git "a/src/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270/\320\222\321\201\321\202\320\260\320\262\320\272\320\260\320\232\320\276\320\277\320\270\321\200\320\260\320\271\321\202\320\276\320\262.os" "b/src/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270/\320\222\321\201\321\202\320\260\320\262\320\272\320\260\320\232\320\276\320\277\320\270\321\200\320\260\320\271\321\202\320\276\320\262.os" index 91097df..bd620f0 100644 --- "a/src/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270/\320\222\321\201\321\202\320\260\320\262\320\272\320\260\320\232\320\276\320\277\320\270\321\200\320\260\320\271\321\202\320\276\320\262.os" +++ "b/src/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270/\320\222\321\201\321\202\320\260\320\262\320\272\320\260\320\232\320\276\320\277\320\270\321\200\320\260\320\271\321\202\320\276\320\262.os" @@ -110,9 +110,7 @@ ТекстЗамены = СтрШаблон(" %1-%2", Совпадение.Группы[1].Значение, Год(ТекущаяУниверсальнаяДата())); ТекстКопирайта = РегуляркаДатыКопирайта.Заменить(ТекстКопирайта, ТекстЗамены); - ЗаписьТекста = Новый ЗаписьТекста(ПутьКФайлуКопирайта, КодировкаТекста.UTF8NoBOM, , , Символы.ПС); - ЗаписьТекста.Записать(ТекстКопирайта); - ЗаписьТекста.Закрыть(); + ФайловыеОперации.ЗаписатьТекстФайла(ПутьКФайлуКопирайта, ТекстКопирайта); ДополнительныеПараметры.ИзмененныеКаталоги.Добавить(ПутьКФайлуКопирайта); КонецЕсли; @@ -122,13 +120,8 @@ Функция УстановитьКопирайтПриНеобходимости(ПутьКФайлуМодуля, ПутьКФайлуКопирайта) - Текст = Новый ЧтениеТекста(); - Текст.Открыть(ПутьКФайлуКопирайта, КодировкаТекста.UTF8NoBOM); - - ТекстКопирайта = Текст.Прочитать(); - ТекстКопирайта = СокрЛП(ТекстКопирайта); - Текст.Закрыть(); - + ТекстКопирайта = СокрЛП(ФайловыеОперации.ПрочитатьТекстФайла(ПутьКФайлуКопирайта)); + ТекстОшибки = ""; РегуляркаОтключитьСценарий = Новый РегулярноеВыражение(ИгнорируемыеТегиСтрокой()); @@ -141,11 +134,8 @@ НовыйТекстМодуля = ""; - Текст = Новый ЧтениеТекста(); - Текст.Открыть(ПутьКФайлуМодуля, КодировкаТекста.UTF8NoBOM); - ТекстМодуля = Текст.Прочитать(); - Текст.Закрыть(); - + ТекстМодуля = ФайловыеОперации.ПрочитатьТекстФайла(ПутьКФайлуМодуля); + Если НЕ ПустаяСтрока(ТекстМодуля) И НЕ РегуляркаОтключитьСценарий.Совпадает(ТекстМодуля) Тогда КоллекцияСовпадений = РегуляркаКопирайта.НайтиСовпадения(ТекстМодуля); @@ -180,9 +170,7 @@ Если ЗначениеЗаполнено(ТекстОшибки) Тогда - ЗаписьТекста = Новый ЗаписьТекста(ПутьКФайлуМодуля, КодировкаТекста.UTF8NoBOM, , , Символы.ПС); - ЗаписьТекста.Записать(НовыйТекстМодуля); - ЗаписьТекста.Закрыть(); + ФайловыеОперации.ЗаписатьТекстФайла(ПутьКФайлуМодуля, НовыйТекстМодуля); Возврат Истина; diff --git "a/src/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270/\320\227\320\260\320\277\321\200\320\265\321\202\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217\320\237\320\265\321\200\320\265\320\271\321\202\320\270.os" "b/src/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270/\320\227\320\260\320\277\321\200\320\265\321\202\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217\320\237\320\265\321\200\320\265\320\271\321\202\320\270.os" index 1acd170..82802d6 100644 --- "a/src/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270/\320\227\320\260\320\277\321\200\320\265\321\202\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217\320\237\320\265\321\200\320\265\320\271\321\202\320\270.os" +++ "b/src/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270/\320\227\320\260\320\277\321\200\320\265\321\202\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217\320\237\320\265\321\200\320\265\320\271\321\202\320\270.os" @@ -56,7 +56,7 @@ ТекстМодуля = ФайловыеОперации.ПрочитатьТекстФайла(ПутьКФайлуМодуля); ТекстОшибки = ""; - ШаблонПоиска = Новый РегулярноеВыражение("[\s;]+?[^|]Перейти\s+?~[a-zA-ZА-Яа-я0-9_]+"); + ШаблонПоиска = Новый РегулярноеВыражение("[\s;]+?[^|]Перейти\s+?~[a-zA-ZА-ЯЁа-яё0-9_]+"); ШаблонПоиска.Многострочный = Истина; ШаблонПоиска.ИгнорироватьРегистр = Истина; diff --git "a/src/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270/\320\236\321\202\320\272\320\273\321\216\321\207\320\265\320\275\320\270\320\265\320\237\320\276\320\273\320\275\320\276\321\202\320\265\320\272\321\201\321\202\320\276\320\262\320\276\320\263\320\276\320\237\320\276\320\270\321\201\320\272\320\260.os" "b/src/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270/\320\236\321\202\320\272\320\273\321\216\321\207\320\265\320\275\320\270\320\265\320\237\320\276\320\273\320\275\320\276\321\202\320\265\320\272\321\201\321\202\320\276\320\262\320\276\320\263\320\276\320\237\320\276\320\270\321\201\320\272\320\260.os" index a7a821a..db2146e 100644 --- "a/src/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270/\320\236\321\202\320\272\320\273\321\216\321\207\320\265\320\275\320\270\320\265\320\237\320\276\320\273\320\275\320\276\321\202\320\265\320\272\321\201\321\202\320\276\320\262\320\276\320\263\320\276\320\237\320\276\320\270\321\201\320\272\320\260.os" +++ "b/src/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270/\320\236\321\202\320\272\320\273\321\216\321\207\320\265\320\275\320\270\320\265\320\237\320\276\320\273\320\275\320\276\321\202\320\265\320\272\321\201\321\202\320\276\320\262\320\276\320\263\320\276\320\237\320\276\320\270\321\201\320\272\320\260.os" @@ -184,7 +184,7 @@ Функция ОбработатьСтандартныеАтрибуты(СодержимоеФайла, Исключения) - СтандартныеАтрибуты = "Attribute name=""([а-яa-zA-ZА-Я0-9_]+)"">[\w\W]+?(((Use)<\/xr:FullTextSearch>)|<\/xr:StandardAttribute>)"; + СтандартныеАтрибуты = "Attribute name=""([а-яёa-zA-ZА-ЯЁ0-9_]+)"">[\w\W]+?(((Use)<\/xr:FullTextSearch>)|<\/xr:StandardAttribute>)"; Регексп = Новый РегулярноеВыражение(СтандартныеАтрибуты); Регексп.ИгнорироватьРегистр = Истина; @@ -208,7 +208,7 @@ Функция ОбработатьРеквизиты(СодержимоеФайла, Исключения) - ПоискРеквизиты = "([а-яa-zA-ZА-Я0-9_]+)<\/Name>[\w\W]+?((Use)<\/FullTextSearch>)|<\/Properties>|<\/attributes>"; + ПоискРеквизиты = "([а-яёa-zA-ZА-ЯЁ0-9_]+)<\/Name>[\w\W]+?((Use)<\/FullTextSearch>)|<\/Properties>|<\/attributes>"; Регексп = Новый РегулярноеВыражение(ПоискРеквизиты); Регексп.ИгнорироватьРегистр = Истина; @@ -234,12 +234,12 @@ Если ЭтоEDT Тогда - Шаблон = "<\/producedTypes>\s+([а-яa-zA-ZА-Я0-9_]+)<\/name>|()([а-яa-zA-ZА-Я0-9_]+)<\/Name>|()(Use)<\/FullTextSearch>"; + Шаблон = "<\/producedTypes>\s+([а-яёa-zA-ZА-ЯЁ0-9_]+)<\/name>|()([а-яёa-zA-ZА-ЯЁ0-9_]+)<\/Name>|()(Use)<\/FullTextSearch>"; ШаблонЗамены = "(<\/producedTypes>\s+%1<\/name>[\w\W]+?%2<\/Name>[\w\W]+?)"; Иначе - Шаблон = "TabularSection\.[\w\W]+?\.([\w\W]+?)""|()([а-яa-zA-ZА-Я0-9_]+)<\/Name>|()(Use)<\/FullTextSearch>"; + Шаблон = "TabularSection\.[\w\W]+?\.([\w\W]+?)""|()([а-яёa-zA-ZА-ЯЁ0-9_]+)<\/Name>|()(Use)<\/FullTextSearch>"; ШаблонЗамены = "(TabularSection\.[\w\W]+?\.%1""[\w\W]+?%2<\/Name>[\w\W]+?)"; КонецЕсли; diff --git "a/src/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\237\321\200\320\276\321\206\320\265\320\264\321\203\321\200\320\230\320\244\321\203\320\275\320\272\321\206\320\270\320\271.os" "b/src/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\237\321\200\320\276\321\206\320\265\320\264\321\203\321\200\320\230\320\244\321\203\320\275\320\272\321\206\320\270\320\271.os" index 910b972..5a4108f 100644 --- "a/src/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\237\321\200\320\276\321\206\320\265\320\264\321\203\321\200\320\230\320\244\321\203\320\275\320\272\321\206\320\270\320\271.os" +++ "b/src/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\237\321\200\320\276\321\206\320\265\320\264\321\203\321\200\320\230\320\244\321\203\320\275\320\272\321\206\320\270\320\271.os" @@ -59,11 +59,7 @@ // Процедура ПроверитьНаДублированиеМетодов(ПутьКФайлуМодуля) - Текст = Новый ЧтениеТекста(); - Текст.Открыть(ПутьКФайлуМодуля, КодировкаТекста.UTF8NoBOM); - - ТекстМодуля = Текст.Прочитать(); - Текст.Закрыть(); + ТекстМодуля = ФайловыеОперации.ПрочитатьТекстФайла(ПутьКФайлуМодуля); ТекстОшибки = ""; diff --git "a/src/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270\320\236\320\261\320\273\320\260\321\201\321\202\320\265\320\271.os" "b/src/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270\320\236\320\261\320\273\320\260\321\201\321\202\320\265\320\271.os" index 55f5472..1ba3597 100644 --- "a/src/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270\320\236\320\261\320\273\320\260\321\201\321\202\320\265\320\271.os" +++ "b/src/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\232\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\276\321\201\321\202\320\270\320\236\320\261\320\273\320\260\321\201\321\202\320\265\320\271.os" @@ -56,7 +56,7 @@ ТекстМодуля = ФайловыеОперации.ПрочитатьТекстФайла(ПутьКФайлуМодуля); ТекстОшибки = ""; - ШаблонПоиска = Новый РегулярноеВыражение("^[\t ]*?#[\t ]*?(?:(?:Область[\t ]+?([a-zA-Zа-яА-Я0-9_]+?))|(?:КонецОбласти))[\t ]*?(?:\/\/.*)*$"); + ШаблонПоиска = Новый РегулярноеВыражение("^[\t ]*?#[\t ]*?(?:(?:Область[\t ]+?([a-zA-Zа-яёА-ЯЁ0-9_]+?))|(?:КонецОбласти))[\t ]*?(?:\/\/.*)*$"); ШаблонПоиска.Многострочный = Истина; ШаблонПоиска.ИгнорироватьРегистр = Истина; diff --git "a/src/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260.os" "b/src/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260.os" index 4eb84b3..910aac3 100644 --- "a/src/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260.os" +++ "b/src/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260.os" @@ -4,6 +4,9 @@ // /////////////////////////////////////////////////////////////////////////////// +Перем ПрефиксыСортировки; // перечень префиксов для сортировки объектов +Перем НесортируемыеТипыМетаданных; // перечень имен метаданных, пропускаемых при сортировке + // Возвращает имя сценария обработки файлов // // Возвращаемое значение: @@ -27,15 +30,16 @@ // Возвращаемое значение: // Булево - Признак выполненной обработки файла // -Функция ОбработатьФайл(АнализируемыйФайл, КаталогИсходныхФайлов, ДополнительныеПараметры) Экспорт - +// BSLLS:UnusedParameters-off API +Функция ОбработатьФайл(АнализируемыйФайл, КаталогИсходныхФайлов, ДополнительныеПараметры) Экспорт +// BSLLS:UnusedParameters-on ФайлОбработан = Ложь; Если АнализируемыйФайл.Существует() Тогда НастройкиСценария = ДополнительныеПараметры.Настройки.Получить(ИмяСценария()); ПараметрыСортировки = ПараметрыСортировки(АнализируемыйФайл, НастройкиСценария); - Если ЗначениеЗаполнено(ПараметрыСортировки) Тогда + Если НЕ (ПараметрыСортировки = Неопределено ИЛИ ПараметрыСортировки.Пустой()) Тогда ПолноеИмяФайла = АнализируемыйФайл.ПолноеИмя; ДополнительныеПараметры.Лог.Информация("Обработка файла '%1' по сценарию '%2'", ПолноеИмяФайла, ИмяСценария()); @@ -54,88 +58,136 @@ КонецФункции -Функция ПараметрыСортировки(АнализируемыйФайл, НастройкиСценария) - - Результат = Новый Структура(); - - ОпределитьОбрабатываемыйОбъект(Результат, АнализируемыйФайл, НастройкиСценария); - - Если ЗначениеЗаполнено(Результат) Тогда - - ОпределитьСтруктуруСостава(Результат); - ОпределитьШаблоныПоиска(Результат); +#Область ПодготовкаСценариевОбработки +Функция ПараметрыСортировки(АнализируемыйФайл, НастройкиСценария) + НастройкиСортировкиСостава = Новый НастройкиСортировкиСостава(АнализируемыйФайл); + Если Не НастройкиСортировкиСостава.Пустой() Тогда + ОтключенныеОбъекты = ОтключенныеОбъекты(НастройкиСценария); + Если ОтключенныеОбъекты.Найти(НРег(НастройкиСортировкиСостава.Тип)) <> Неопределено Тогда + // Пропускаем + Возврат Неопределено; + КонецЕсли; + + УстановитьУсловияОбработкиФайла(НастройкиСортировкиСостава); + ПрефиксыСортировки = ПрефиксыСортировки(НастройкиСценария); + НесортируемыеТипыМетаданных = НесортируемыеТипыМетаданных(); КонецЕсли; - - Возврат Результат; - + Возврат НастройкиСортировкиСостава; КонецФункции -Процедура ОпределитьОбрабатываемыйОбъект(ПараметрыСортировки, АнализируемыйФайл, НастройкиСценария) - - Объекты = ОбрабатываемыеОбъекты(); - - ОбрабатываемыйОбъект = ""; - - ЭтоЕДТ = ТипыФайлов.ЭтоФайлОписанияКонфигурацииEDT(АнализируемыйФайл); - Если ЭтоЕДТ Или ТипыФайлов.ЭтоФайлОписанияКонфигурации(АнализируемыйФайл) Тогда - - ОбрабатываемыйОбъект = Объекты.Конфигурация; - - ИначеЕсли ТипыФайлов.ЭтоФайлОписанияОпределяемогоТипа(АнализируемыйФайл) Тогда - - ОбрабатываемыйОбъект = Объекты.ОпределяемыйТип; - ЭтоЕДТ = ТипыФайлов.ЭтоФайлОписанияОпределяемогоТипаEDT(АнализируемыйФайл); - - ИначеЕсли ТипыФайлов.ЭтоФайлОписанияПланаОбмена(АнализируемыйФайл) Тогда - - ОбрабатываемыйОбъект = Объекты.ПланОбмена; - ЭтоЕДТ = ТипыФайлов.ЭтоФайлОписанияПланаОбменаEDT(АнализируемыйФайл); - - ИначеЕсли ТипыФайлов.ЭтоФайлОписанияФункциональнойОпции(АнализируемыйФайл) Тогда - - ОбрабатываемыйОбъект = Объекты.ФункциональнаяОпция; - ЭтоЕДТ = ТипыФайлов.ЭтоФайлОписанияФункциональнойОпцииEDT(АнализируемыйФайл); - - ИначеЕсли ТипыФайлов.ЭтоФайлОписанияПодсистемы(АнализируемыйФайл) Тогда +Процедура УстановитьУсловияОбработкиФайла(НастройкиСортировки) + Если НастройкиСортировки.Тип = ТипыОбъектовДляСортировки.Конфигурация Тогда + УстановитьУсловияОбработкиФайлаКонфигурация(НастройкиСортировки); + ИначеЕсли НастройкиСортировки.Тип = ТипыОбъектовДляСортировки.Подсистема Тогда + УстановитьУсловияОбработкиФайлаПодсистема(НастройкиСортировки); + ИначеЕсли НастройкиСортировки.Тип = ТипыОбъектовДляСортировки.ФункциональнаяОпция Тогда + УстановитьУсловияОбработкиФайлаФункциональнаяОпция(НастройкиСортировки); + ИначеЕсли НастройкиСортировки.Тип = ТипыОбъектовДляСортировки.ОпределяемыйТип Тогда + УстановитьУсловияОбработкиФайлаОпределяемыйТип(НастройкиСортировки); + ИначеЕсли НастройкиСортировки.Тип = ТипыОбъектовДляСортировки.ПланОбмена Тогда + УстановитьУсловияОбработкиФайлаПланОбмена(НастройкиСортировки); + Иначе + ВызватьИсключение "Неизвестный тип для сортировки"; + КонецЕсли; +КонецПроцедуры - ОбрабатываемыйОбъект = Объекты.Подсистема; - ЭтоЕДТ = ТипыФайлов.ЭтоФайлОписанияПодсистемыEDT(АнализируемыйФайл); +Процедура УстановитьУсловияОбработкиФайлаКонфигурация(НастройкиСортировки) + НастройкаСценарияСортировкиСостава = Новый НастройкаСценарияСортировкиСостава("%1"); + Если НастройкиСортировки.ЕДТ() Тогда + НастройкаСценарияСортировкиСостава.УстановитьРазделительЭлементов(" "); + Иначе + НастройкаСценарияСортировкиСостава.УстановитьРазделительЭлементов(" "); + НастройкаСценарияСортировкиСостава.УстановитьРодительскийЭлемент("ChildObjects", " "); + КонецЕсли; + НастройкиСортировки.ДобавитьСценарий(НастройкаСценарияСортировкиСостава); +КонецПроцедуры +Процедура УстановитьУсловияОбработкиФайлаПодсистема(НастройкиСортировки) + Если НастройкиСортировки.ЕДТ() Тогда + НастройкаСценарияСортировкиСостава = Новый НастройкаСценарияСортировкиСостава("content"); + НастройкаСценарияСортировкиСостава.УстановитьРазделительЭлементов(" "); + НастройкиСортировки.ДобавитьСценарий(НастройкаСценарияСортировкиСостава); + Иначе + НастройкаСценарияСортировкиСостава = Новый НастройкаСценарияСортировкиСостава("xr:Item"); + НастройкаСценарияСортировкиСостава.УстановитьРазделительЭлементов(" "); + НастройкаСценарияСортировкиСостава.УстановитьРодительскийЭлемент("Content", " "); + НастройкаСценарияСортировкиСостава.УстановитьЕстьАтрибуты(); + НастройкиСортировки.ДобавитьСценарий(НастройкаСценарияСортировкиСостава); КонецЕсли; +КонецПроцедуры - Если ЗначениеЗаполнено(ОбрабатываемыйОбъект) Тогда - - ОтключенныеОбъекты = ОтключенныеОбъекты(НастройкиСценария); - Если ОтключенныеОбъекты.Найти(НРег(ОбрабатываемыйОбъект)) = Неопределено Тогда +Процедура УстановитьУсловияОбработкиФайлаФункциональнаяОпция(НастройкиСортировки) + Если НастройкиСортировки.ЕДТ() Тогда + НастройкаСценарияСортировкиСостава = Новый НастройкаСценарияСортировкиСостава("content"); + НастройкаСценарияСортировкиСостава.УстановитьРазделительЭлементов(" "); + НастройкиСортировки.ДобавитьСценарий(НастройкаСценарияСортировкиСостава); + Иначе + НастройкаСценарияСортировкиСостава = Новый НастройкаСценарияСортировкиСостава("xr:Object"); + НастройкаСценарияСортировкиСостава.УстановитьРазделительЭлементов(" "); + НастройкаСценарияСортировкиСостава.УстановитьРодительскийЭлемент("Content", " "); + НастройкиСортировки.ДобавитьСценарий(НастройкаСценарияСортировкиСостава); + КонецЕсли; +КонецПроцедуры - ПараметрыСортировки.Вставить("ОбрабатываемыйОбъект", ОбрабатываемыйОбъект); - ПараметрыСортировки.Вставить("ЭтоЕДТ", ЭтоЕДТ); - ПараметрыСортировки.Вставить("ПрефиксыСортировки", ПрефиксыСортировки(НастройкиСценария)); - +Процедура УстановитьУсловияОбработкиФайлаОпределяемыйТип(НастройкиСортировки) + Если НастройкиСортировки.ЕДТ() Тогда + НастройкаСценарияСортировкиСостава = Новый НастройкаСценарияСортировкиСостава("types"); + Если НастройкиСортировки.Заимствованный() Тогда + НастройкаСценарияСортировкиСостава.УстановитьРазделительЭлементов(" "); + НастройкаСценарияСортировкиСостава.УстановитьРодительскийЭлемент("typeExtension", " "); + НастройкаСценарияСортировкиСостава.УстановитьИмяВложенного("type"); + Иначе + НастройкаСценарияСортировкиСостава.УстановитьРазделительЭлементов(" "); КонецЕсли; - + НастройкиСортировки.ДобавитьСценарий(НастройкаСценарияСортировкиСостава); + Иначе + Если НастройкиСортировки.Заимствованный() Тогда + НастройкаСценарияСортировкиСостава = Новый НастройкаСценарияСортировкиСостава("v8:Type"); + НастройкаСценарияСортировкиСостава.УстановитьРазделительЭлементов(" "); + НастройкаСценарияСортировкиСостава.УстановитьРодительскийЭлемент("xr:CheckValue xsi:type=""v8:TypeDescription""", + " ", "xr:CheckValue"); + НастройкиСортировки.ДобавитьСценарий(НастройкаСценарияСортировкиСостава); + НастройкаСценарияСортировкиСостава = Новый НастройкаСценарияСортировкиСостава("v8:Type"); + НастройкаСценарияСортировкиСостава.УстановитьРазделительЭлементов(" "); + НастройкаСценарияСортировкиСостава.УстановитьРодительскийЭлемент("xr:ExtendValue xsi:type=""v8:TypeDescription""", + " ", "xr:ExtendValue"); + НастройкиСортировки.ДобавитьСценарий(НастройкаСценарияСортировкиСостава); + КонецЕсли; + НастройкаСценарияСортировкиСостава = Новый НастройкаСценарияСортировкиСостава("v8:Type"); + НастройкаСценарияСортировкиСостава.УстановитьРазделительЭлементов(" "); + НастройкиСортировки.ДобавитьСценарий(НастройкаСценарияСортировкиСостава); КонецЕсли; - КонецПроцедуры -Функция ОбрабатываемыеОбъекты() - - Результат = Новый Структура(); - - Результат.Вставить("Конфигурация"); - Результат.Вставить("ОпределяемыйТип"); - Результат.Вставить("ПланОбмена"); - Результат.Вставить("ФункциональнаяОпция"); - Результат.Вставить("Подсистема"); - - Для каждого Элемент Из Результат Цикл - Результат[Элемент.Ключ] = Элемент.Ключ; - КонецЦикла; - - Возврат Результат; - -КонецФункции +Процедура УстановитьУсловияОбработкиФайлаПланОбмена(НастройкиСортировки) + Если НастройкиСортировки.ЕДТ() Тогда + Если НастройкиСортировки.Заимствованный() Тогда + НастройкаСценарияСортировкиСостава = Новый НастройкаСценарияСортировкиСостава("extendedConfigurationObject"); + НастройкаСценарияСортировкиСостава.УстановитьРазделительЭлементов(" "); + НастройкаСценарияСортировкиСостава.УстановитьРодительскийЭлемент( + "extension xsi:type=""mdclassExtension:ExchangePlanExtension""", " ", "extension"); + НастройкиСортировки.ДобавитьСценарий(НастройкаСценарияСортировкиСостава); + КонецЕсли; + НастройкаСценарияСортировкиСостава = Новый НастройкаСценарияСортировкиСостава("content"); + НастройкаСценарияСортировкиСостава.УстановитьРазделительЭлементов(" "); + НастройкаСценарияСортировкиСостава.УстановитьИмяВложенного("mdObject"); + НастройкиСортировки.ДобавитьСценарий(НастройкаСценарияСортировкиСостава); + Иначе + Если НастройкиСортировки.Заимствованный() Тогда + НастройкаСценарияСортировкиСостава = Новый НастройкаСценарияСортировкиСостава("Item"); + НастройкаСценарияСортировкиСостава.УстановитьРодительскийЭлемент("ExtensionProperty", " "); + НастройкаСценарияСортировкиСостава.УстановитьРазделительЭлементов(" "); + НастройкаСценарияСортировкиСостава.УстановитьИмяВложенного("Metadata"); + НастройкиСортировки.ДобавитьСценарий(НастройкаСценарияСортировкиСостава); + КонецЕсли; + + НастройкаСценарияСортировкиСостава = Новый НастройкаСценарияСортировкиСостава("Item"); + НастройкаСценарияСортировкиСостава.УстановитьРазделительЭлементов(" "); + НастройкаСценарияСортировкиСостава.УстановитьИмяВложенного("Metadata"); + НастройкиСортировки.ДобавитьСценарий(НастройкаСценарияСортировкиСостава); + КонецЕсли; +КонецПроцедуры Функция ОтключенныеОбъекты(НастройкиСценария) Возврат НормализованныйМассивИзНастроек(НастройкиСценария, "ОтключенныеОбъекты", Истина, Истина); @@ -180,215 +232,94 @@ КонецФункции -Процедура ОпределитьСтруктуруСостава(ПараметрыСортировки) - - Объекты = ОбрабатываемыеОбъекты(); - - ОбрабатываемыйОбъект = ПараметрыСортировки.ОбрабатываемыйОбъект; - ЭтоЕДТ = ПараметрыСортировки.ЭтоЕДТ; - - СтруктураСостава = Новый Структура(); - СтруктураСостава.Вставить("ИмяЭлемента"); - СтруктураСостава.Вставить("РазделительЭлементов"); - СтруктураСостава.Вставить("ЭлементИмеетАтрибуты", Ложь); - СтруктураСостава.Вставить("ИмяВложенногоЭлемента", ""); - СтруктураСостава.Вставить("ИмяРодительскогоЭлемента", ""); - СтруктураСостава.Вставить("ОтступРодительскогоЭлемента", ""); - - Если ЭтоЕДТ Тогда - - СтруктураСостава.ИмяЭлемента = "content"; - СтруктураСостава.РазделительЭлементов = Символы.ПС + " "; - - Если ОбрабатываемыйОбъект = Объекты.Конфигурация Тогда - - СтруктураСостава.ИмяЭлемента = "%1"; // будет подставляться для каждого типа объектов метаданных - - ИначеЕсли ОбрабатываемыйОбъект = Объекты.ОпределяемыйТип Тогда - - СтруктураСостава.ИмяЭлемента = "types"; - СтруктураСостава.РазделительЭлементов = Символы.ПС + " "; - - ИначеЕсли ОбрабатываемыйОбъект = Объекты.ПланОбмена Тогда - - СтруктураСостава.ИмяВложенногоЭлемента = "mdObject"; - - КонецЕсли; - - Иначе - - СтруктураСостава.РазделительЭлементов = Символы.ПС + " "; - - Если ОбрабатываемыйОбъект = Объекты.Конфигурация Тогда - - СтруктураСостава.ИмяЭлемента = "%1"; // будет подставляться для каждого типа объектов метаданных - СтруктураСостава.РазделительЭлементов = Символы.ПС + " "; - - СтруктураСостава.ИмяРодительскогоЭлемента = "ChildObjects"; - СтруктураСостава.ОтступРодительскогоЭлемента = " "; - - ИначеЕсли ОбрабатываемыйОбъект = Объекты.ОпределяемыйТип Тогда - - СтруктураСостава.ИмяЭлемента = "v8:Type"; - - ИначеЕсли ОбрабатываемыйОбъект = Объекты.ПланОбмена Тогда - - СтруктураСостава.ИмяЭлемента = "Item"; - СтруктураСостава.РазделительЭлементов = Символы.ПС + " "; - - СтруктураСостава.ИмяВложенногоЭлемента = "Metadata"; - - ИначеЕсли ОбрабатываемыйОбъект = Объекты.ФункциональнаяОпция Тогда - - СтруктураСостава.ИмяЭлемента = "xr:Object"; - - СтруктураСостава.ИмяРодительскогоЭлемента = "Content"; - СтруктураСостава.ОтступРодительскогоЭлемента = " "; - - ИначеЕсли ОбрабатываемыйОбъект = Объекты.Подсистема Тогда - - СтруктураСостава.ИмяЭлемента = "xr:Item"; - СтруктураСостава.ЭлементИмеетАтрибуты = Истина; - - СтруктураСостава.ИмяРодительскогоЭлемента = "Content"; - СтруктураСостава.ОтступРодительскогоЭлемента = " "; - - КонецЕсли; - - КонецЕсли; - - Если СтруктураСостава.ИмяЭлемента = Неопределено Или СтруктураСостава.РазделительЭлементов = Неопределено Тогда - ВызватьИсключение - СтрШаблон( - "Не задано имя или разделитель элементов состава для объекта [%1] (формат %2)", - ОбрабатываемыйОбъект, - Формат(ЭтоЕДТ, "БЛ=конфигуратора; БИ=ЕДТ")); - КонецЕсли; - - ПараметрыСортировки.Вставить("СтруктураСостава", СтруктураСостава); - -КонецПроцедуры - -Процедура ОпределитьШаблоныПоиска(ПараметрыСортировки) - - СтруктураСостава = ПараметрыСортировки.СтруктураСостава; - - // 1-я группа: состав объектов - ШаблонПоискаСостава = ""; - Если ПараметрыСортировки.ОбрабатываемыйОбъект = ОбрабатываемыеОбъекты().Конфигурация И ПараметрыСортировки.ЭтоЕДТ Тогда - ШаблонПоискаСостава = "\s*()[ \t]*\n*"; // 2-я группа: завершающий блок ЕДТ - ИначеЕсли ЗначениеЗаполнено(СтруктураСостава.ИмяРодительскогоЭлемента) Тогда - ШаблонПоискаСостава = СтрШаблон("\s*<%1>([\w\W]*)<\/%1>[ \t]*\n*", СтруктураСостава.ИмяРодительскогоЭлемента); - Иначе - ШаблонПоискаСостава = СтрШаблон("\s*(<%1>[\w\W]*<\/%1>)[ \t]*\n*", СтруктураСостава.ИмяЭлемента); - КонецЕсли; - - // 1-я группа: имя объекта состава - ШаблонПоискаЭлементов = ""; - ТекстАтрибутов = ?(СтруктураСостава.ЭлементИмеетАтрибуты, "\s+[^>]+", ""); - Если ЗначениеЗаполнено(СтруктураСостава.ИмяВложенногоЭлемента) Тогда - ШаблонПоискаЭлементов = СтрШаблон( - "<%1%2>[\w\W]*?<%3>([^<]*?)<\/%3>[\w\W]*?<\/%1>", - СтруктураСостава.ИмяЭлемента, ТекстАтрибутов, СтруктураСостава.ИмяВложенногоЭлемента); - Иначе - ШаблонПоискаЭлементов = СтрШаблон( - "<%1%2>([^<]*?)<\/%1>", - СтруктураСостава.ИмяЭлемента, ТекстАтрибутов); - КонецЕсли; - - ПараметрыСортировки.Вставить("ШаблонПоискаСостава", ШаблонПоискаСостава); - ПараметрыСортировки.Вставить("ШаблонПоискаЭлементов", ШаблонПоискаЭлементов); +Функция НесортируемыеТипыМетаданных() + Результат = Новый Массив(); + Результат.Добавить("subsystems"); + Результат.Добавить("subsystem"); + Результат.Добавить("languages"); + Результат.Добавить("language"); + Возврат Результат; +КонецФункции -КонецПроцедуры +#КонецОбласти +#Область СортировкаСостава Функция СортироватьСостав(ПолноеИмяФайла, ПараметрыСортировки) - - Результат = Ложь; - + ФайлИзменился = Ложь; СодержимоеФайла = ФайловыеОперации.ПрочитатьТекстФайла(ПолноеИмяФайла); - ПоискСостава = РегулярныеВыражения.Создать(ПараметрыСортировки.ШаблонПоискаСостава); - СовпаденияСостава = ПоискСостава.НайтиСовпадения(СодержимоеФайла); - Если СовпаденияСостава.Количество() > 0 Тогда - - СовпадениеСостава = СовпаденияСостава[0]; - - СортированныйСостав = СортированныйСостав(СовпадениеСостава, ПараметрыСортировки) + Символы.ПС; - - ИсходныйСостав = СовпадениеСостава.Группы[0].Значение; - Если СтрСравнить(ИсходныйСостав, СортированныйСостав) <> 0 Тогда - - СодержимоеФайла = ПоискСостава.Заменить(СодержимоеФайла, СортированныйСостав); - ФайловыеОперации.ЗаписатьТекстФайла(ПолноеИмяФайла, СодержимоеФайла); - Результат = Истина; - + Замены = Новый Массив; + Для каждого Сценарий Из ПараметрыСортировки.Сценарии() Цикл + ПоискСостава = Сценарий.ШаблонПоискаСостава(); + СовпаденияСостава = ПоискСостава.НайтиСовпадения(СодержимоеФайла); + Если СовпаденияСостава.Количество() = 0 Тогда + Продолжить; КонецЕсли; + СовпадениеСостава = СовпаденияСостава[0]; + СортированныйСостав = СортироватьСоставПоСценарию(СовпадениеСостава, ПараметрыСортировки, Сценарий) + Символы.ПС; + СодержимоеФайла = ПоискСостава.Заменить(СодержимоеФайла, "_____ЗАМЕНА____" + Замены.Количество()); + Замены.Добавить(СортированныйСостав); + КонецЦикла; + НовыйТекст = СодержимоеФайла; + Для Ит = 0 По Замены.Количество() - 1 Цикл + НовыйТекст = СтрЗаменить(НовыйТекст, "_____ЗАМЕНА____" + Ит, Замены.Получить(Ит)); + КонецЦикла; + НовыйТекст = СтрЗаменить(НовыйТекст, Символы.ПС + Символы.ПС, Символы.ПС); + + Если СтрСравнить(НовыйТекст, СодержимоеФайла) <> 0 Тогда + СодержимоеФайла = НовыйТекст; + ФайловыеОперации.ЗаписатьТекстФайла(ПолноеИмяФайла, СодержимоеФайла); + ФайлИзменился = Истина; КонецЕсли; - - Возврат Результат; - + + Возврат ФайлИзменился; КонецФункции -Функция СортированныйСостав(СовпадениеСостава, ПараметрыСортировки) +Функция СортироватьСоставПоСценарию(СовпадениеСостава, ПараметрыСортировки, Сценарий) Результат = ""; - - ПрефиксыСортировки = ПараметрыСортировки.ПрефиксыСортировки; - СтруктураСостава = ПараметрыСортировки.СтруктураСостава; - СоставОбъектов = СовпадениеСостава.Группы[1].Значение; - Если ПараметрыСортировки.ОбрабатываемыйОбъект = ОбрабатываемыеОбъекты().Конфигурация Тогда + Если ПараметрыСортировки.Тип = ТипыОбъектовДляСортировки.Конфигурация Тогда - СортированныеОбъекты = Новый Массив; - НесортируемыеТипыМетаданных = НесортируемыеТипыМетаданных(); + СортированныеОбъекты = Новый Массив; Для каждого ТипМетаданных Из ИменаВсехЭлементовПоПорядку(СоставОбъектов) Цикл - СоставТипа = ВырезатьЭлемент(СоставОбъектов, ТипМетаданных, СтруктураСостава.РазделительЭлементов); - + СоставТипа = ВырезатьЭлемент(СоставОбъектов, ТипМетаданных, Сценарий.РазделительЭлементов()); Если НесортируемыеТипыМетаданных.Найти(НРег(ТипМетаданных)) = Неопределено Тогда - ШаблонПоискаЭлементов = СтрШаблон(ПараметрыСортировки.ШаблонПоискаЭлементов, ТипМетаданных); + ШаблонПоискаЭлементов = СтрШаблон(Сценарий.ШаблонПоискаЭлементов(), ТипМетаданных); - СоставТипа = СортированныеЭлементыСостава( - СоставТипа, - ШаблонПоискаЭлементов, - СтруктураСостава.РазделительЭлементов, - ПрефиксыСортировки); + СоставТипа = СортированныеЭлементы(СоставТипа, ШаблонПоискаЭлементов, Сценарий.РазделительЭлементов()); КонецЕсли; СортированныеОбъекты.Добавить(СоставТипа); - КонецЦикла; Результат = СтрСоединить(СортированныеОбъекты) - + ?(ПараметрыСортировки.ЭтоЕДТ, Символы.ПС + СовпадениеСостава.Группы[2].Значение, ""); // Завершающий блок ЕДТ + + ?(ПараметрыСортировки.ЕДТ(), Символы.ПС + СовпадениеСостава.Группы[2].Значение, ""); // Завершающий блок ЕДТ Иначе - - Результат = СортированныеЭлементыСостава( - СоставОбъектов, - ПараметрыСортировки.ШаблонПоискаЭлементов, - СтруктураСостава.РазделительЭлементов, - ПрефиксыСортировки); - + Результат = СортированныеЭлементы(СоставОбъектов, Сценарий.ШаблонПоискаЭлементов(), Сценарий.РазделительЭлементов()); КонецЕсли; - Если ЗначениеЗаполнено(СтруктураСостава.ИмяРодительскогоЭлемента) Тогда + Если Сценарий.ЕстьРодительскийЭлемент() Тогда + РодительскийЭлемент = Сценарий.РодительскийЭлемент(); Если ЗначениеЗаполнено(Результат) Тогда Результат = СтрШаблон( " - |%1<%2>%3 - |%1", - СтруктураСостава.ОтступРодительскогоЭлемента, - СтруктураСостава.ИмяРодительскогоЭлемента, + |%1<%2>%4 + |%1", + РодительскийЭлемент.Отступ, + РодительскийЭлемент.Имя, + РодительскийЭлемент.Завершение, Результат); Иначе Результат = СтрШаблон( " |%1<%2/>", - СтруктураСостава.ОтступРодительскогоЭлемента, - СтруктураСостава.ИмяРодительскогоЭлемента); + РодительскийЭлемент.Отступ, + РодительскийЭлемент.Имя); КонецЕсли; КонецЕсли; @@ -397,7 +328,6 @@ КонецФункции Функция ИменаВсехЭлементовПоПорядку(ТекстХМЛ) - ПоискЭлементов = РегулярныеВыражения.Создать("<(?[^>]+)[^>]*>[\w\W]*?<\/\k>"); // стиль .NET Элементы = Новый ТаблицаЗначений; @@ -408,11 +338,9 @@ Элементы.Свернуть("ИмяЭлемента"); Возврат Элементы.ВыгрузитьКолонку("ИмяЭлемента"); - КонецФункции Функция ВырезатьЭлемент(ТекстХМЛ, ИмяЭлемента, РазделительЭлементов = "") - Результат = ""; ПоискЭлемента = РегулярныеВыражения.Создать(СтрШаблон("\s*(<%1[^>]*>[\w\W]*?<\/%1>)[ \t]*", ИмяЭлемента)); @@ -430,39 +358,24 @@ КонецЕсли; Возврат Результат; - КонецФункции -Функция НесортируемыеТипыМетаданных() - - Результат = Новый Массив(); - Результат.Добавить("subsystems"); - Результат.Добавить("subsystem"); - Результат.Добавить("languages"); - Результат.Добавить("language"); - Возврат Результат; - -КонецФункции - -Функция СортированныеЭлементыСостава(СтрокаСостава, ШаблонПоискаЭлементов, РазделительЭлементов, ПрефиксыСортировки) Экспорт - - ТаблицыПоПрефиксам = ТаблицыПоПрефиксам(ПрефиксыСортировки); - +Функция СортированныеЭлементы(Знач СтрокаСостава, ШаблонПоискаЭлементов, РазделительЭлементов) Экспорт + ТаблицыПоПрефиксам = ТаблицыПоПрефиксам(); ПоискЭлементов = РегулярныеВыражения.Создать(ШаблонПоискаЭлементов); - Для Каждого СовпадениеЭлемента Из ПоискЭлементов.НайтиСовпадения(СтрокаСостава) Цикл - + Для Каждого СовпадениеЭлемента Из ПоискЭлементов.НайтиСовпадения(СтрокаСостава) Цикл ЗначениеЭлемента = СовпадениеЭлемента.Группы[1].Значение; + СтрокаСостава = СтрЗаменить(СтрокаСостава, СовпадениеЭлемента.Группы[0].Значение, ""); Если СтрНайти(ЗначениеЭлемента, "-") > 0 Тогда // Вероятно это UID (битая ссылка) Продолжить; КонецЕсли; ИмяОбъекта = ИмяОбъекта(ЗначениеЭлемента); СтрокаЭлемента = СовпадениеЭлемента.Группы[0].Значение; - ИндексТаблицы = ИндексТаблицыПоПрефиксу(ИмяОбъекта, ПрефиксыСортировки); + ИндексТаблицы = ИндексТаблицыПоПрефиксу(ИмяОбъекта); СтрокаТаблицы = ТаблицыПоПрефиксам[ИндексТаблицы].Добавить(); СтрокаТаблицы.СтрокаЭлемента = СтрокаЭлемента; СтрокаТаблицы.СтрокаСортировки = ЗначениеЭлемента; - КонецЦикла; СортированныеЭлементыПоПрефиксами = Новый Массив(); @@ -472,19 +385,34 @@ КонецЕсли; ТаблицаПрефикса.Сортировать("СтрокаСортировки"); ТаблицаПрефикса.Свернуть("СтрокаЭлемента"); - СортированныеЭлементыПоПрефиксами.Добавить(СтрСоединить(ТаблицаПрефикса.ВыгрузитьКолонку("СтрокаЭлемента"), РазделительЭлементов)); + ОбработанныйБлок = СтрСоединить(ТаблицаПрефикса.ВыгрузитьКолонку("СтрокаЭлемента"), РазделительЭлементов); + СортированныеЭлементыПоПрефиксами.Добавить(ОбработанныйБлок); КонецЦикла; Результат = СтрСоединить(СортированныеЭлементыПоПрефиксами, РазделительЭлементов); + Если НЕ ПустаяСтрока(СтрокаСостава) Тогда + ОчиститьОстатокБлокаОтПустыхСтрок(СтрокаСостава); + Результат = Результат + Символы.ПС + СтрокаСостава; + КонецЕсли; Если ЗначениеЗаполнено(Результат) Тогда Результат = РазделительЭлементов + Результат; КонецЕсли; Возврат Результат; - КонецФункции -Функция ТаблицыПоПрефиксам(ПрефиксыСортировки) +Процедура ОчиститьОстатокБлокаОтПустыхСтрок(СтрокаСостава) + Строки = СтрРазделить(СтрокаСостава, Символы.ПС, Ложь); + СтрокиНовые = Новый Массив; + Для Каждого Строка Из Строки Цикл + Если НЕ ПустаяСтрока(Строка) Тогда + СтрокиНовые.Добавить(Строка); + КонецЕсли; + КонецЦикла; + СтрокаСостава = СтрСоединить(СтрокиНовые, Символы.ПС); +КонецПроцедуры + +Функция ТаблицыПоПрефиксам() ТаблицыПоПрефиксам = Новый Массив(); @@ -494,7 +422,7 @@ ТаблицыПоПрефиксам.Добавить(ТаблицаСортировки); Если ЗначениеЗаполнено(ПрефиксыСортировки) Тогда - Для каждого Префикс Из ПрефиксыСортировки Цикл + Для каждого Префикс Из ПрефиксыСортировки Цикл // BSLLS:UseLessForEach-off служебный итератор ТаблицыПоПрефиксам.Добавить(ТаблицаСортировки.СкопироватьКолонки()); КонецЦикла; КонецЕсли; @@ -516,7 +444,7 @@ КонецФункции -Функция ИндексТаблицыПоПрефиксу(ИмяОбъекта, ПрефиксыСортировки) +Функция ИндексТаблицыПоПрефиксу(ИмяОбъекта) ИндексТаблицы = 0; @@ -530,3 +458,5 @@ Возврат ИндексТаблицы; КонецФункции + +#КонецОбласти diff --git "a/src/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270/\320\243\320\264\320\260\320\273\320\265\320\275\320\270\320\265\320\224\321\203\320\261\320\273\320\265\320\271\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\321\205.os" "b/src/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270/\320\243\320\264\320\260\320\273\320\265\320\275\320\270\320\265\320\224\321\203\320\261\320\273\320\265\320\271\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\321\205.os" index f6154d5..4a2aca1 100644 --- "a/src/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270/\320\243\320\264\320\260\320\273\320\265\320\275\320\270\320\265\320\224\321\203\320\261\320\273\320\265\320\271\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\321\205.os" +++ "b/src/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270/\320\243\320\264\320\260\320\273\320\265\320\275\320\270\320\265\320\224\321\203\320\261\320\273\320\265\320\271\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\321\205.os" @@ -85,7 +85,7 @@ КонецЕсли; ИсходнаяСтрока = ПодчиненныеМетаданные[0].Группы[2].Значение; - РегекспМетаданные = Новый РегулярноеВыражение("^\s+<([\w]+)>([а-яa-zA-ZА-Я0-9_]+)<\/[\w]+>"); + РегекспМетаданные = Новый РегулярноеВыражение("^\s+<([\w]+)>([а-яёa-zA-ZА-ЯЁ0-9_]+)<\/[\w]+>"); РегекспМетаданные.ИгнорироватьРегистр = ИСТИНА; РегекспМетаданные.Многострочный = Истина; ОбъектыМетаданныхСтроки = РегекспМетаданные.НайтиСовпадения(ИсходнаяСтрока); @@ -143,10 +143,7 @@ КонецФункции Функция УдалитьДублиВМетаданныхEDT(Знач ИмяФайла) - Текст = Новый ЧтениеТекста(); - Текст.Открыть(ИмяФайла, КодировкаТекста.UTF8NoBOM); - СодержимоеФайла = Текст.Прочитать(); - Текст.Закрыть(); + СодержимоеФайла = ФайловыеОперации.ПрочитатьТекстФайла(ИмяФайла); Регексп = Новый РегулярноеВыражение("(<\/languages>\s*?)([\w\W]*)(<\/mdclass\:Configuration>)"); Регексп.ИгнорироватьРегистр = Истина; @@ -159,7 +156,7 @@ КонецЕсли; ИсходнаяСтрока = ПодчиненныеМетаданные[0].Группы[2].Значение; - РегекспМетаданные = Новый РегулярноеВыражение("^\s+<([\w]+)>([a-zA-Z]+\.[а-яa-zA-ZА-Я0-9_]+)<\/[\w]+>"); + РегекспМетаданные = Новый РегулярноеВыражение("^\s+<([\w]+)>([a-zA-Z]+\.[а-яёa-zA-ZА-ЯЁ0-9_]+)<\/[\w]+>"); РегекспМетаданные.ИгнорироватьРегистр = Истина; РегекспМетаданные.Многострочный = Истина; ОбъектыМетаданныхСтроки = РегекспМетаданные.НайтиСовпадения(ИсходнаяСтрока); @@ -210,10 +207,7 @@ КонецЕсли; СодержимоеФайла = Регексп.Заменить(СодержимоеФайла, "$1" + СокрЛП(СтрокаЗамены) + Символы.ПС + "$3"); - ЗаписьТекста = Новый ЗаписьТекста; - ЗаписьТекста.Открыть(ИмяФайла, КодировкаТекста.UTF8NoBOM); - ЗаписьТекста.Записать(СодержимоеФайла); - ЗаписьТекста.Закрыть(); + ФайловыеОперации.ЗаписатьТекстФайла(ИмяФайла, СодержимоеФайла); Возврат Истина; diff --git "a/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/Configuration/Ext/\320\224\320\276/Configuration.mdo" "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/Configuration/Ext/\320\224\320\276/Configuration.mdo" new file mode 100644 index 0000000..244e42e --- /dev/null +++ "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/Configuration/Ext/\320\224\320\276/Configuration.mdo" @@ -0,0 +1,58 @@ + + + Extension + + ru + Extension + + Adopted + + Checked + Checked + Extended + Extended + Checked + Checked + Checked + Extended + Extended + + + + + + + + + true + Расш2_ + 8.3.21 + Customization + ManagedApplication + PersonalComputer + Russian + Role.Расш2_ОсновнаяРоль + Language.Русский + 8.3.21 + + Русский + Adopted + + Checked + + ru + + Subsystem.Финансы + Role.Расш2_ОсновнаяРоль + ExchangePlan.Мобильные + FunctionalOption.ВалютныйУчет + DefinedType.РасчетныйСчет + Catalog.Валюты + Catalog.Банки + Catalog.Организации + Catalog.РасчетныеСчетаКонтрагентов + Catalog.РасчетныеСчета + Document.КорректировкаРасчетов + Document.Оплата + InformationRegister.КурсыВалют + diff --git "a/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/Configuration/Ext/\320\224\320\276/Configuration.xml" "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/Configuration/Ext/\320\224\320\276/Configuration.xml" new file mode 100644 index 0000000..c94361e --- /dev/null +++ "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/Configuration/Ext/\320\224\320\276/Configuration.xml" @@ -0,0 +1,85 @@ + + + + + + 9cd510cd-abfc-11d4-9434-004095e12fc7 + 5c16a0ad-3aca-4316-bb17-774d157aeb1b + + + 9fcd25a0-4822-11d4-9414-008048da11f9 + f3b28286-dbec-4c9c-be2a-c65e27629e8c + + + e3687481-0a87-462c-a166-9f34594f9bba + 557560a6-1a8e-4348-8e3a-1bb7e29e79fb + + + 9de14907-ec23-4a07-96f0-85521cb6b53b + f2b63154-191f-4f73-8cee-2649d48326e9 + + + 51f2d5d8-ea4d-4064-8892-82951750031e + e2829ec3-b2f9-4672-91f3-651599458321 + + + e68182ea-4237-4383-967f-90c1e3370bc7 + 88447bcb-73c7-43b6-97bb-11a1337390e9 + + + fb282519-d103-4dd3-bc12-cb271d631dfc + 394ea472-9a08-4fc5-90ae-603049f76dc2 + + + + Extension + + + ru + Extension + + + + Customization + Adopted + true + Расш2_ + Version8_3_21 + ManagedApplication + + PlatformApplication + + Russian + + Role.Расш2_ОсновнаяРоль + + + + + Language.Русский + + + + + + Taxi + Version8_3_21 + + + Русский + Финансы + Расш2_ОсновнаяРоль + Мобильные + ВалютныйУчет + РасчетныйСчет + Валюты + Банки + Организации + РасчетныеСчетаКонтрагентов + РасчетныеСчета + КорректировкаРасчетов + Оплата + КурсыВалют + + + \ No newline at end of file diff --git "a/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/Configuration/Ext/\320\237\320\276\321\201\320\273\320\265/Configuration.mdo" "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/Configuration/Ext/\320\237\320\276\321\201\320\273\320\265/Configuration.mdo" new file mode 100644 index 0000000..784937a --- /dev/null +++ "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/Configuration/Ext/\320\237\320\276\321\201\320\273\320\265/Configuration.mdo" @@ -0,0 +1,58 @@ + + + Extension + + ru + Extension + + Adopted + + Checked + Checked + Extended + Extended + Checked + Checked + Checked + Extended + Extended + + + + + + + + + true + Расш2_ + 8.3.21 + Customization + ManagedApplication + PersonalComputer + Russian + Role.Расш2_ОсновнаяРоль + Language.Русский + 8.3.21 + + Русский + Adopted + + Checked + + ru + + Subsystem.Финансы + Role.Расш2_ОсновнаяРоль + ExchangePlan.Мобильные + FunctionalOption.ВалютныйУчет + DefinedType.РасчетныйСчет + Catalog.Банки + Catalog.Валюты + Catalog.Организации + Catalog.РасчетныеСчета + Catalog.РасчетныеСчетаКонтрагентов + Document.КорректировкаРасчетов + Document.Оплата + InformationRegister.КурсыВалют + diff --git "a/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/Configuration/Ext/\320\237\320\276\321\201\320\273\320\265/Configuration.xml" "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/Configuration/Ext/\320\237\320\276\321\201\320\273\320\265/Configuration.xml" new file mode 100644 index 0000000..da4d75d --- /dev/null +++ "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/Configuration/Ext/\320\237\320\276\321\201\320\273\320\265/Configuration.xml" @@ -0,0 +1,85 @@ + + + + + + 9cd510cd-abfc-11d4-9434-004095e12fc7 + 5c16a0ad-3aca-4316-bb17-774d157aeb1b + + + 9fcd25a0-4822-11d4-9414-008048da11f9 + f3b28286-dbec-4c9c-be2a-c65e27629e8c + + + e3687481-0a87-462c-a166-9f34594f9bba + 557560a6-1a8e-4348-8e3a-1bb7e29e79fb + + + 9de14907-ec23-4a07-96f0-85521cb6b53b + f2b63154-191f-4f73-8cee-2649d48326e9 + + + 51f2d5d8-ea4d-4064-8892-82951750031e + e2829ec3-b2f9-4672-91f3-651599458321 + + + e68182ea-4237-4383-967f-90c1e3370bc7 + 88447bcb-73c7-43b6-97bb-11a1337390e9 + + + fb282519-d103-4dd3-bc12-cb271d631dfc + 394ea472-9a08-4fc5-90ae-603049f76dc2 + + + + Extension + + + ru + Extension + + + + Customization + Adopted + true + Расш2_ + Version8_3_21 + ManagedApplication + + PlatformApplication + + Russian + + Role.Расш2_ОсновнаяРоль + + + + + Language.Русский + + + + + + Taxi + Version8_3_21 + + + Русский + Финансы + Расш2_ОсновнаяРоль + Мобильные + ВалютныйУчет + РасчетныйСчет + Банки + Валюты + Организации + РасчетныеСчета + РасчетныеСчетаКонтрагентов + КорректировкаРасчетов + Оплата + КурсыВалют + + + \ No newline at end of file diff --git "a/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/DefinedTypes/Ext/\320\224\320\276/\320\240\320\260\321\201\321\207\320\265\321\202\320\275\321\213\320\271\320\241\321\207\320\265\321\202.mdo" "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/DefinedTypes/Ext/\320\224\320\276/\320\240\320\260\321\201\321\207\320\265\321\202\320\275\321\213\320\271\320\241\321\207\320\265\321\202.mdo" new file mode 100644 index 0000000..15289fa --- /dev/null +++ "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/DefinedTypes/Ext/\320\224\320\276/\320\240\320\260\321\201\321\207\320\265\321\202\320\275\321\213\320\271\320\241\321\207\320\265\321\202.mdo" @@ -0,0 +1,28 @@ + + + + + + РасчетныйСчет + Adopted + + Checked + + + Checked + CatalogRef.РасчетныеСчета + + + Extended + String + + + Extended + CatalogRef.РасчетныеСчетаКонтрагентов + + + 12 + + + + diff --git "a/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/DefinedTypes/Ext/\320\224\320\276/\320\240\320\260\321\201\321\207\320\265\321\202\320\275\321\213\320\271\320\241\321\207\320\265\321\202.xml" "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/DefinedTypes/Ext/\320\224\320\276/\320\240\320\260\321\201\321\207\320\265\321\202\320\275\321\213\320\271\320\241\321\207\320\265\321\202.xml" new file mode 100644 index 0000000..2f54974 --- /dev/null +++ "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/DefinedTypes/Ext/\320\224\320\276/\320\240\320\260\321\201\321\207\320\265\321\202\320\275\321\213\320\271\320\241\321\207\320\265\321\202.xml" @@ -0,0 +1,34 @@ + + + + + + 8df943bf-bcf8-4fc1-951d-eb0ca3422f99 + b4042d7d-7c89-46bd-a2e6-7c07c175e08c + + + Type + MultiState + + + + РасчетныйСчет + + Adopted + 8a01012d-a773-47ff-80a3-fbe494caa861 + + + cfg:CatalogRef.РасчетныеСчета + + + xs:string + cfg:CatalogRef.РасчетныеСчетаКонтрагентов + + 12 + Variable + + + + + + \ No newline at end of file diff --git "a/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/DefinedTypes/Ext/\320\224\320\276/\320\240\320\260\321\201\321\207\320\265\321\202\320\275\321\213\320\271\320\241\321\207\320\265\321\2022.xml" "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/DefinedTypes/Ext/\320\224\320\276/\320\240\320\260\321\201\321\207\320\265\321\202\320\275\321\213\320\271\320\241\321\207\320\265\321\2022.xml" new file mode 100644 index 0000000..05f1b90 --- /dev/null +++ "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/DefinedTypes/Ext/\320\224\320\276/\320\240\320\260\321\201\321\207\320\265\321\202\320\275\321\213\320\271\320\241\321\207\320\265\321\2022.xml" @@ -0,0 +1,27 @@ + + + + + + 8df943bf-bcf8-4fc1-951d-eb0ca3422f99 + b4042d7d-7c89-46bd-a2e6-7c07c175e08c + + + Type + MultiState + + + + РасчетныйСчет2 + Adopted + + + cfg:CatalogRef.ШтатноеРасписание + cfg:CatalogRef.ФизическиеЛица + cfg:CatalogRef.ПодразделенияОрганизаций + cfg:CatalogRef.Должности + cfg:CatalogRef.Организации + + + + \ No newline at end of file diff --git "a/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/DefinedTypes/Ext/\320\237\320\276\321\201\320\273\320\265/\320\240\320\260\321\201\321\207\320\265\321\202\320\275\321\213\320\271\320\241\321\207\320\265\321\202.mdo" "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/DefinedTypes/Ext/\320\237\320\276\321\201\320\273\320\265/\320\240\320\260\321\201\321\207\320\265\321\202\320\275\321\213\320\271\320\241\321\207\320\265\321\202.mdo" new file mode 100644 index 0000000..f7ce3b2 --- /dev/null +++ "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/DefinedTypes/Ext/\320\237\320\276\321\201\320\273\320\265/\320\240\320\260\321\201\321\207\320\265\321\202\320\275\321\213\320\271\320\241\321\207\320\265\321\202.mdo" @@ -0,0 +1,28 @@ + + + + + + РасчетныйСчет + Adopted + + Checked + + + Checked + CatalogRef.РасчетныеСчета + + + Extended + CatalogRef.РасчетныеСчетаКонтрагентов + + + Extended + String + + + 12 + + + + diff --git "a/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/DefinedTypes/Ext/\320\237\320\276\321\201\320\273\320\265/\320\240\320\260\321\201\321\207\320\265\321\202\320\275\321\213\320\271\320\241\321\207\320\265\321\202.xml" "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/DefinedTypes/Ext/\320\237\320\276\321\201\320\273\320\265/\320\240\320\260\321\201\321\207\320\265\321\202\320\275\321\213\320\271\320\241\321\207\320\265\321\202.xml" new file mode 100644 index 0000000..847c6ba --- /dev/null +++ "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/DefinedTypes/Ext/\320\237\320\276\321\201\320\273\320\265/\320\240\320\260\321\201\321\207\320\265\321\202\320\275\321\213\320\271\320\241\321\207\320\265\321\202.xml" @@ -0,0 +1,34 @@ + + + + + + 8df943bf-bcf8-4fc1-951d-eb0ca3422f99 + b4042d7d-7c89-46bd-a2e6-7c07c175e08c + + + Type + MultiState + + + + РасчетныйСчет + + Adopted + 8a01012d-a773-47ff-80a3-fbe494caa861 + + + cfg:CatalogRef.РасчетныеСчета + + + cfg:CatalogRef.РасчетныеСчетаКонтрагентов + xs:string + + 12 + Variable + + + + + + \ No newline at end of file diff --git "a/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/DefinedTypes/Ext/\320\237\320\276\321\201\320\273\320\265/\320\240\320\260\321\201\321\207\320\265\321\202\320\275\321\213\320\271\320\241\321\207\320\265\321\2022.xml" "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/DefinedTypes/Ext/\320\237\320\276\321\201\320\273\320\265/\320\240\320\260\321\201\321\207\320\265\321\202\320\275\321\213\320\271\320\241\321\207\320\265\321\2022.xml" new file mode 100644 index 0000000..c1e73ca --- /dev/null +++ "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/DefinedTypes/Ext/\320\237\320\276\321\201\320\273\320\265/\320\240\320\260\321\201\321\207\320\265\321\202\320\275\321\213\320\271\320\241\321\207\320\265\321\2022.xml" @@ -0,0 +1,27 @@ + + + + + + 8df943bf-bcf8-4fc1-951d-eb0ca3422f99 + b4042d7d-7c89-46bd-a2e6-7c07c175e08c + + + Type + MultiState + + + + РасчетныйСчет2 + Adopted + + + cfg:CatalogRef.Должности + cfg:CatalogRef.Организации + cfg:CatalogRef.ПодразделенияОрганизаций + cfg:CatalogRef.ФизическиеЛица + cfg:CatalogRef.ШтатноеРасписание + + + + \ No newline at end of file diff --git "a/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/DefinedTypes/\320\237\320\276\321\201\320\273\320\265/\320\224\320\276\320\263\320\276\320\262\320\276\321\200\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262.mdo" "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/DefinedTypes/\320\237\320\276\321\201\320\273\320\265/\320\224\320\276\320\263\320\276\320\262\320\276\321\200\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262.mdo" new file mode 100644 index 0000000..d79ffc0 --- /dev/null +++ "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/DefinedTypes/\320\237\320\276\321\201\320\273\320\265/\320\224\320\276\320\263\320\276\320\262\320\276\321\200\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262.mdo" @@ -0,0 +1,14 @@ + + + + + + ДоговорыКлиентов + + ru + Договоры клиентов + + + CatalogRef.ДоговорыКонтрагентов + + diff --git "a/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/DefinedTypes/\320\237\320\276\321\201\320\273\320\265/\320\224\320\276\320\263\320\276\320\262\320\276\321\200\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262.xml" "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/DefinedTypes/\320\237\320\276\321\201\320\273\320\265/\320\224\320\276\320\263\320\276\320\262\320\276\321\200\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262.xml" new file mode 100644 index 0000000..9dd3d2b --- /dev/null +++ "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/DefinedTypes/\320\237\320\276\321\201\320\273\320\265/\320\224\320\276\320\263\320\276\320\262\320\276\321\200\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\276\320\262.xml" @@ -0,0 +1,24 @@ + + + + + + 5101544e-698b-4a59-a816-5499c60ed9d6 + a924fbae-e4a2-44e7-a182-615ff7613399 + + + + ДоговорыКлиентов + + + ru + Договоры клиентов + + + + + cfg:CatalogRef.ДоговорыКонтрагентов + + + + \ No newline at end of file diff --git "a/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/ExchangePlans/Ext/\320\224\320\276/Content.xml" "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/ExchangePlans/Ext/\320\224\320\276/Content.xml" new file mode 100644 index 0000000..778692c --- /dev/null +++ "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/ExchangePlans/Ext/\320\224\320\276/Content.xml" @@ -0,0 +1,53 @@ + + + + Catalog.РасчетныеСчетаКонтрагентов + Deny + + + Document.КорректировкаРасчетов + Deny + + + Catalog.РасчетныеСчета + Deny + + + Document.Оплата + Deny + + + InformationRegister.КурсыВалют + Allow + + + Catalog.Банки + Deny + + + + InformationRegister.КурсыВалют + Modify + + + Catalog.РасчетныеСчета + Modify + + + Catalog.Банки + Modify + + + Document.КорректировкаРасчетов + Modify + + + Document.Оплата + Modify + + + Catalog.РасчетныеСчетаКонтрагентов + Modify + + + \ No newline at end of file diff --git "a/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/ExchangePlans/Ext/\320\224\320\276/\320\234\320\276\320\261\320\270\320\273\321\214\320\275\321\213\320\265.mdo" "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/ExchangePlans/Ext/\320\224\320\276/\320\234\320\276\320\261\320\270\320\273\321\214\320\275\321\213\320\265.mdo" new file mode 100644 index 0000000..e733b26 --- /dev/null +++ "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/ExchangePlans/Ext/\320\224\320\276/\320\234\320\276\320\261\320\270\320\273\321\214\320\275\321\213\320\265.mdo" @@ -0,0 +1,78 @@ + + + + + + + + + + Мобильные + Adopted + + Checked + Checked + + + InformationRegister.КурсыВалют + Allow + + Extended + + + + Document.КорректировкаРасчетов + + Extended + + + + Document.Оплата + + Extended + + + + Catalog.РасчетныеСчетаКонтрагентов + + Extended + + + + Catalog.РасчетныеСчета + + Extended + + + + Catalog.Банки + + Extended + + + + + + + + Настройки + + ru + Настройки + + + РасчетныйСчет + + ru + Расчетный счет + + + CatalogRef.РасчетныеСчета + + + + Use + Use + + + diff --git "a/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/ExchangePlans/Ext/\320\237\320\276\321\201\320\273\320\265/Content.xml" "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/ExchangePlans/Ext/\320\237\320\276\321\201\320\273\320\265/Content.xml" new file mode 100644 index 0000000..aa6655a --- /dev/null +++ "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/ExchangePlans/Ext/\320\237\320\276\321\201\320\273\320\265/Content.xml" @@ -0,0 +1,53 @@ + + + + Catalog.Банки + Deny + + + Catalog.РасчетныеСчета + Deny + + + Catalog.РасчетныеСчетаКонтрагентов + Deny + + + Document.КорректировкаРасчетов + Deny + + + Document.Оплата + Deny + + + InformationRegister.КурсыВалют + Allow + + + + Catalog.Банки + Modify + + + Catalog.РасчетныеСчета + Modify + + + Catalog.РасчетныеСчетаКонтрагентов + Modify + + + Document.КорректировкаРасчетов + Modify + + + Document.Оплата + Modify + + + InformationRegister.КурсыВалют + Modify + + + \ No newline at end of file diff --git "a/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/ExchangePlans/Ext/\320\237\320\276\321\201\320\273\320\265/\320\234\320\276\320\261\320\270\320\273\321\214\320\275\321\213\320\265.mdo" "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/ExchangePlans/Ext/\320\237\320\276\321\201\320\273\320\265/\320\234\320\276\320\261\320\270\320\273\321\214\320\275\321\213\320\265.mdo" new file mode 100644 index 0000000..40d5eab --- /dev/null +++ "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/ExchangePlans/Ext/\320\237\320\276\321\201\320\273\320\265/\320\234\320\276\320\261\320\270\320\273\321\214\320\275\321\213\320\265.mdo" @@ -0,0 +1,78 @@ + + + + + + + + + + Мобильные + Adopted + + Checked + Checked + + + Catalog.Банки + + Extended + + + + Catalog.РасчетныеСчета + + Extended + + + + Catalog.РасчетныеСчетаКонтрагентов + + Extended + + + + Document.КорректировкаРасчетов + + Extended + + + + Document.Оплата + + Extended + + + + InformationRegister.КурсыВалют + Allow + + Extended + + + + + + + + Настройки + + ru + Настройки + + + РасчетныйСчет + + ru + Расчетный счет + + + CatalogRef.РасчетныеСчета + + + + Use + Use + + + diff --git "a/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/FunctionalOptions/Ext/\320\224\320\276/\320\222\320\260\320\273\321\216\321\202\320\275\321\213\320\271\320\243\321\207\320\265\321\202.mdo" "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/FunctionalOptions/Ext/\320\224\320\276/\320\222\320\260\320\273\321\216\321\202\320\275\321\213\320\271\320\243\321\207\320\265\321\202.mdo" new file mode 100644 index 0000000..e11250e --- /dev/null +++ "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/FunctionalOptions/Ext/\320\224\320\276/\320\222\320\260\320\273\321\216\321\202\320\275\321\213\320\271\320\243\321\207\320\265\321\202.mdo" @@ -0,0 +1,13 @@ + + + ВалютныйУчет + Adopted + + Checked + Checked + + Catalog.Организации.Attribute.ВалютныйУчет + Document.Оплата + Catalog.Валюты + Document.КорректировкаРасчетов + diff --git "a/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/FunctionalOptions/Ext/\320\224\320\276/\320\222\320\260\320\273\321\216\321\202\320\275\321\213\320\271\320\243\321\207\320\265\321\202.xml" "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/FunctionalOptions/Ext/\320\224\320\276/\320\222\320\260\320\273\321\216\321\202\320\275\321\213\320\271\320\243\321\207\320\265\321\202.xml" new file mode 100644 index 0000000..4385338 --- /dev/null +++ "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/FunctionalOptions/Ext/\320\224\320\276/\320\222\320\260\320\273\321\216\321\202\320\275\321\213\320\271\320\243\321\207\320\265\321\202.xml" @@ -0,0 +1,17 @@ + + + + + + ВалютныйУчет + + Adopted + 5ddb9715-14fa-4aec-9388-0d0778a6aed3 + Catalog.Организации.Attribute.ВалютныйУчет + + Document.Оплата.Attribute.Валюта + Document.КорректировкаРасчетов.Attribute.Валюта + + + + \ No newline at end of file diff --git "a/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/FunctionalOptions/Ext/\320\237\320\276\321\201\320\273\320\265/\320\222\320\260\320\273\321\216\321\202\320\275\321\213\320\271\320\243\321\207\320\265\321\202.mdo" "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/FunctionalOptions/Ext/\320\237\320\276\321\201\320\273\320\265/\320\222\320\260\320\273\321\216\321\202\320\275\321\213\320\271\320\243\321\207\320\265\321\202.mdo" new file mode 100644 index 0000000..c70ca21 --- /dev/null +++ "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/FunctionalOptions/Ext/\320\237\320\276\321\201\320\273\320\265/\320\222\320\260\320\273\321\216\321\202\320\275\321\213\320\271\320\243\321\207\320\265\321\202.mdo" @@ -0,0 +1,13 @@ + + + ВалютныйУчет + Adopted + + Checked + Checked + + Catalog.Организации.Attribute.ВалютныйУчет + Catalog.Валюты + Document.КорректировкаРасчетов + Document.Оплата + diff --git "a/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/FunctionalOptions/Ext/\320\237\320\276\321\201\320\273\320\265/\320\222\320\260\320\273\321\216\321\202\320\275\321\213\320\271\320\243\321\207\320\265\321\202.xml" "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/FunctionalOptions/Ext/\320\237\320\276\321\201\320\273\320\265/\320\222\320\260\320\273\321\216\321\202\320\275\321\213\320\271\320\243\321\207\320\265\321\202.xml" new file mode 100644 index 0000000..dcda5bc --- /dev/null +++ "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/FunctionalOptions/Ext/\320\237\320\276\321\201\320\273\320\265/\320\222\320\260\320\273\321\216\321\202\320\275\321\213\320\271\320\243\321\207\320\265\321\202.xml" @@ -0,0 +1,17 @@ + + + + + + ВалютныйУчет + + Adopted + 5ddb9715-14fa-4aec-9388-0d0778a6aed3 + Catalog.Организации.Attribute.ВалютныйУчет + + Document.КорректировкаРасчетов.Attribute.Валюта + Document.Оплата.Attribute.Валюта + + + + \ No newline at end of file diff --git "a/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/Subsystems/Ext/\320\224\320\276/\320\244\320\270\320\275\320\260\320\275\321\201\321\213.mdo" "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/Subsystems/Ext/\320\224\320\276/\320\244\320\270\320\275\320\260\320\275\321\201\321\213.mdo" new file mode 100644 index 0000000..bca9cef --- /dev/null +++ "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/Subsystems/Ext/\320\224\320\276/\320\244\320\270\320\275\320\260\320\275\321\201\321\213.mdo" @@ -0,0 +1,14 @@ + + + Финансы + Adopted + + Checked + Extended + + Catalog.РасчетныеСчета + Catalog.РасчетныеСчетаКонтрагентов + Document.КорректировкаРасчетов + Document.Оплата + Catalog.Банки + diff --git "a/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/Subsystems/Ext/\320\224\320\276/\320\244\320\270\320\275\320\260\320\275\321\201\321\213.xml" "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/Subsystems/Ext/\320\224\320\276/\320\244\320\270\320\275\320\260\320\275\321\201\321\213.xml" new file mode 100644 index 0000000..3cab8fc --- /dev/null +++ "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/Subsystems/Ext/\320\224\320\276/\320\244\320\270\320\275\320\260\320\275\321\201\321\213.xml" @@ -0,0 +1,20 @@ + + + + + + Финансы + + Adopted + 02d4e175-d98d-4f48-89b8-61351535e9d4 + + Catalog.РасчетныеСчета + Catalog.РасчетныеСчетаКонтрагентов + Document.КорректировкаРасчетов + Document.Оплата + Catalog.Банки + + + + + \ No newline at end of file diff --git "a/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/Subsystems/Ext/\320\237\320\276\321\201\320\273\320\265/\320\244\320\270\320\275\320\260\320\275\321\201\321\213.mdo" "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/Subsystems/Ext/\320\237\320\276\321\201\320\273\320\265/\320\244\320\270\320\275\320\260\320\275\321\201\321\213.mdo" new file mode 100644 index 0000000..ceb4bd8 --- /dev/null +++ "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/Subsystems/Ext/\320\237\320\276\321\201\320\273\320\265/\320\244\320\270\320\275\320\260\320\275\321\201\321\213.mdo" @@ -0,0 +1,14 @@ + + + Финансы + Adopted + + Checked + Extended + + Catalog.Банки + Catalog.РасчетныеСчета + Catalog.РасчетныеСчетаКонтрагентов + Document.КорректировкаРасчетов + Document.Оплата + diff --git "a/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/Subsystems/Ext/\320\237\320\276\321\201\320\273\320\265/\320\244\320\270\320\275\320\260\320\275\321\201\321\213.xml" "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/Subsystems/Ext/\320\237\320\276\321\201\320\273\320\265/\320\244\320\270\320\275\320\260\320\275\321\201\321\213.xml" new file mode 100644 index 0000000..3ea2b4f --- /dev/null +++ "b/tests/fixtures/\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\260/Subsystems/Ext/\320\237\320\276\321\201\320\273\320\265/\320\244\320\270\320\275\320\260\320\275\321\201\321\213.xml" @@ -0,0 +1,20 @@ + + + + + + Финансы + + Adopted + 02d4e175-d98d-4f48-89b8-61351535e9d4 + + Catalog.Банки + Catalog.РасчетныеСчета + Catalog.РасчетныеСчетаКонтрагентов + Document.КорректировкаРасчетов + Document.Оплата + + + + + \ No newline at end of file diff --git "a/tests/\320\242\320\265\321\201\321\202\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270.os" "b/tests/\320\242\320\265\321\201\321\202\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270.os" index f5df1a9..94c20d2 100644 --- "a/tests/\320\242\320\265\321\201\321\202\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270.os" +++ "b/tests/\320\242\320\265\321\201\321\202\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270.os" @@ -67,22 +67,27 @@ Процедура СортировкаСостава_Configuration() Экспорт ПроверитьОбработкуФайлов("СортировкаСостава", "Configuration"); + ПроверитьОбработкуФайлов("СортировкаСостава", "Configuration\Ext"); КонецПроцедуры Процедура СортировкаСостава_DefinedTypes() Экспорт ПроверитьОбработкуФайлов("СортировкаСостава", "DefinedTypes"); + ПроверитьОбработкуФайлов("СортировкаСостава", "DefinedTypes\Ext"); КонецПроцедуры Процедура СортировкаСостава_ExchangePlans() Экспорт ПроверитьОбработкуФайлов("СортировкаСостава", "ExchangePlans"); + ПроверитьОбработкуФайлов("СортировкаСостава", "ExchangePlans\Ext"); КонецПроцедуры Процедура СортировкаСостава_FunctionalOptions() Экспорт ПроверитьОбработкуФайлов("СортировкаСостава", "FunctionalOptions"); + ПроверитьОбработкуФайлов("СортировкаСостава", "FunctionalOptions\Ext"); КонецПроцедуры Процедура СортировкаСостава_Subsystems() Экспорт ПроверитьОбработкуФайлов("СортировкаСостава", "Subsystems"); + ПроверитьОбработкуФайлов("СортировкаСостава", "Subsystems\Ext"); КонецПроцедуры Процедура ПроверитьОбработкуФайлов(ИмяСценария, ПодкаталогИсходников) @@ -116,9 +121,8 @@ НастройкиСценария = Новый Соответствие; ФайлНастроек = Новый Файл(ОбъединитьПути(ПодкаталогНастроек, ТестовыйФайл.ИмяБезРасширения + ".json")); Если ФайлНастроек.Существует() Тогда - ЧтениеНастроек = Новый ЧтениеТекста(ФайлНастроек.ПолноеИмя, КодировкаТекста.UTF8NoBOM); - НастройкиСценария = Новый ПарсерJSON.ПрочитатьJSON(ЧтениеНастроек.Прочитать()); - ЧтениеНастроек.Закрыть(); + ТекстНастроек = ФайловыеОперации.ПрочитатьТекстФайла(ФайлНастроек.ПолноеИмя); + НастройкиСценария = Новый ПарсерJSON.ПрочитатьJSON(ТекстНастроек); КонецЕсли; ДополнительныеНастройки.Настройки.Вставить(ИмяСценария, НастройкиСценария); @@ -671,9 +675,7 @@ Файл = Новый Файл(ПутьКФайлу); - ЗаписьТекста = Новый ЗаписьТекста(ПутьКФайлу); - ЗаписьТекста.Записать(Текст); - ЗаписьТекста.Закрыть(); + ФайловыеОперации.ЗаписатьТекстФайла(ПутьКФайлу, Текст); Возврат Файл;