mirror of
https://github.com/bia-technologies/precommit4onec.git
synced 2024-11-24 08:32:25 +02:00
Merge branch 'feature/ONECICD-6' into 'develop'
Feature/onecicd 6 See merge request orais/precommit1C-fork-bia!5
This commit is contained in:
commit
b31cd7f930
@ -45,6 +45,7 @@
|
|||||||
- `УдалениеЛишнихПустыхСтрок` - выполняет очистку модуля от лишних пустых строк (лишними считаются 2 и более идущих подряд пустых строках)
|
- `УдалениеЛишнихПустыхСтрок` - выполняет очистку модуля от лишних пустых строк (лишними считаются 2 и более идущих подряд пустых строках)
|
||||||
- `ПроверкаКорректностиОбластей` - выполняет проверку на корректность скобок областей: `на парность` и `перед окончание области должно быть ее определение`
|
- `ПроверкаКорректностиОбластей` - выполняет проверку на корректность скобок областей: `на парность` и `перед окончание области должно быть ее определение`
|
||||||
- `ПроверкаДублейПроцедурИФункций` - выполняет поиск одинаковых названий процедур и функций в модуле.
|
- `ПроверкаДублейПроцедурИФункций` - выполняет поиск одинаковых названий процедур и функций в модуле.
|
||||||
|
- `ОтключениеПолнотекстовогоПоиска` - По умолчанию отключает полнотекстовый поиск в файлах описания метаданных. Имеет настройку для исключения файлов из обработки. Для исключения необходимо указать относительный путь в репозитории до файла описания метаданного. Можно выключать из обработки отдельные реквизиты метаданного, для этого надо задать массив реквизитов в конфигурационном файле.
|
||||||
|
|
||||||
## Изменение настроек
|
## Изменение настроек
|
||||||
|
|
||||||
|
@ -88,3 +88,44 @@
|
|||||||
И я создаю файл "РабочийКаталог\src\epf\DemoОбработка\DemoОбработка\Forms\ОсновнаяОФ\Ext\Form\Module.bsl" с текстом "текст178"
|
И я создаю файл "РабочийКаталог\src\epf\DemoОбработка\DemoОбработка\Forms\ОсновнаяОФ\Ext\Form\Module.bsl" с текстом "текст178"
|
||||||
И я выполняю команду "git" с параметрами "commit -m addFile"
|
И я выполняю команду "git" с параметрами "commit -m addFile"
|
||||||
Тогда Вывод команды "git" не содержит "Module.bsl"
|
Тогда Вывод команды "git" не содержит "Module.bsl"
|
||||||
|
|
||||||
|
Сценарий: По умолчанию прекоммит убирает полнотекстовый поиск в исходниках конфигуратора
|
||||||
|
Когда Я копирую файл "tests\fixtures\Документ.xml" в каталог репозитория "РабочийКаталог"
|
||||||
|
И Файл "Документ.xml" в рабочем каталоге содержит "FullTextSearch>Use<"
|
||||||
|
И я фиксирую изменения в репозитории "РабочийКаталог" с комментарием "demo коммит"
|
||||||
|
Тогда Файл "Документ.xml" в рабочем каталоге не содержит "FullTextSearch>Use<"
|
||||||
|
|
||||||
|
Сценарий: По умолчанию прекоммит убирает полнотекстовый поиск в исходниках EDT
|
||||||
|
Когда Я копирую файл "tests\fixtures\Документ.mdo" в каталог репозитория "РабочийКаталог"
|
||||||
|
И Файл "Документ.mdo" в рабочем каталоге содержит "fullTextSearch>Use<"
|
||||||
|
И я фиксирую изменения в репозитории "РабочийКаталог" с комментарием "demo коммит"
|
||||||
|
Тогда Файл "Документ.mdo" в рабочем каталоге не содержит "fullTextSearch>Use<"
|
||||||
|
|
||||||
|
Сценарий: Отключение полнотекстового поиска игнорирует файл в исключении
|
||||||
|
Когда Я создаю каталог "src" в рабочем каталоге
|
||||||
|
И Я копирую файл "Документ.mdo" из каталога "tests\fixtures" проекта в подкаталог "src" рабочего каталога
|
||||||
|
И Я копирую файл "Документ.xml" из каталога "tests\fixtures" проекта в подкаталог "src" рабочего каталога
|
||||||
|
И Файл "src\Документ.mdo" в рабочем каталоге содержит "fullTextSearch>Use<"
|
||||||
|
И Файл "src\Документ.xml" в рабочем каталоге содержит "FullTextSearch>Use<"
|
||||||
|
И я создаю файл "РабочийКаталог\v8config.json" с текстом
|
||||||
|
"""
|
||||||
|
{
|
||||||
|
"Precommt4onecСценарии": {
|
||||||
|
"ИспользоватьСценарииРепозитория": false,
|
||||||
|
"КаталогЛокальныхСценариев": "",
|
||||||
|
"ГлобальныеСценарии": [
|
||||||
|
"ОтключениеПолнотекстовогоПоиска.os"
|
||||||
|
],
|
||||||
|
"НастройкиСценариев": {
|
||||||
|
"ОтключениеПолнотекстовогоПоиска": {
|
||||||
|
"МетаданныеДляИсключения": {
|
||||||
|
"src\\Документ.mdo": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
И я фиксирую изменения в репозитории "РабочийКаталог" с комментарием "demo коммит"
|
||||||
|
Тогда Файл "\src\Документ.mdo" в рабочем каталоге содержит "fullTextSearch>Use<"
|
||||||
|
И Файл "\src\Документ.xml" в рабочем каталоге не содержит "FullTextSearch>Use<"
|
@ -28,5 +28,6 @@
|
|||||||
Установленные настройки:
|
Установленные настройки:
|
||||||
ИспользоватьСценарииРепозитория = Нет
|
ИспользоватьСценарииРепозитория = Нет
|
||||||
КаталогЛокальныхСценариев =
|
КаталогЛокальныхСценариев =
|
||||||
ГлобальныеСценарии = ДобавлениеПробеловПередКлючевымиСловами.os,ЗапретИспользованияПерейти.os,КорректировкаXMLФорм.os,ПроверкаДублейПроцедурИФункций.os,ПроверкаКорректностиОбластей.os,РазборОбычныхФормНаИсходники.os,РазборОтчетовОбработокРасширений.os,СинхронизацияОбъектовМетаданныхИФайлов.os,СортировкаДереваМетаданных.os,УдалениеДублейМетаданных.os,УдалениеЛишнихКонцевыхПробелов.os,УдалениеЛишнихПустыхСтрок.os
|
ГлобальныеСценарии = ДобавлениеПробеловПередКлючевымиСловами.os,ЗапретИспользованияПерейти.os,КорректировкаXMLФорм.os,ОтключениеПолнотекстовогоПоиска.os,ПроверкаДублейПроцедурИФункций.os,ПроверкаКорректностиОбластей.os,РазборОбычныхФормНаИсходники.os,РазборОтчетовОбработокРасширений.os,СинхронизацияОбъектовМетаданныхИФайлов.os,СортировкаДереваМетаданных.os,УдалениеДублейМетаданных.os,УдалениеЛишнихКонцевыхПробелов.os,УдалениеЛишнихПустыхСтрок.os
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
Если НЕ ПараметрыКоманды["-global"]
|
Если НЕ ПараметрыКоманды["-global"]
|
||||||
И НЕ ЗначениеЗаполнено(ПараметрыКоманды["-rep-path"]) Тогда
|
И НЕ ЗначениеЗаполнено(ПараметрыКоманды["-rep-path"]) Тогда
|
||||||
|
|
||||||
Лог.Ошибка("Для конфгурирования необходимо передать флаг -global или указать каталог репозитория параметром -rep-path");
|
Лог.Ошибка("Для конфигурирования необходимо передать флаг -global или указать каталог репозитория параметром -rep-path");
|
||||||
Возврат Приложение.РезультатыКоманд().НеверныеПараметры;
|
Возврат Приложение.РезультатыКоманд().НеверныеПараметры;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@ -124,7 +124,7 @@
|
|||||||
|
|
||||||
ГлобальныеСценарии = ПолучитьИменаСценариев(ТекущийКаталогСценариев);
|
ГлобальныеСценарии = ПолучитьИменаСценариев(ТекущийКаталогСценариев);
|
||||||
УправлениеНастройками.ЗаписатьНастройку(ИмяПриложения + "\ГлобальныеСценарии", ГлобальныеСценарии);
|
УправлениеНастройками.ЗаписатьНастройку(ИмяПриложения + "\ГлобальныеСценарии", ГлобальныеСценарии);
|
||||||
НастройкиСценариев = СформироватьНастройкиСценариев();
|
НастройкиСценариев = СформироватьНастройкиСценариев(ГлобальныеСценарии, ТекущийКаталогСценариев);
|
||||||
УправлениеНастройками.ЗаписатьНастройку(ИмяПриложения + "\НастройкиСценариев", НастройкиСценариев);
|
УправлениеНастройками.ЗаписатьНастройку(ИмяПриложения + "\НастройкиСценариев", НастройкиСценариев);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
@ -162,17 +162,23 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция СформироватьНастройкиСценариев()
|
Функция СформироватьНастройкиСценариев(МассивСценариев, КаталогСценариев)
|
||||||
|
|
||||||
// todo: Надо будет доработать таким образом, чтобы настройки считывались из сценария
|
НастройкиСценариев = Новый Соответствие;
|
||||||
|
Рефлектор = Новый Рефлектор;
|
||||||
|
|
||||||
// для сценария РазборОтчетовОбработокРасширений
|
Для Каждого Сценарий Из МассивСценариев Цикл
|
||||||
НастройкиСценария = Новый Соответствие;
|
|
||||||
НастройкиСценария.Вставить("ИспользоватьНастройкиПоУмолчанию", Истина);
|
ОбъектСценария = ЗагрузитьСценарий(ОбъединитьПути(КаталогСценариев, Сценарий));
|
||||||
НастройкиСценария.Вставить("ВерсияПлатформы", "");
|
|
||||||
|
Если Рефлектор.МетодСуществует(ОбъектСценария, "ПолучитьСтандартныеНастройкиСценария") Тогда
|
||||||
|
|
||||||
|
СтруктураНастроек = Рефлектор.ВызватьМетод(ОбъектСценария, "ПолучитьСтандартныеНастройкиСценария");
|
||||||
|
НастройкиСценариев.Вставить(СтруктураНастроек.ИмяСценария, СтруктураНастроек.Настройка);
|
||||||
|
|
||||||
НастройкиСценариев = Новый Соответствие;
|
КонецЕсли;
|
||||||
НастройкиСценариев.Вставить("РазборОтчетовОбработокРасширений", НастройкиСценария);
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
Возврат НастройкиСценариев;
|
Возврат НастройкиСценариев;
|
||||||
|
|
||||||
@ -212,8 +218,8 @@
|
|||||||
УправлениеНастройками.ЗаписатьНастройку(ИмяПриложения + "\КаталогЛокальныхСценариев", КаталогЛокальныхСценариев);
|
УправлениеНастройками.ЗаписатьНастройку(ИмяПриложения + "\КаталогЛокальныхСценариев", КаталогЛокальныхСценариев);
|
||||||
|
|
||||||
УправлениеНастройками.ЗаписатьНастройку(ИмяПриложения + "\ГлобальныеСценарии", ГлобальныеСценарии);
|
УправлениеНастройками.ЗаписатьНастройку(ИмяПриложения + "\ГлобальныеСценарии", ГлобальныеСценарии);
|
||||||
|
НастройкиСценариев = СформироватьНастройкиСценариев(ГлобальныеСценарии, КаталогГлобальныхСценариев);
|
||||||
УправлениеНастройками.ЗаписатьНастройку(ИмяПриложения + "\НастройкиСценариев", СформироватьНастройкиСценариев());
|
УправлениеНастройками.ЗаписатьНастройку(ИмяПриложения + "\НастройкиСценариев", );
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
///////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
Перем ИнициализацияВыпонена; // содержит признак инициализации репозитория
|
Перем ИнициализацияВыполнена; // содержит признак инициализации репозитория
|
||||||
Перем НовыйКонфиг; // содержит признак нового конфига
|
Перем НовыйКонфиг; // содержит признак нового конфига
|
||||||
Перем Конфигурация; // описание конфигурации
|
Перем Конфигурация; // описание конфигурации
|
||||||
Перем АдресКонфигурационногоФайла; // адрес нахождения конфигурационного файла
|
Перем АдресКонфигурационногоФайла; // адрес нахождения конфигурационного файла
|
||||||
@ -34,31 +34,31 @@
|
|||||||
КонецФункции // ЭтоНовый()
|
КонецФункции // ЭтоНовый()
|
||||||
|
|
||||||
// ГлобальныеНастройки
|
// ГлобальныеНастройки
|
||||||
// Возврает набор глобальных настроек
|
// Возвращает набор глобальных настроек
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Соответствие - Набор глобальных настроек при их наличии, если настроек нет то будет возвращено пустое соответствие
|
// Соответствие - Набор глобальных настроек при их наличии, если настроек нет то будет возвращено пустое соответствие
|
||||||
//
|
//
|
||||||
Функция ГлобальныеНастройки() Экспорт
|
Функция ГлобальныеНастройки() Экспорт
|
||||||
|
|
||||||
ПроверкаИницализации();
|
ПроверкаИнициализации();
|
||||||
|
|
||||||
Возврат НастройкиПриложения("GLOBAL");
|
Возврат НастройкиПриложения("GLOBAL");
|
||||||
|
|
||||||
КонецФункции // ГлобальныеНастройки() Экспорт
|
КонецФункции // ГлобальныеНастройки() Экспорт
|
||||||
|
|
||||||
// НастройкиПриложения
|
// НастройкиПриложения
|
||||||
// Возврает набор настроек для приложения
|
// Возвращает набор настроек для приложения
|
||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// ИмяПриложения - Строка - Имя приложения
|
// ИмяПриложения - Строка - Имя приложения
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Соответствие - Набор гнастроек при их наличии, если настроек нет то будет возвращено пустое соответствие
|
// Соответствие - Набор настроек при их наличии, если настроек нет то будет возвращено пустое соответствие
|
||||||
//
|
//
|
||||||
Функция НастройкиПриложения(ИмяПриложения) Экспорт
|
Функция НастройкиПриложения(ИмяПриложения) Экспорт
|
||||||
|
|
||||||
ПроверкаИницализации();
|
ПроверкаИнициализации();
|
||||||
Если ПустаяСтрока(ИмяПриложения) Тогда
|
Если ПустаяСтрока(ИмяПриложения) Тогда
|
||||||
|
|
||||||
ВызватьИсключение "Не указано имя приложения";
|
ВызватьИсключение "Не указано имя приложения";
|
||||||
@ -89,7 +89,7 @@
|
|||||||
//
|
//
|
||||||
Функция Настройка(ИмяНастройки)Экспорт
|
Функция Настройка(ИмяНастройки)Экспорт
|
||||||
|
|
||||||
ПроверкаИницализации();
|
ПроверкаИнициализации();
|
||||||
|
|
||||||
РазложенноеИмяНастройки = РазобратьИмяНастройки(ИмяНастройки);
|
РазложенноеИмяНастройки = РазобратьИмяНастройки(ИмяНастройки);
|
||||||
ИскомоеПриложение = НастройкиПриложения(РазложенноеИмяНастройки.ИмяПриложения);
|
ИскомоеПриложение = НастройкиПриложения(РазложенноеИмяНастройки.ИмяПриложения);
|
||||||
@ -109,7 +109,7 @@
|
|||||||
//
|
//
|
||||||
Процедура ЗаписатьНастройку(ИмяНастройки, Значение) Экспорт
|
Процедура ЗаписатьНастройку(ИмяНастройки, Значение) Экспорт
|
||||||
|
|
||||||
ПроверкаИницализации();
|
ПроверкаИнициализации();
|
||||||
|
|
||||||
РазложенноеИмяНастройки = РазобратьИмяНастройки(ИмяНастройки);
|
РазложенноеИмяНастройки = РазобратьИмяНастройки(ИмяНастройки);
|
||||||
ИскомоеПриложение = НастройкиПриложения(РазложенноеИмяНастройки.ИмяПриложения);
|
ИскомоеПриложение = НастройкиПриложения(РазложенноеИмяНастройки.ИмяПриложения);
|
||||||
@ -133,7 +133,7 @@
|
|||||||
//
|
//
|
||||||
Процедура ЗаписатьНастройкиПриложения(ИмяПриложения, Значение) Экспорт
|
Процедура ЗаписатьНастройкиПриложения(ИмяПриложения, Значение) Экспорт
|
||||||
|
|
||||||
ПроверкаИницализации();
|
ПроверкаИнициализации();
|
||||||
|
|
||||||
Если ПустаяСтрока(ИмяПриложения) Тогда
|
Если ПустаяСтрока(ИмяПриложения) Тогда
|
||||||
|
|
||||||
@ -161,7 +161,7 @@
|
|||||||
//
|
//
|
||||||
Процедура УдалитьНастройкиПриложения(ИмяПриложения) Экспорт
|
Процедура УдалитьНастройкиПриложения(ИмяПриложения) Экспорт
|
||||||
|
|
||||||
ПроверкаИницализации();
|
ПроверкаИнициализации();
|
||||||
|
|
||||||
Если ПустаяСтрока(ИмяПриложения) Тогда
|
Если ПустаяСтрока(ИмяПриложения) Тогда
|
||||||
|
|
||||||
@ -179,15 +179,15 @@
|
|||||||
// Служебный функционал
|
// Служебный функционал
|
||||||
///////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
Функция ПроверкаИницализации()
|
Функция ПроверкаИнициализации()
|
||||||
|
|
||||||
Если Не ИнициализацияВыпонена Тогда
|
Если Не ИнициализацияВыполнена Тогда
|
||||||
|
|
||||||
ВызватьИсключение "Необходимо выполнить инициализацию"
|
ВызватьИсключение "Необходимо выполнить инициализацию"
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецФункции // ПроверкаИницализации()
|
КонецФункции // ПроверкаИнициализации()
|
||||||
|
|
||||||
Функция РазобратьИмяНастройки(Знач ИмяНастройки)
|
Функция РазобратьИмяНастройки(Знач ИмяНастройки)
|
||||||
|
|
||||||
@ -233,7 +233,7 @@
|
|||||||
//
|
//
|
||||||
Процедура ПриСозданииОбъекта(КаталогРепозитория, ОбновлятьКонф = ЛОЖЬ)
|
Процедура ПриСозданииОбъекта(КаталогРепозитория, ОбновлятьКонф = ЛОЖЬ)
|
||||||
|
|
||||||
ИнициализацияВыпонена = ЛОЖЬ;
|
ИнициализацияВыполнена = ЛОЖЬ;
|
||||||
НовыйКонфиг = ЛОЖЬ;
|
НовыйКонфиг = ЛОЖЬ;
|
||||||
Конфигурация = Неопределено;
|
Конфигурация = Неопределено;
|
||||||
АдресКонфигурационногоФайла = "";
|
АдресКонфигурационногоФайла = "";
|
||||||
@ -264,6 +264,6 @@
|
|||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ИнициализацияВыпонена = ИСТИНА;
|
ИнициализацияВыполнена = ИСТИНА;
|
||||||
|
|
||||||
КонецПроцедуры // ПриСозданииОбъекта()
|
КонецПроцедуры // ПриСозданииОбъекта()
|
@ -9,7 +9,7 @@
|
|||||||
// ЭтоФайлИсходников
|
// ЭтоФайлИсходников
|
||||||
// Возвращает истину, если файл является файлом исходных кодов
|
// Возвращает истину, если файл является файлом исходных кодов
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// Файл - Строка - Полный путь к файлу
|
// Файл - Файл - Полный путь к файлу
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Булево - Признак
|
// Булево - Признак
|
||||||
@ -29,7 +29,7 @@
|
|||||||
// ЭтоФайлОписанияКонфигурации
|
// ЭтоФайлОписанияКонфигурации
|
||||||
// Возвращает истину, если файл является файлом описания конфигурации
|
// Возвращает истину, если файл является файлом описания конфигурации
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// Файл - Строка - Полный путь к файлу
|
// Файл - Файл - Полный путь к файлу
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Булево - Признак
|
// Булево - Признак
|
||||||
@ -49,7 +49,7 @@
|
|||||||
// ЭтоФайлОписанияКонфигурацииEDT
|
// ЭтоФайлОписанияКонфигурацииEDT
|
||||||
// Возвращает истину, если файл является файлом описания конфигурации в формате EDT
|
// Возвращает истину, если файл является файлом описания конфигурации в формате EDT
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// Файл - Строка - Полный путь к файлу
|
// Файл - Файл - Полный путь к файлу
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Булево - Признак
|
// Булево - Признак
|
||||||
@ -66,10 +66,102 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
// ЭтоФайлОписанияКонфигурации
|
// ЭтоФайлОбычнойФормы
|
||||||
|
// Возвращает истину, если файл является файлом обычной формы
|
||||||
|
// Параметры:
|
||||||
|
// Файл - Файл - Полный путь к файлу
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Булево - Признак
|
||||||
|
//
|
||||||
|
Функция ЭтоФайлОбычнойФормы(Файл) Экспорт
|
||||||
|
|
||||||
|
Если ПустаяСтрока(Файл.Расширение) Тогда
|
||||||
|
|
||||||
|
Возврат Ложь;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат СтрСравнить(Файл.Имя, "Form.bin") = 0;
|
||||||
|
|
||||||
|
КонецФункции // ЭтоФайлОбычнойФормы
|
||||||
|
|
||||||
|
// ЭтоФайлОписанияМетаданных
|
||||||
|
// Возвращает истину, если файл является описанием метаданных, исключая файлы описания конфигурации.
|
||||||
|
// Параметры:
|
||||||
|
// Файл - Файл - Полный путь к файлу
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Булево - Признак
|
||||||
|
//
|
||||||
|
Функция ЭтоФайлОписанияМетаданных(Файл) Экспорт
|
||||||
|
|
||||||
|
Если ПустаяСтрока(Файл.Расширение) Тогда
|
||||||
|
|
||||||
|
Возврат Ложь;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат ЭтоФайлОписанияМетаданныхКонфигуратора(Файл) ИЛИ ЭтоФайлОписанияМетаданныхEDT(Файл);
|
||||||
|
|
||||||
|
КонецФункции // ЭтоФайлОписанияМетаданных
|
||||||
|
|
||||||
|
// ЭтоФайлОписанияМетаданныхКонфигуратора
|
||||||
|
// Возвращает истину, если файл является описанием метаданных конфигуратора, исключая Configuration.xml
|
||||||
|
// Параметры:
|
||||||
|
// Файл - Файл - Полный путь к файлу
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Булево - Признак
|
||||||
|
//
|
||||||
|
Функция ЭтоФайлОписанияМетаданныхКонфигуратора(Файл) Экспорт
|
||||||
|
|
||||||
|
Если ПустаяСтрока(Файл.Расширение) Тогда
|
||||||
|
|
||||||
|
Возврат Ложь;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ЭтоФайлОписанияКонфигурации(Файл) Тогда
|
||||||
|
|
||||||
|
Возврат Ложь;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат СтрСравнить(Файл.Расширение, ".xml") = 0;
|
||||||
|
|
||||||
|
КонецФункции // ЭтоФайлОписанияМетаданныхКонфигуратора
|
||||||
|
|
||||||
|
// ЭтоФайлОписанияМетаданныхEDT
|
||||||
|
// Возвращает истину, если файл является описанием метаданных конфигуратора, исключая Configuration.mdo
|
||||||
|
// Параметры:
|
||||||
|
// Файл - Файл - Полный путь к файлу
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Булево - Признак
|
||||||
|
//
|
||||||
|
Функция ЭтоФайлОписанияМетаданныхEDT(Файл) Экспорт
|
||||||
|
|
||||||
|
Если ПустаяСтрока(Файл.Расширение) Тогда
|
||||||
|
|
||||||
|
Возврат Ложь;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ЭтоФайлОписанияКонфигурацииEDT(Файл) Тогда
|
||||||
|
|
||||||
|
Возврат Ложь;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат СтрСравнить(Файл.Расширение, ".mdo") = 0;
|
||||||
|
|
||||||
|
КонецФункции // ЭтоФайлОписанияМетаданныхEDT
|
||||||
|
|
||||||
|
// ЭтоФайлОписанияФормы
|
||||||
// Возвращает истину, если файл является файлом описания формы
|
// Возвращает истину, если файл является файлом описания формы
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// Файл - Строка - Полный путь к файлу
|
// Файл - Файл - Полный путь к файлу
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Булево - Признак
|
// Булево - Признак
|
||||||
@ -86,10 +178,10 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
// ЭтоФайлОписанияКонфигурации
|
// ЭтоФайлОписанияФормыEDT
|
||||||
// Возвращает истину, если файл является файлом описания формы в формате EDT
|
// Возвращает истину, если файл является файлом описания формы в формате EDT
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// Файл - Строка - Полный путь к файлу
|
// Файл - Файл - Полный путь к файлу
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Булево - Признак
|
// Булево - Признак
|
||||||
@ -104,4 +196,4 @@
|
|||||||
|
|
||||||
Возврат СтрСравнить(Файл.Имя, "Form.form") = 0;
|
Возврат СтрСравнить(Файл.Имя, "Form.form") = 0;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
@ -27,7 +27,7 @@
|
|||||||
// * Лог - Объект - Текущий лог
|
// * Лог - Объект - Текущий лог
|
||||||
// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
|
// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
|
||||||
// * КаталогРепозитория - Строка - Адрес каталога репозитория
|
// * КаталогРепозитория - Строка - Адрес каталога репозитория
|
||||||
// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образоавшиеся в результате работы сценария
|
// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образовавшиеся в результате работы сценария
|
||||||
// и которые необходимо дообработать
|
// и которые необходимо дообработать
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
// * Лог - Объект - Текущий лог
|
// * Лог - Объект - Текущий лог
|
||||||
// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
|
// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
|
||||||
// * КаталогРепозитория - Строка - Адрес каталога репозитория
|
// * КаталогРепозитория - Строка - Адрес каталога репозитория
|
||||||
// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образоавшиеся в результате работы сценария
|
// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образовавшиеся в результате работы сценария
|
||||||
// и которые необходимо дообработать
|
// и которые необходимо дообработать
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
// * Лог - Объект - Текущий лог
|
// * Лог - Объект - Текущий лог
|
||||||
// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
|
// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
|
||||||
// * КаталогРепозитория - Строка - Адрес каталога репозитория
|
// * КаталогРепозитория - Строка - Адрес каталога репозитория
|
||||||
// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образоавшиеся в результате работы сценария
|
// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образовавшиеся в результате работы сценария
|
||||||
// и которые необходимо дообработать
|
// и которые необходимо дообработать
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
|
274
src/СценарииОбработки/ОтключениеПолнотекстовогоПоиска.os
Normal file
274
src/СценарииОбработки/ОтключениеПолнотекстовогоПоиска.os
Normal file
@ -0,0 +1,274 @@
|
|||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Служебный модуль с реализацией сценариев обработки файлов <ОтключениеПолнотекстовогоПоиска>
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
Перем ЗначениеПоиска;
|
||||||
|
|
||||||
|
// ИмяСценария
|
||||||
|
// Возвращает имя сценария обработки файлов
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Строка - Имя текущего сценария обработки файлов
|
||||||
|
//
|
||||||
|
Функция ИмяСценария() Экспорт
|
||||||
|
|
||||||
|
Возврат "ОтключениеПолнотекстовогоПоиска";
|
||||||
|
|
||||||
|
КонецФункции // ИмяСценария()
|
||||||
|
|
||||||
|
// ПолучитьСтандартныеНастройкиСценария
|
||||||
|
// Возвращает структуру настроек сценария
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Структура - Структура с настройками сценария
|
||||||
|
// * ИмяСценария - Строка - Имя, с которым сохранятся настройки
|
||||||
|
// * Настройка - Соответствие - настройки
|
||||||
|
//
|
||||||
|
Функция ПолучитьСтандартныеНастройкиСценария() Экспорт
|
||||||
|
|
||||||
|
НастройкиСценария = Новый Соответствие;
|
||||||
|
ПутьИРеквизиты = Новый Соответствие;
|
||||||
|
МассивРеквизитов = Новый Массив;
|
||||||
|
МассивРеквизитов.Добавить("Номер");
|
||||||
|
МассивРеквизитов.Добавить("ТабличнаяЧасть1.Реквизит");
|
||||||
|
|
||||||
|
ПутьИРеквизиты.Вставить("src\_example.xml", МассивРеквизитов);
|
||||||
|
ПутьИРеквизиты.Вставить("src\_example2.xml", Новый Массив);
|
||||||
|
|
||||||
|
НастройкиСценария.Вставить("МетаданныеДляИсключения", ПутьИРеквизиты);
|
||||||
|
|
||||||
|
Возврат Новый Структура("ИмяСценария, Настройка", ИмяСценария(), НастройкиСценария);
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
// ОбработатьФайл
|
||||||
|
// Выполняет обработку файла
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// АнализируемыйФайл - Файл - Файл из журнала git для анализа
|
||||||
|
// КаталогИсходныхФайлов - Строка - Каталог расположения исходных файлов относительно каталог репозитория
|
||||||
|
// ДополнительныеПараметры - Структура - Набор дополнительных параметров, которые можно использовать
|
||||||
|
// * Лог - Объект - Текущий лог
|
||||||
|
// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
|
||||||
|
// * КаталогРепозитория - Строка - Адрес каталога репозитория
|
||||||
|
// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образовавшиеся в результате работы сценария
|
||||||
|
// и которые необходимо дообработать
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Булево - Признак выполненной обработки файла
|
||||||
|
//
|
||||||
|
Функция ОбработатьФайл(АнализируемыйФайл, КаталогИсходныхФайлов, ДополнительныеПараметры) Экспорт
|
||||||
|
|
||||||
|
Лог = ДополнительныеПараметры.Лог;
|
||||||
|
НастройкиСценария = ДополнительныеПараметры.УправлениеНастройками.Настройка("Precommt4onecСценарии\НастройкиСценариев").Получить(ИмяСценария());
|
||||||
|
|
||||||
|
Если АнализируемыйФайл.Существует() И ТипыФайлов.ЭтоФайлОписанияМетаданных(АнализируемыйФайл) Тогда
|
||||||
|
|
||||||
|
МетаданныеДляИсключения = НастройкиСценария.Получить("МетаданныеДляИсключения");
|
||||||
|
|
||||||
|
ОтносительныйПуть = СтрЗаменить(АнализируемыйФайл.ПолноеИмя, ДополнительныеПараметры.КаталогРепозитория, "");
|
||||||
|
МассивРеквизитов = МетаданныеДляИсключения.Получить(ОтносительныйПуть);
|
||||||
|
|
||||||
|
Если МассивРеквизитов = Неопределено ИЛИ ЗначениеЗаполнено(МассивРеквизитов) Тогда
|
||||||
|
//Неопределено - нет файла в исключении, массив не пустой - исключение только по реквизитам
|
||||||
|
Лог.Информация("Обработка файла '%1' по сценарию '%2'", АнализируемыйФайл.ПолноеИмя, ИмяСценария());
|
||||||
|
|
||||||
|
ЭтоEDT = ТипыФайлов.ЭтоФайлОписанияМетаданныхEDT(АнализируемыйФайл);
|
||||||
|
|
||||||
|
Если ОтключитьПолнотекстовыйПоиск(АнализируемыйФайл.ПолноеИмя, МассивРеквизитов, ЭтоEDT) Тогда
|
||||||
|
|
||||||
|
ДополнительныеПараметры.ИзмененныеКаталоги.Добавить(АнализируемыйФайл.ПолноеИмя);
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат Истина;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат Ложь;
|
||||||
|
|
||||||
|
КонецФункции // ОбработатьФайл()
|
||||||
|
|
||||||
|
Функция ОтключитьПолнотекстовыйПоиск(Знач ИмяФайла, МассивРеквизитов, ЭтоEDT)
|
||||||
|
|
||||||
|
ТекстФайла = ФайловыеОперации.ПрочитатьТекстФайла(ИмяФайла);
|
||||||
|
СодержимоеФайла = ТекстФайла;
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(СодержимоеФайла) Тогда
|
||||||
|
|
||||||
|
Возврат Ложь;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(МассивРеквизитов) Тогда
|
||||||
|
|
||||||
|
// получение текста файла до табличных частей
|
||||||
|
Регексп = Новый РегулярноеВыражение("(<\?xml version[\w\W]+?)(<TabularSection|<\/MetaDataObject>|<\/mdclass:Document>)([\w\W]+)?");
|
||||||
|
Регексп.ИгнорироватьРегистр = Истина;
|
||||||
|
Регексп.Многострочный = Истина;
|
||||||
|
Совпадения = Регексп.НайтиСовпадения(СодержимоеФайла);
|
||||||
|
|
||||||
|
Если Совпадения.Количество() = 0 Тогда
|
||||||
|
|
||||||
|
Возврат Ложь;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
СекцияДоТаблиц = Совпадения[0].Группы[1].Значение;
|
||||||
|
ЗакрывающаяСекция = Совпадения[0].Группы[2].Значение;
|
||||||
|
СекцияТаблиц = Совпадения[0].Группы[3].Значение;
|
||||||
|
|
||||||
|
СекцияДоТаблиц = ОбработатьСтандартныеАтрибуты(СекцияДоТаблиц, МассивРеквизитов);
|
||||||
|
СекцияДоТаблиц = ОбработатьРеквизиты(СекцияДоТаблиц, МассивРеквизитов);
|
||||||
|
|
||||||
|
ЕстьСекцияТаблиц = СекцияТаблиц <> "";
|
||||||
|
|
||||||
|
Если ЕстьСекцияТаблиц Тогда
|
||||||
|
|
||||||
|
ОбработатьТабличныеЧасти(СекцияТаблиц, МассивРеквизитов, ЭтоEDT);
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
СодержимоеФайла = СекцияДоТаблиц + ?(ЕстьСекцияТаблиц, ЗакрывающаяСекция + СекцияТаблиц, ЗакрывающаяСекция);
|
||||||
|
|
||||||
|
Иначе // Обработается весь файл целиком
|
||||||
|
|
||||||
|
СодержимоеФайла = ЗаменитьПоиск(СодержимоеФайла);
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если СтрСравнить(ТекстФайла, СодержимоеФайла) = 0 Тогда
|
||||||
|
|
||||||
|
Возврат Ложь;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ФайловыеОперации.ЗаписатьТекстФайла(ИмяФайла, СодержимоеФайла);
|
||||||
|
|
||||||
|
Возврат Истина;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ЗаменитьПоиск(СодержимоеФайла, Знач ПоискРеквизита = "")
|
||||||
|
|
||||||
|
ПолнотекстовыйПоиск = "(<(?:xr\:)?fullTextSearch>)(Use)(<\/(?:xr\:)?fullTextSearch>)";
|
||||||
|
Выражение = ПоискРеквизита + ПолнотекстовыйПоиск;
|
||||||
|
|
||||||
|
Регексп = Новый РегулярноеВыражение(Выражение);
|
||||||
|
Регексп.ИгнорироватьРегистр = Истина;
|
||||||
|
Регексп.Многострочный = Истина;
|
||||||
|
ГруппыИндексов = Регексп.НайтиСовпадения(СодержимоеФайла);
|
||||||
|
|
||||||
|
Если ГруппыИндексов.Количество() <> 0 Тогда
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(ПоискРеквизита) Тогда
|
||||||
|
|
||||||
|
СодержимоеФайла = Регексп.Заменить(СодержимоеФайла, "$1$2DontUse$4");
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
|
||||||
|
СодержимоеФайла = Регексп.Заменить(СодержимоеФайла, "$1DontUse$3");
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат СодержимоеФайла;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ОбработатьСтандартныеАтрибуты(СодержимоеФайла, Исключения)
|
||||||
|
|
||||||
|
СтандартныеАтрибуты = "Attribute name=""([а-яa-zA-ZА-Я0-9_]+)"">[\w\W]+?((<xr:FullTextSearch>(Use)<\/xr:FullTextSearch>)|<\/xr:StandardAttribute>)";
|
||||||
|
|
||||||
|
Регексп = Новый РегулярноеВыражение(СтандартныеАтрибуты);
|
||||||
|
Регексп.ИгнорироватьРегистр = Истина;
|
||||||
|
Регексп.Многострочный = Истина;
|
||||||
|
КоллекцияСовпадений = Регексп.НайтиСовпадения(СодержимоеФайла);
|
||||||
|
|
||||||
|
Для Каждого Совпадение Из КоллекцияСовпадений Цикл
|
||||||
|
|
||||||
|
Если Совпадение.Группы[4].Значение = ЗначениеПоиска.Use И Исключения.Найти(Совпадение.Группы[1].Значение) = Неопределено Тогда
|
||||||
|
|
||||||
|
ПоискРеквизита = СтрШаблон("(Attribute name=""%1"">[\w\W]+?)", Совпадение.Группы[1].Значение);
|
||||||
|
СодержимоеФайла = ЗаменитьПоиск(СодержимоеФайла, ПоискРеквизита);
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Возврат СодержимоеФайла;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ОбработатьРеквизиты(СодержимоеФайла, Исключения)
|
||||||
|
|
||||||
|
ПоискРеквизиты = "<Name>([а-яa-zA-ZА-Я0-9_]+)<\/Name>[\w\W]+?(<FullTextSearch>(Use)<\/FullTextSearch>)|<\/Properties>|<\/attributes>";
|
||||||
|
|
||||||
|
Регексп = Новый РегулярноеВыражение(ПоискРеквизиты);
|
||||||
|
Регексп.ИгнорироватьРегистр = Истина;
|
||||||
|
Регексп.Многострочный = Истина;
|
||||||
|
КоллекцияСовпадений = Регексп.НайтиСовпадения(СодержимоеФайла);
|
||||||
|
|
||||||
|
Для Каждого Совпадение Из КоллекцияСовпадений Цикл
|
||||||
|
|
||||||
|
Если Совпадение.Группы[3].Значение = ЗначениеПоиска.Use И Исключения.Найти(Совпадение.Группы[1].Значение) = Неопределено Тогда
|
||||||
|
|
||||||
|
ПоискРеквизита = СтрШаблон("(<Name>%1<\/Name>[\w\W]+?)", Совпадение.Группы[1].Значение);
|
||||||
|
СодержимоеФайла = ЗаменитьПоиск(СодержимоеФайла, ПоискРеквизита);
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Возврат СодержимоеФайла;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ОбработатьТабличныеЧасти(ТекстФайла, Исключения, ЭтоEDT)
|
||||||
|
|
||||||
|
Если ЭтоEDT Тогда
|
||||||
|
|
||||||
|
Шаблон = "<\/producedTypes>\s+<name>([а-яa-zA-ZА-Я0-9_]+)<\/name>|(<Name>)([а-яa-zA-ZА-Я0-9_]+)<\/Name>|(<FullTextSearch>)(Use)<\/FullTextSearch>";
|
||||||
|
ШаблонЗамены = "(<\/producedTypes>\s+<name>%1<\/name>[\w\W]+?<Name>%2<\/Name>[\w\W]+?)";
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
|
||||||
|
Шаблон = "TabularSection\.[\w\W]+?\.([\w\W]+?)""|(<Name>)([а-яa-zA-ZА-Я0-9_]+)<\/Name>|(<FullTextSearch>)(Use)<\/FullTextSearch>";
|
||||||
|
ШаблонЗамены = "(TabularSection\.[\w\W]+?\.%1""[\w\W]+?<Name>%2<\/Name>[\w\W]+?)";
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Регексп = Новый РегулярноеВыражение(Шаблон);
|
||||||
|
Регексп.ИгнорироватьРегистр = Истина;
|
||||||
|
Регексп.Многострочный = Истина;
|
||||||
|
КоллекцияСовпадений = Регексп.НайтиСовпадения(ТекстФайла);
|
||||||
|
|
||||||
|
Таблица = "";
|
||||||
|
Реквизит = "";
|
||||||
|
|
||||||
|
Для Каждого Совпадение Из КоллекцияСовпадений Цикл
|
||||||
|
|
||||||
|
Таблица = ?(ЗначениеЗаполнено(Совпадение.Группы[1].Значение), Совпадение.Группы[1].Значение, Таблица);
|
||||||
|
Реквизит = ?(ЗначениеЗаполнено(Совпадение.Группы[3].Значение), Совпадение.Группы[3].Значение, Реквизит);
|
||||||
|
ИспользованиеПоиска = Совпадение.Группы[4].Значение;
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(ИспользованиеПоиска) И Исключения.Найти(Таблица + "." + Реквизит) = Неопределено Тогда
|
||||||
|
|
||||||
|
ПолнотекстовыйПоиск = СтрШаблон(ШаблонЗамены, Таблица, Реквизит);
|
||||||
|
|
||||||
|
ТекстФайла = ЗаменитьПоиск(ТекстФайла, ПолнотекстовыйПоиск)
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Возврат ТекстФайла;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
ЗначениеПоиска = Новый Структура ("Use, DontUse", "Use", "DontUse");
|
@ -27,7 +27,7 @@
|
|||||||
// * Лог - Объект - Текущий лог
|
// * Лог - Объект - Текущий лог
|
||||||
// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
|
// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
|
||||||
// * КаталогРепозитория - Строка - Адрес каталога репозитория
|
// * КаталогРепозитория - Строка - Адрес каталога репозитория
|
||||||
// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образоавшиеся в результате работы сценария
|
// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образовавшиеся в результате работы сценария
|
||||||
// и которые необходимо дообработать
|
// и которые необходимо дообработать
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
@ -67,7 +67,7 @@
|
|||||||
|
|
||||||
ТекстОшибки = "";
|
ТекстОшибки = "";
|
||||||
|
|
||||||
ШаблонПоиска = Новый РегулярноеВыражение("^\s*(?:Процедура|Функция|procedure|function)\s+?([а-яА-ЯёЁ0-9_\w]+?)\s*?\(\)");
|
ШаблонПоиска = Новый РегулярноеВыражение("^\s*(?:Процедура|Функция|procedure|function)\s+?([а-яА-ЯёЁ0-9_\w]+?)\s*?\(");
|
||||||
ШаблонПоиска.Многострочный = Истина;
|
ШаблонПоиска.Многострочный = Истина;
|
||||||
ШаблонПоиска.ИгнорироватьРегистр = Истина;
|
ШаблонПоиска.ИгнорироватьРегистр = Истина;
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
// * Лог - Объект - Текущий лог
|
// * Лог - Объект - Текущий лог
|
||||||
// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
|
// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
|
||||||
// * КаталогРепозитория - Строка - Адрес каталога репозитория
|
// * КаталогРепозитория - Строка - Адрес каталога репозитория
|
||||||
// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образоавшиеся в результате работы сценария
|
// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образовавшиеся в результате работы сценария
|
||||||
// и которые необходимо дообработать
|
// и которые необходимо дообработать
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
// * Лог - Объект - Текущий лог
|
// * Лог - Объект - Текущий лог
|
||||||
// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
|
// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
|
||||||
// * КаталогРепозитория - Строка - Адрес каталога репозитория
|
// * КаталогРепозитория - Строка - Адрес каталога репозитория
|
||||||
// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образоавшиеся в результате работы сценария
|
// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образовавшиеся в результате работы сценария
|
||||||
// и которые необходимо дообработать
|
// и которые необходимо дообработать
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
@ -42,7 +42,7 @@
|
|||||||
Лог = ДополнительныеПараметры.Лог;
|
Лог = ДополнительныеПараметры.Лог;
|
||||||
НастройкиСценария = ДополнительныеПараметры.УправлениеНастройками.Настройка("Precommt4onecСценарии\НастройкиСценариев").Получить(ИмяСценария());
|
НастройкиСценария = ДополнительныеПараметры.УправлениеНастройками.Настройка("Precommt4onecСценарии\НастройкиСценариев").Получить(ИмяСценария());
|
||||||
|
|
||||||
Если ЭтоФайлОбычнойФормы(АнализируемыйФайл) Тогда
|
Если ТипыФайлов.ЭтоФайлОбычнойФормы(АнализируемыйФайл) Тогда
|
||||||
|
|
||||||
Лог.Информация("Обработка файла '%1' по сценарию '%2'", АнализируемыйФайл.ПолноеИмя, ИмяСценария());
|
Лог.Информация("Обработка файла '%1' по сценарию '%2'", АнализируемыйФайл.ПолноеИмя, ИмяСценария());
|
||||||
|
|
||||||
@ -78,18 +78,6 @@
|
|||||||
|
|
||||||
КонецФункции // ОбработатьФайл()
|
КонецФункции // ОбработатьФайл()
|
||||||
|
|
||||||
Функция ЭтоФайлОбычнойФормы(Файл)
|
|
||||||
|
|
||||||
Если ПустаяСтрока(Файл.Расширение) Тогда
|
|
||||||
|
|
||||||
Возврат Ложь;
|
|
||||||
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Возврат СтрСравнить(Файл.Имя, "Form.bin") = 0;
|
|
||||||
|
|
||||||
КонецФункции
|
|
||||||
|
|
||||||
Функция ПодготовитьКаталогВыгрузки(КаталогИсходныхФайлов, ОбрабатываемыйФайл, ДополнительныеПараметры)
|
Функция ПодготовитьКаталогВыгрузки(КаталогИсходныхФайлов, ОбрабатываемыйФайл, ДополнительныеПараметры)
|
||||||
|
|
||||||
ФайлУдален = НЕ ОбрабатываемыйФайл.Существует();
|
ФайлУдален = НЕ ОбрабатываемыйФайл.Существует();
|
||||||
|
@ -27,6 +27,24 @@
|
|||||||
|
|
||||||
КонецФункции // ИмяСценария()
|
КонецФункции // ИмяСценария()
|
||||||
|
|
||||||
|
// ПолучитьСтандартныеНастройкиСценария
|
||||||
|
// Возвращает структуру настроек сценария
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Структура - Структура с настройками сценария
|
||||||
|
// * ИмяСценария - Строка - Имя, с которым сохранятся настройки
|
||||||
|
// * Настройка - Соответствие - настройки
|
||||||
|
//
|
||||||
|
Функция ПолучитьСтандартныеНастройкиСценария() Экспорт
|
||||||
|
|
||||||
|
НастройкиСценария = Новый Соответствие;
|
||||||
|
НастройкиСценария.Вставить("ИспользоватьНастройкиПоУмолчанию", Истина);
|
||||||
|
НастройкиСценария.Вставить("ВерсияПлатформы", "");
|
||||||
|
|
||||||
|
Возврат Новый Структура("ИмяСценария, Настройка", ИмяСценария(), НастройкиСценария);
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
// ОбработатьФайл
|
// ОбработатьФайл
|
||||||
// Выполняет обработку файла
|
// Выполняет обработку файла
|
||||||
//
|
//
|
||||||
@ -37,7 +55,7 @@
|
|||||||
// * Лог - Объект - Текущий лог
|
// * Лог - Объект - Текущий лог
|
||||||
// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
|
// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
|
||||||
// * КаталогРепозитория - Строка - Адрес каталога репозитория
|
// * КаталогРепозитория - Строка - Адрес каталога репозитория
|
||||||
// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образоавшиеся в результате работы сценария
|
// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образовавшиеся в результате работы сценария
|
||||||
// и которые необходимо дообработать
|
// и которые необходимо дообработать
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
// * Лог - Объект - Текущий лог
|
// * Лог - Объект - Текущий лог
|
||||||
// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
|
// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
|
||||||
// * КаталогРепозитория - Строка - Адрес каталога репозитория
|
// * КаталогРепозитория - Строка - Адрес каталога репозитория
|
||||||
// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образоавшиеся в результате работы сценария
|
// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образовавшиеся в результате работы сценария
|
||||||
// и которые необходимо дообработать
|
// и которые необходимо дообработать
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
// * Лог - Объект - Текущий лог
|
// * Лог - Объект - Текущий лог
|
||||||
// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
|
// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
|
||||||
// * КаталогРепозитория - Строка - Адрес каталога репозитория
|
// * КаталогРепозитория - Строка - Адрес каталога репозитория
|
||||||
// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образоавшиеся в результате работы сценария
|
// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образовавшиеся в результате работы сценария
|
||||||
// и которые необходимо дообработать
|
// и которые необходимо дообработать
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
@ -133,7 +133,8 @@
|
|||||||
Возврат Ложь;
|
Возврат Ложь;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
СодержимоеФайла = Регексп.Заменить(СодержимоеФайла, "$1" + СтрокаЗамены + "$3");
|
||||||
ФайловыеОперации.ЗаписатьТекстФайла(ИмяФайла, СодержимоеФайла);
|
ФайловыеОперации.ЗаписатьТекстФайла(ИмяФайла, СодержимоеФайла);
|
||||||
|
|
||||||
Возврат Истина;
|
Возврат Истина;
|
||||||
@ -208,10 +209,7 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
СодержимоеФайла = Регексп.Заменить(СодержимоеФайла, "$1" + СокрЛП(СтрокаЗамены) + Символы.ПС + "$3");
|
СодержимоеФайла = Регексп.Заменить(СодержимоеФайла, "$1" + СокрЛП(СтрокаЗамены) + Символы.ПС + "$3");
|
||||||
ЗаписьТекста = Новый ЗаписьТекста;
|
ФайловыеОперации.ЗаписатьТекстФайла(ИмяФайла, СодержимоеФайла);
|
||||||
ЗаписьТекста.Открыть(ИмяФайла, КодировкаТекста.UTF8NoBOM);
|
|
||||||
ЗаписьТекста.Записать(СодержимоеФайла);
|
|
||||||
ЗаписьТекста.Закрыть();
|
|
||||||
|
|
||||||
Возврат Истина;
|
Возврат Истина;
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
// * Лог - Объект - Текущий лог
|
// * Лог - Объект - Текущий лог
|
||||||
// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
|
// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
|
||||||
// * КаталогРепозитория - Строка - Адрес каталога репозитория
|
// * КаталогРепозитория - Строка - Адрес каталога репозитория
|
||||||
// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образоавшиеся в результате работы сценария
|
// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образовавшиеся в результате работы сценария
|
||||||
// и которые необходимо дообработать
|
// и которые необходимо дообработать
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
// * Лог - Объект - Текущий лог
|
// * Лог - Объект - Текущий лог
|
||||||
// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
|
// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
|
||||||
// * КаталогРепозитория - Строка - Адрес каталога репозитория
|
// * КаталогРепозитория - Строка - Адрес каталога репозитория
|
||||||
// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образоавшиеся в результате работы сценария
|
// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образовавшиеся в результате работы сценария
|
||||||
// и которые необходимо дообработать
|
// и которые необходимо дообработать
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
// * Лог - Объект - Текущий лог
|
// * Лог - Объект - Текущий лог
|
||||||
// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
|
// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
|
||||||
// * КаталогРепозитория - Строка - Адрес каталога репозитория
|
// * КаталогРепозитория - Строка - Адрес каталога репозитория
|
||||||
// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образоавшиеся в результате работы сценария
|
// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образовавшиеся в результате работы сценария
|
||||||
// и которые необходимо дообработать
|
// и которые необходимо дообработать
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
|
@ -17,6 +17,28 @@
|
|||||||
|
|
||||||
КонецФункции // ИмяСценария()
|
КонецФункции // ИмяСценария()
|
||||||
|
|
||||||
|
// ПолучитьСтандартныеНастройкиСценария
|
||||||
|
// Возвращает структуру настроек сценария
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Структура - Структура с настройками сценария
|
||||||
|
// * ИмяСценария - Строка - Имя, с которым сохранятся настройки
|
||||||
|
// * Настройка - Соответствие - настройки
|
||||||
|
//
|
||||||
|
Функция ПолучитьСтандартныеНастройкиСценария() Экспорт
|
||||||
|
|
||||||
|
ВызватьИсключение "Настройки отсутствуют";
|
||||||
|
|
||||||
|
НастройкиСценария = Новый Соответствие;
|
||||||
|
НастройкиСценария.Вставить("ИспользоватьПоУмолчанию", Истина);
|
||||||
|
НастройкиСценария.Вставить("Версия", "");
|
||||||
|
НастройкиСценария.Вставить("КоличествоПопыток", 5);
|
||||||
|
НастройкиСценария.Вставить("МассивПараметров", Новый Массив);
|
||||||
|
|
||||||
|
Возврат Новый Структура("ИмяСценария, Настройка", ИмяСценария(), НастройкиСценария);
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
// ОбработатьФайл
|
// ОбработатьФайл
|
||||||
// Выполняет обработку файла
|
// Выполняет обработку файла
|
||||||
//
|
//
|
||||||
@ -27,8 +49,9 @@
|
|||||||
// * Лог - Объект - Текущий лог
|
// * Лог - Объект - Текущий лог
|
||||||
// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
|
// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
|
||||||
// * КаталогРепозитория - Строка - Адрес каталога репозитория
|
// * КаталогРепозитория - Строка - Адрес каталога репозитория
|
||||||
// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образоавшиеся в результате работы сценария
|
// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образовавшиеся в результате работы сценария
|
||||||
// и которые необходимо дообработать
|
// и которые необходимо дообработать
|
||||||
|
// * ИзмененныеКаталоги - Массив - Каталоги / файлы которые необходимо добавить в индекс
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Булево - Признак выполненной обработки файла
|
// Булево - Признак выполненной обработки файла
|
||||||
@ -39,21 +62,41 @@
|
|||||||
Лог = ДополнительныеПараметры.Лог;
|
Лог = ДополнительныеПараметры.Лог;
|
||||||
НастройкиСценария = ДополнительныеПараметры.УправлениеНастройками.Настройка("Precommt4onecСценарии\НастройкиСценариев").Получить(ИмяСценария());
|
НастройкиСценария = ДополнительныеПараметры.УправлениеНастройками.Настройка("Precommt4onecСценарии\НастройкиСценариев").Получить(ИмяСценария());
|
||||||
|
|
||||||
|
// анализ файла без изменения его содержимого
|
||||||
Если АнализируемыйФайл.Существует() И ТипыФайлов.ЭтоФайлИсходников(АнализируемыйФайл) Тогда
|
Если АнализируемыйФайл.Существует() И ТипыФайлов.ЭтоФайлИсходников(АнализируемыйФайл) Тогда
|
||||||
|
|
||||||
Лог.Информация("Обработка файла '%1' по сценарию '%2'", АнализируемыйФайл.ПолноеИмя, ИмяСценария());
|
Лог.Информация("Обработка файла '%1' по сценарию '%2'", АнализируемыйФайл.ПолноеИмя, ИмяСценария());
|
||||||
|
|
||||||
ШаблоннаяОбрабткаФайла(АнализируемыйФайл);
|
ШаблоннаяОбработкаФайла(АнализируемыйФайл);
|
||||||
|
|
||||||
Возврат Истина;
|
Возврат Истина;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
// анализ файла с изменением его содержимого
|
||||||
|
Если АнализируемыйФайл.Существует() И ТипыФайлов.ЭтоФайлИсходников(АнализируемыйФайл) Тогда
|
||||||
|
|
||||||
|
Лог.Информация("Обработка файла '%1' по сценарию '%2'", АнализируемыйФайл.ПолноеИмя, ИмяСценария());
|
||||||
|
|
||||||
|
Если ШаблоннаяОбработкаФайлаСИзменением(АнализируемыйФайл) Тогда
|
||||||
|
|
||||||
|
//Добавим измененный каталог или файл в индекс, чтобы он закоммитился с изменениями
|
||||||
|
ДополнительныеПараметры.ИзмененныеКаталоги.Добавить(АнализируемыйФайл.ПолноеИмя);
|
||||||
|
|
||||||
|
//Добавим измененный файл в журнал изменений без добавления в индекс, чтобы сценарии прошли снова
|
||||||
|
ДополнительныеПараметры.ФайлыДляПостОбработки.Добавить(АнализируемыйФайл.ПолноеИмя);
|
||||||
|
|
||||||
|
Возврат Истина;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Возврат Ложь;
|
Возврат Ложь;
|
||||||
|
|
||||||
КонецФункции // ОбработатьФайл()
|
КонецФункции // ОбработатьФайл()
|
||||||
|
|
||||||
Процедура ШаблоннаяОбрабткаФайла(ИмяФайла);
|
Процедура ШаблоннаяОбработкаФайла(ИмяФайла)
|
||||||
|
|
||||||
СодержимоеФайла = ФайловыеОперации.ПрочитатьТекстФайла(ИмяФайла);
|
СодержимоеФайла = ФайловыеОперации.ПрочитатьТекстФайла(ИмяФайла);
|
||||||
|
|
||||||
@ -63,6 +106,26 @@
|
|||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ФайловыеОперации.ЗаписатьТекстФайла(ИмяФайла, СодержимоеФайла);
|
Если СодержимоеФайла = СодержимоеФайла Тогда
|
||||||
|
|
||||||
|
ВызватьИсключение "Содержимое файла равно содержимому файла";
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
КонецПроцедуры;
|
Функция ШаблоннаяОбработкаФайлаСИзменением(ИмяФайла)
|
||||||
|
|
||||||
|
СодержимоеФайла = ФайловыеОперации.ПрочитатьТекстФайла(ИмяФайла);
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(СодержимоеФайла) Тогда
|
||||||
|
|
||||||
|
Возврат Ложь;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ФайловыеОперации.ЗаписатьТекстФайла(ИмяФайла, СодержимоеФайла + "1");
|
||||||
|
|
||||||
|
Возврат Истина;
|
||||||
|
|
||||||
|
КонецФункции
|
105
tests/fixtures/Документ.mdo
vendored
Normal file
105
tests/fixtures/Документ.mdo
vendored
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<mdclass:Document xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="385df754-ca61-4a33-891e-85a76740ce8c">
|
||||||
|
<producedTypes>
|
||||||
|
<objectType typeId="dfd6d675-7224-48e1-9f73-27c877f4ebe7" valueTypeId="dc7923eb-814f-4270-94e4-b90e09ba69cc"/>
|
||||||
|
<refType typeId="514db708-6540-4aac-9572-7bc815a489cd" valueTypeId="e83fcebe-b881-4ea1-ab4f-66ac8b6a9125"/>
|
||||||
|
<selectionType typeId="cc0398a5-fb11-4964-a2cc-660199555a1a" valueTypeId="cccce58b-d552-4b60-b68b-6d67a46b1241"/>
|
||||||
|
<listType typeId="f48dffcb-19af-4486-ac12-06c56992a664" valueTypeId="2504943b-5617-4e14-80a4-a5da48ad3ae8"/>
|
||||||
|
<managerType typeId="5efb0435-af92-4b42-ae5a-411d9fb5250f" valueTypeId="3843301c-ad40-42c1-9e49-1b6bd6f90d32"/>
|
||||||
|
</producedTypes>
|
||||||
|
<name>Документ</name>
|
||||||
|
<synonym>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Документ</value>
|
||||||
|
</synonym>
|
||||||
|
<useStandardCommands>true</useStandardCommands>
|
||||||
|
<inputByString>Document.Документ.StandardAttribute.Number</inputByString>
|
||||||
|
<createOnInput>Use</createOnInput>
|
||||||
|
<dataLockControlMode>Managed</dataLockControlMode>
|
||||||
|
<fullTextSearch>Use</fullTextSearch>
|
||||||
|
<numberType>String</numberType>
|
||||||
|
<numberLength>9</numberLength>
|
||||||
|
<numberAllowedLength>Variable</numberAllowedLength>
|
||||||
|
<checkUnique>true</checkUnique>
|
||||||
|
<autonumbering>true</autonumbering>
|
||||||
|
<postInPrivilegedMode>true</postInPrivilegedMode>
|
||||||
|
<unpostInPrivilegedMode>true</unpostInPrivilegedMode>
|
||||||
|
<attributes uuid="01eea830-71a8-4902-b017-62a4d83a4740">
|
||||||
|
<name>Реквизит</name>
|
||||||
|
<synonym>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Реквизит</value>
|
||||||
|
</synonym>
|
||||||
|
<type>
|
||||||
|
<types>String</types>
|
||||||
|
<stringQualifiers>
|
||||||
|
<length>10</length>
|
||||||
|
</stringQualifiers>
|
||||||
|
</type>
|
||||||
|
<fullTextSearch>Use</fullTextSearch>
|
||||||
|
</attributes>
|
||||||
|
<tabularSections uuid="2c6232da-69cb-4df3-8edb-266590e0b802">
|
||||||
|
<producedTypes>
|
||||||
|
<objectType typeId="09b7654a-ee86-421d-af11-ebf35b735f4a" valueTypeId="8550bec4-2626-4a90-9ba4-157e89f19e2d"/>
|
||||||
|
<rowType typeId="692d5e88-96ff-4bc9-bb0d-3294edbbf1bc" valueTypeId="2ae0c435-e1ea-4b69-8cfc-9bb34e8db960"/>
|
||||||
|
</producedTypes>
|
||||||
|
<name>ТабличнаяЧасть</name>
|
||||||
|
<synonym>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Табличная часть</value>
|
||||||
|
</synonym>
|
||||||
|
<attributes uuid="1ebe77fa-0796-4dfe-b378-32e7bb78452c">
|
||||||
|
<name>Реквизит</name>
|
||||||
|
<synonym>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Реквизит</value>
|
||||||
|
</synonym>
|
||||||
|
<type>
|
||||||
|
<types>String</types>
|
||||||
|
<stringQualifiers>
|
||||||
|
<length>10</length>
|
||||||
|
</stringQualifiers>
|
||||||
|
</type>
|
||||||
|
<fullTextSearch>Use</fullTextSearch>
|
||||||
|
</attributes>
|
||||||
|
<attributes uuid="adbb4501-d947-4486-a88d-6a02a30e5f98">
|
||||||
|
<name>Реквизит1</name>
|
||||||
|
<synonym>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Реквизит1</value>
|
||||||
|
</synonym>
|
||||||
|
<type>
|
||||||
|
<types>String</types>
|
||||||
|
<stringQualifiers>
|
||||||
|
<length>10</length>
|
||||||
|
</stringQualifiers>
|
||||||
|
</type>
|
||||||
|
<fullTextSearch>Use</fullTextSearch>
|
||||||
|
</attributes>
|
||||||
|
</tabularSections>
|
||||||
|
<tabularSections uuid="bb551f9f-818a-4572-b64d-9b1b34e714a6">
|
||||||
|
<producedTypes>
|
||||||
|
<objectType typeId="5e9118b2-a4a0-4748-9386-763b9731c2cf" valueTypeId="75025611-4968-4d40-84e2-748123f73818"/>
|
||||||
|
<rowType typeId="1adafac5-71fd-45a0-9814-c5de37e5f917" valueTypeId="e37fc074-f327-4900-b612-6f0510e85636"/>
|
||||||
|
</producedTypes>
|
||||||
|
<name>ТабличнаяЧасть1</name>
|
||||||
|
<synonym>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Табличная часть1</value>
|
||||||
|
</synonym>
|
||||||
|
<attributes uuid="cabdb765-3400-4065-8c71-7c355202c9da">
|
||||||
|
<name>Реквизит</name>
|
||||||
|
<synonym>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Реквизит</value>
|
||||||
|
</synonym>
|
||||||
|
<type>
|
||||||
|
<types>String</types>
|
||||||
|
<stringQualifiers>
|
||||||
|
<length>10</length>
|
||||||
|
</stringQualifiers>
|
||||||
|
</type>
|
||||||
|
<fullTextSearch>Use</fullTextSearch>
|
||||||
|
</attributes>
|
||||||
|
</tabularSections>
|
||||||
|
</mdclass:Document>
|
376
tests/fixtures/Документ.xml
vendored
Normal file
376
tests/fixtures/Документ.xml
vendored
Normal file
@ -0,0 +1,376 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.7">
|
||||||
|
<Document uuid="931ff8b9-d808-49bc-a47c-8e3f2faa223f">
|
||||||
|
<InternalInfo>
|
||||||
|
<xr:GeneratedType name="DocumentObject.Документ" category="Object">
|
||||||
|
<xr:TypeId>0a63ee71-6357-4a50-b082-35f60b3be0e0</xr:TypeId>
|
||||||
|
<xr:ValueId>10bc61a2-ef43-4627-9748-ae6089c9bde1</xr:ValueId>
|
||||||
|
</xr:GeneratedType>
|
||||||
|
<xr:GeneratedType name="DocumentRef.Документ" category="Ref">
|
||||||
|
<xr:TypeId>e1fe1cb5-e8cb-441e-b2e3-a72ee43a4038</xr:TypeId>
|
||||||
|
<xr:ValueId>6e4dfc1f-8cc4-4fd9-9331-532a9b25b94a</xr:ValueId>
|
||||||
|
</xr:GeneratedType>
|
||||||
|
<xr:GeneratedType name="DocumentSelection.Документ" category="Selection">
|
||||||
|
<xr:TypeId>86597e09-2004-4fcc-9c8f-7b1e35aa1431</xr:TypeId>
|
||||||
|
<xr:ValueId>0dc19544-4f64-4479-ad60-e06dda1298ee</xr:ValueId>
|
||||||
|
</xr:GeneratedType>
|
||||||
|
<xr:GeneratedType name="DocumentList.Документ" category="List">
|
||||||
|
<xr:TypeId>855d48d4-5dce-4629-9998-d7a693d9d8d2</xr:TypeId>
|
||||||
|
<xr:ValueId>c74d8db3-5efd-4832-b863-6f8678445184</xr:ValueId>
|
||||||
|
</xr:GeneratedType>
|
||||||
|
<xr:GeneratedType name="DocumentManager.Документ" category="Manager">
|
||||||
|
<xr:TypeId>0cb5077c-9a73-4650-b93c-9d489b897d3b</xr:TypeId>
|
||||||
|
<xr:ValueId>5d3b3e0c-fb2e-45a8-b528-d257f903e7bc</xr:ValueId>
|
||||||
|
</xr:GeneratedType>
|
||||||
|
</InternalInfo>
|
||||||
|
<Properties>
|
||||||
|
<Name>Документ</Name>
|
||||||
|
<Synonym>
|
||||||
|
<v8:item>
|
||||||
|
<v8:lang>ru</v8:lang>
|
||||||
|
<v8:content>Документ</v8:content>
|
||||||
|
</v8:item>
|
||||||
|
</Synonym>
|
||||||
|
<Comment>Документ</Comment>
|
||||||
|
<UseStandardCommands>true</UseStandardCommands>
|
||||||
|
<Numerator/>
|
||||||
|
<NumberType>String</NumberType>
|
||||||
|
<NumberLength>10</NumberLength>
|
||||||
|
<NumberAllowedLength>Fixed</NumberAllowedLength>
|
||||||
|
<NumberPeriodicity>Year</NumberPeriodicity>
|
||||||
|
<CheckUnique>true</CheckUnique>
|
||||||
|
<Autonumbering>true</Autonumbering>
|
||||||
|
<StandardAttributes>
|
||||||
|
<xr:StandardAttribute name="Posted">
|
||||||
|
<xr:LinkByType/>
|
||||||
|
<xr:FillChecking>DontCheck</xr:FillChecking>
|
||||||
|
<xr:MultiLine>false</xr:MultiLine>
|
||||||
|
<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
|
||||||
|
<xr:CreateOnInput>Auto</xr:CreateOnInput>
|
||||||
|
<xr:MaxValue xsi:nil="true"/>
|
||||||
|
<xr:ToolTip/>
|
||||||
|
<xr:ExtendedEdit>false</xr:ExtendedEdit>
|
||||||
|
<xr:Format/>
|
||||||
|
<xr:ChoiceForm/>
|
||||||
|
<xr:QuickChoice>Auto</xr:QuickChoice>
|
||||||
|
<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
|
||||||
|
<xr:EditFormat/>
|
||||||
|
<xr:PasswordMode>false</xr:PasswordMode>
|
||||||
|
<xr:DataHistory>Use</xr:DataHistory>
|
||||||
|
<xr:MarkNegatives>false</xr:MarkNegatives>
|
||||||
|
<xr:MinValue xsi:nil="true"/>
|
||||||
|
<xr:Synonym/>
|
||||||
|
<xr:Comment/>
|
||||||
|
<xr:FullTextSearch>Use</xr:FullTextSearch>
|
||||||
|
<xr:ChoiceParameterLinks/>
|
||||||
|
<xr:FillValue xsi:nil="true"/>
|
||||||
|
<xr:Mask/>
|
||||||
|
<xr:ChoiceParameters/>
|
||||||
|
</xr:StandardAttribute>
|
||||||
|
<xr:StandardAttribute name="Ref">
|
||||||
|
<xr:LinkByType/>
|
||||||
|
<xr:FillChecking>DontCheck</xr:FillChecking>
|
||||||
|
<xr:MultiLine>false</xr:MultiLine>
|
||||||
|
<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
|
||||||
|
<xr:CreateOnInput>Auto</xr:CreateOnInput>
|
||||||
|
<xr:MaxValue xsi:nil="true"/>
|
||||||
|
<xr:ToolTip/>
|
||||||
|
<xr:ExtendedEdit>false</xr:ExtendedEdit>
|
||||||
|
<xr:Format/>
|
||||||
|
<xr:ChoiceForm/>
|
||||||
|
<xr:QuickChoice>Auto</xr:QuickChoice>
|
||||||
|
<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
|
||||||
|
<xr:EditFormat/>
|
||||||
|
<xr:PasswordMode>false</xr:PasswordMode>
|
||||||
|
<xr:DataHistory>Use</xr:DataHistory>
|
||||||
|
<xr:MarkNegatives>false</xr:MarkNegatives>
|
||||||
|
<xr:MinValue xsi:nil="true"/>
|
||||||
|
<xr:Synonym/>
|
||||||
|
<xr:Comment/>
|
||||||
|
<xr:FullTextSearch>Use</xr:FullTextSearch>
|
||||||
|
<xr:ChoiceParameterLinks/>
|
||||||
|
<xr:FillValue xsi:nil="true"/>
|
||||||
|
<xr:Mask/>
|
||||||
|
<xr:ChoiceParameters/>
|
||||||
|
</xr:StandardAttribute>
|
||||||
|
<xr:StandardAttribute name="DeletionMark">
|
||||||
|
<xr:LinkByType/>
|
||||||
|
<xr:FillChecking>DontCheck</xr:FillChecking>
|
||||||
|
<xr:MultiLine>false</xr:MultiLine>
|
||||||
|
<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
|
||||||
|
<xr:CreateOnInput>Auto</xr:CreateOnInput>
|
||||||
|
<xr:MaxValue xsi:nil="true"/>
|
||||||
|
<xr:ToolTip/>
|
||||||
|
<xr:ExtendedEdit>false</xr:ExtendedEdit>
|
||||||
|
<xr:Format/>
|
||||||
|
<xr:ChoiceForm/>
|
||||||
|
<xr:QuickChoice>Auto</xr:QuickChoice>
|
||||||
|
<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
|
||||||
|
<xr:EditFormat/>
|
||||||
|
<xr:PasswordMode>false</xr:PasswordMode>
|
||||||
|
<xr:DataHistory>Use</xr:DataHistory>
|
||||||
|
<xr:MarkNegatives>false</xr:MarkNegatives>
|
||||||
|
<xr:MinValue xsi:nil="true"/>
|
||||||
|
<xr:Synonym/>
|
||||||
|
<xr:Comment/>
|
||||||
|
<xr:FullTextSearch>Use</xr:FullTextSearch>
|
||||||
|
<xr:ChoiceParameterLinks/>
|
||||||
|
<xr:FillValue xsi:nil="true"/>
|
||||||
|
<xr:Mask/>
|
||||||
|
<xr:ChoiceParameters/>
|
||||||
|
</xr:StandardAttribute>
|
||||||
|
<xr:StandardAttribute name="Date">
|
||||||
|
<xr:LinkByType/>
|
||||||
|
<xr:FillChecking>ShowError</xr:FillChecking>
|
||||||
|
<xr:MultiLine>false</xr:MultiLine>
|
||||||
|
<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
|
||||||
|
<xr:CreateOnInput>Auto</xr:CreateOnInput>
|
||||||
|
<xr:MaxValue xsi:nil="true"/>
|
||||||
|
<xr:ToolTip/>
|
||||||
|
<xr:ExtendedEdit>false</xr:ExtendedEdit>
|
||||||
|
<xr:Format/>
|
||||||
|
<xr:ChoiceForm/>
|
||||||
|
<xr:QuickChoice>Auto</xr:QuickChoice>
|
||||||
|
<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
|
||||||
|
<xr:EditFormat/>
|
||||||
|
<xr:PasswordMode>false</xr:PasswordMode>
|
||||||
|
<xr:DataHistory>Use</xr:DataHistory>
|
||||||
|
<xr:MarkNegatives>false</xr:MarkNegatives>
|
||||||
|
<xr:MinValue xsi:nil="true"/>
|
||||||
|
<xr:Synonym/>
|
||||||
|
<xr:Comment/>
|
||||||
|
<xr:FullTextSearch>Use</xr:FullTextSearch>
|
||||||
|
<xr:ChoiceParameterLinks/>
|
||||||
|
<xr:FillValue xsi:nil="true"/>
|
||||||
|
<xr:Mask/>
|
||||||
|
<xr:ChoiceParameters/>
|
||||||
|
</xr:StandardAttribute>
|
||||||
|
<xr:StandardAttribute name="Number">
|
||||||
|
<xr:LinkByType/>
|
||||||
|
<xr:FillChecking>DontCheck</xr:FillChecking>
|
||||||
|
<xr:MultiLine>false</xr:MultiLine>
|
||||||
|
<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
|
||||||
|
<xr:CreateOnInput>Auto</xr:CreateOnInput>
|
||||||
|
<xr:MaxValue xsi:nil="true"/>
|
||||||
|
<xr:ToolTip/>
|
||||||
|
<xr:ExtendedEdit>false</xr:ExtendedEdit>
|
||||||
|
<xr:Format/>
|
||||||
|
<xr:ChoiceForm/>
|
||||||
|
<xr:QuickChoice>Auto</xr:QuickChoice>
|
||||||
|
<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
|
||||||
|
<xr:EditFormat/>
|
||||||
|
<xr:PasswordMode>false</xr:PasswordMode>
|
||||||
|
<xr:DataHistory>Use</xr:DataHistory>
|
||||||
|
<xr:MarkNegatives>false</xr:MarkNegatives>
|
||||||
|
<xr:MinValue xsi:nil="true"/>
|
||||||
|
<xr:Synonym/>
|
||||||
|
<xr:Comment/>
|
||||||
|
<xr:FullTextSearch>Use</xr:FullTextSearch>
|
||||||
|
<xr:ChoiceParameterLinks/>
|
||||||
|
<xr:FillValue xsi:type="xs:string"> </xr:FillValue>
|
||||||
|
<xr:Mask/>
|
||||||
|
<xr:ChoiceParameters/>
|
||||||
|
</xr:StandardAttribute>
|
||||||
|
</StandardAttributes>
|
||||||
|
<Characteristics/>
|
||||||
|
<BasedOn>
|
||||||
|
<xr:Item xsi:type="xr:MDObjectRef">Document.ВводНачальныхОстатков</xr:Item>
|
||||||
|
<xr:Item xsi:type="xr:MDObjectRef">Document.РКО</xr:Item>
|
||||||
|
<xr:Item xsi:type="xr:MDObjectRef">Document.ПКО</xr:Item>
|
||||||
|
<xr:Item xsi:type="xr:MDObjectRef">Document.АвансовыйОтчет</xr:Item>
|
||||||
|
<xr:Item xsi:type="xr:MDObjectRef">Document.ВозмещениеШтрафы</xr:Item>
|
||||||
|
</BasedOn>
|
||||||
|
<InputByString>
|
||||||
|
<xr:Field>Document.РКО.StandardAttribute.Number</xr:Field>
|
||||||
|
</InputByString>
|
||||||
|
<CreateOnInput>Use</CreateOnInput>
|
||||||
|
<SearchStringModeOnInputByString>Begin</SearchStringModeOnInputByString>
|
||||||
|
<FullTextSearchOnInputByString>Use</FullTextSearchOnInputByString>
|
||||||
|
<ChoiceDataGetModeOnInputByString>Directly</ChoiceDataGetModeOnInputByString>
|
||||||
|
<DefaultObjectForm>Document.РКО.Form.ФормаДокумента</DefaultObjectForm>
|
||||||
|
<DefaultListForm>Document.РКО.Form.ФормаСписка</DefaultListForm>
|
||||||
|
<DefaultChoiceForm>Document.РКО.Form.ФормаСписка</DefaultChoiceForm>
|
||||||
|
<AuxiliaryObjectForm/>
|
||||||
|
<AuxiliaryListForm/>
|
||||||
|
<AuxiliaryChoiceForm/>
|
||||||
|
<Posting>Allow</Posting>
|
||||||
|
<RealTimePosting>Deny</RealTimePosting>
|
||||||
|
<RegisterRecordsDeletion>AutoDeleteOff</RegisterRecordsDeletion>
|
||||||
|
<RegisterRecordsWritingOnPost>WriteModified</RegisterRecordsWritingOnPost>
|
||||||
|
<SequenceFilling>AutoFill</SequenceFilling>
|
||||||
|
<RegisterRecords></RegisterRecords>
|
||||||
|
<PostInPrivilegedMode>false</PostInPrivilegedMode>
|
||||||
|
<UnpostInPrivilegedMode>false</UnpostInPrivilegedMode>
|
||||||
|
<IncludeHelpInContents>true</IncludeHelpInContents>
|
||||||
|
<DataLockFields/>
|
||||||
|
<DataLockControlMode>Automatic</DataLockControlMode>
|
||||||
|
<FullTextSearch>Use</FullTextSearch>
|
||||||
|
<ObjectPresentation/>
|
||||||
|
<ExtendedObjectPresentation/>
|
||||||
|
<ListPresentation/>
|
||||||
|
<ExtendedListPresentation/>
|
||||||
|
<Explanation/>
|
||||||
|
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
|
||||||
|
<DataHistory>DontUse</DataHistory>
|
||||||
|
</Properties>
|
||||||
|
<ChildObjects>
|
||||||
|
<Attribute uuid="8fa5eded-c1ec-4edc-b0fe-dc673c7486c7">
|
||||||
|
<Properties>
|
||||||
|
<Name>UID</Name>
|
||||||
|
<Synonym>
|
||||||
|
<v8:item>
|
||||||
|
<v8:lang>ru</v8:lang>
|
||||||
|
<v8:content>UID</v8:content>
|
||||||
|
</v8:item>
|
||||||
|
</Synonym>
|
||||||
|
<Comment/>
|
||||||
|
<Type>
|
||||||
|
<v8:Type>xs:string</v8:Type>
|
||||||
|
<v8:StringQualifiers>
|
||||||
|
<v8:Length>36</v8:Length>
|
||||||
|
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||||
|
</v8:StringQualifiers>
|
||||||
|
</Type>
|
||||||
|
<PasswordMode>false</PasswordMode>
|
||||||
|
<Format/>
|
||||||
|
<EditFormat/>
|
||||||
|
<ToolTip/>
|
||||||
|
<MarkNegatives>false</MarkNegatives>
|
||||||
|
<Mask/>
|
||||||
|
<MultiLine>false</MultiLine>
|
||||||
|
<ExtendedEdit>false</ExtendedEdit>
|
||||||
|
<MinValue xsi:nil="true"/>
|
||||||
|
<MaxValue xsi:nil="true"/>
|
||||||
|
<FillFromFillingValue>false</FillFromFillingValue>
|
||||||
|
<FillValue xsi:nil="true"/>
|
||||||
|
<FillChecking>DontCheck</FillChecking>
|
||||||
|
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
|
||||||
|
<ChoiceParameterLinks/>
|
||||||
|
<ChoiceParameters/>
|
||||||
|
<QuickChoice>Auto</QuickChoice>
|
||||||
|
<CreateOnInput>Auto</CreateOnInput>
|
||||||
|
<ChoiceForm/>
|
||||||
|
<LinkByType/>
|
||||||
|
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
|
||||||
|
<Indexing>Index</Indexing>
|
||||||
|
<FullTextSearch>Use</FullTextSearch>
|
||||||
|
<DataHistory>Use</DataHistory>
|
||||||
|
</Properties>
|
||||||
|
</Attribute>
|
||||||
|
<Attribute uuid="d39a6a5c-73a0-4df9-a3b1-b62fb0c2041a">
|
||||||
|
<Properties>
|
||||||
|
<Name>Автор</Name>
|
||||||
|
<Synonym>
|
||||||
|
<v8:item>
|
||||||
|
<v8:lang>ru</v8:lang>
|
||||||
|
<v8:content>Автор</v8:content>
|
||||||
|
</v8:item>
|
||||||
|
</Synonym>
|
||||||
|
<Comment/>
|
||||||
|
<Type>
|
||||||
|
<v8:Type>cfg:CatalogRef.Пользователи</v8:Type>
|
||||||
|
</Type>
|
||||||
|
<PasswordMode>false</PasswordMode>
|
||||||
|
<Format/>
|
||||||
|
<EditFormat/>
|
||||||
|
<ToolTip/>
|
||||||
|
<MarkNegatives>false</MarkNegatives>
|
||||||
|
<Mask/>
|
||||||
|
<MultiLine>false</MultiLine>
|
||||||
|
<ExtendedEdit>false</ExtendedEdit>
|
||||||
|
<MinValue xsi:nil="true"/>
|
||||||
|
<MaxValue xsi:nil="true"/>
|
||||||
|
<FillFromFillingValue>false</FillFromFillingValue>
|
||||||
|
<FillValue xsi:nil="true"/>
|
||||||
|
<FillChecking>DontCheck</FillChecking>
|
||||||
|
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
|
||||||
|
<ChoiceParameterLinks/>
|
||||||
|
<ChoiceParameters/>
|
||||||
|
<QuickChoice>Auto</QuickChoice>
|
||||||
|
<CreateOnInput>Auto</CreateOnInput>
|
||||||
|
<ChoiceForm/>
|
||||||
|
<LinkByType/>
|
||||||
|
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
|
||||||
|
<Indexing>Index</Indexing>
|
||||||
|
<FullTextSearch>DontUse</FullTextSearch>
|
||||||
|
<DataHistory>Use</DataHistory>
|
||||||
|
</Properties>
|
||||||
|
</Attribute>
|
||||||
|
<Form>ФормаДокумента</Form>
|
||||||
|
<Form>ФормаСписка</Form>
|
||||||
|
<TabularSection uuid="95245065-867e-4d1f-a8f9-ebed62cd0489">
|
||||||
|
<InternalInfo>
|
||||||
|
<xr:GeneratedType name="DocumentTabularSection.РКО.ТабличнаяЧасть1" category="TabularSection">
|
||||||
|
<xr:TypeId>80865b81-ba79-4e7f-bbb6-c9817e08f4dd</xr:TypeId>
|
||||||
|
<xr:ValueId>3608b01d-e050-453f-ae0a-93e3eea243c3</xr:ValueId>
|
||||||
|
</xr:GeneratedType>
|
||||||
|
<xr:GeneratedType name="DocumentTabularSectionRow.РКО.ТабличнаяЧасть1" category="TabularSectionRow">
|
||||||
|
<xr:TypeId>7720174e-1f6c-4639-98d8-9a488f6488a5</xr:TypeId>
|
||||||
|
<xr:ValueId>73fe98f8-8875-49ef-ac49-37806daf575b</xr:ValueId>
|
||||||
|
</xr:GeneratedType>
|
||||||
|
</InternalInfo>
|
||||||
|
<Properties>
|
||||||
|
<Name>ТабличнаяЧасть1</Name>
|
||||||
|
<Synonym>
|
||||||
|
<v8:item>
|
||||||
|
<v8:lang>ru</v8:lang>
|
||||||
|
<v8:content>ТабличнаяЧасть1</v8:content>
|
||||||
|
</v8:item>
|
||||||
|
</Synonym>
|
||||||
|
<Comment>ТабличнаяЧасть1</Comment>
|
||||||
|
<ToolTip/>
|
||||||
|
<FillChecking>DontCheck</FillChecking>
|
||||||
|
</Properties>
|
||||||
|
<ChildObjects>
|
||||||
|
<Attribute uuid="b04234e4-d0ca-4a9c-9735-794e9e798f7c">
|
||||||
|
<Properties>
|
||||||
|
<Name>Субконто</Name>
|
||||||
|
<Synonym>
|
||||||
|
<v8:item>
|
||||||
|
<v8:lang>ru</v8:lang>
|
||||||
|
<v8:content>Субконто</v8:content>
|
||||||
|
</v8:item>
|
||||||
|
</Synonym>
|
||||||
|
<Comment/>
|
||||||
|
<Type>
|
||||||
|
<v8:Type>cfg:CatalogRef.ВидыОпераций</v8:Type>
|
||||||
|
<v8:Type>cfg:CatalogRef.Сотрудники</v8:Type>
|
||||||
|
<v8:Type>cfg:CatalogRef.СтатьиЗатрат</v8:Type>
|
||||||
|
<v8:Type>cfg:CatalogRef.Пользователи</v8:Type>
|
||||||
|
<v8:Type>cfg:CatalogRef.Контрагенты</v8:Type>
|
||||||
|
<v8:Type>cfg:CatalogRef.ЕдиницыИзмерения</v8:Type>
|
||||||
|
<v8:Type>cfg:CatalogRef.БанковскиеСчета</v8:Type>
|
||||||
|
<v8:Type>cfg:CatalogRef.Номенклатура</v8:Type>
|
||||||
|
<v8:Type>cfg:CatalogRef.Кассы</v8:Type>
|
||||||
|
<v8:Type>cfg:CatalogRef.Машины</v8:Type>
|
||||||
|
<v8:Type>cfg:CatalogRef.Подразделения</v8:Type>
|
||||||
|
</Type>
|
||||||
|
<PasswordMode>false</PasswordMode>
|
||||||
|
<Format/>
|
||||||
|
<EditFormat/>
|
||||||
|
<ToolTip/>
|
||||||
|
<MarkNegatives>false</MarkNegatives>
|
||||||
|
<Mask/>
|
||||||
|
<MultiLine>false</MultiLine>
|
||||||
|
<ExtendedEdit>false</ExtendedEdit>
|
||||||
|
<MinValue xsi:nil="true"/>
|
||||||
|
<MaxValue xsi:nil="true"/>
|
||||||
|
<FillChecking>DontCheck</FillChecking>
|
||||||
|
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
|
||||||
|
<ChoiceParameterLinks/>
|
||||||
|
<ChoiceParameters/>
|
||||||
|
<QuickChoice>Auto</QuickChoice>
|
||||||
|
<CreateOnInput>Auto</CreateOnInput>
|
||||||
|
<ChoiceForm/>
|
||||||
|
<LinkByType/>
|
||||||
|
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
|
||||||
|
<Indexing>Index</Indexing>
|
||||||
|
<FullTextSearch>Use</FullTextSearch>
|
||||||
|
<DataHistory>Use</DataHistory>
|
||||||
|
</Properties>
|
||||||
|
</Attribute>
|
||||||
|
</ChildObjects>
|
||||||
|
</TabularSection>
|
||||||
|
</ChildObjects>
|
||||||
|
</Document>
|
||||||
|
</MetaDataObject>
|
16
tests/fixtures/ПроверкаДублейПроцедурСПараметрами.bsl
vendored
Normal file
16
tests/fixtures/ПроверкаДублейПроцедурСПараметрами.bsl
vendored
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
|
||||||
|
Процедура РадномныеВычисления (парам1)
|
||||||
|
КонецПроцедуры;
|
||||||
|
|
||||||
|
Функция РадномныеВычисления() Экспорт
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Процедура Изменить(Парам1, Парам2)
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура Изменить(Парам 1 = Неопределено)
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция _Функ1()
|
||||||
|
КонецФункции
|
||||||
|
|
@ -8,15 +8,19 @@
|
|||||||
|
|
||||||
// Основная точка входа
|
// Основная точка входа
|
||||||
Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт
|
Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт
|
||||||
|
|
||||||
юТест = ЮнитТестирование;
|
юТест = ЮнитТестирование;
|
||||||
|
|
||||||
ВсеТесты = Новый Массив;
|
ВсеТесты = Новый Массив;
|
||||||
|
|
||||||
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурВызываетИсключение");
|
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурВызываетИсключение");
|
||||||
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурОбработаетФайл");
|
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурОбработаетФайл");
|
||||||
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурНеОбработаетНесуществующийФайл");
|
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурНеОбработаетНесуществующийФайл");
|
||||||
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурНеОбработаетНеИсходник");
|
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурНеОбработаетНеИсходник");
|
||||||
|
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийОтключенияПолнотекстовогоПоискаИмеетМетодПолученияНастроек");
|
||||||
|
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийРазбораОтчетовОбработокРасширенийИмеетМетодПолученияНастроек");
|
||||||
|
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийОтключенияПолнотекстовогоПоискаВозвращаетНастройки");
|
||||||
|
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийРазбораОтчетовОбработокРасширенийВозвращаетНастройки");
|
||||||
|
|
||||||
Возврат ВсеТесты;
|
Возврат ВсеТесты;
|
||||||
|
|
||||||
@ -28,7 +32,7 @@
|
|||||||
Лог = Логирование.ПолучитьЛог(ВремТестер.ИмяЛога());
|
Лог = Логирование.ПолучитьЛог(ВремТестер.ИмяЛога());
|
||||||
|
|
||||||
ВключитьПоказОтладки();
|
ВключитьПоказОтладки();
|
||||||
|
|
||||||
МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов;
|
МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
@ -37,46 +41,81 @@
|
|||||||
|
|
||||||
МенеджерВременныхФайлов.Удалить();
|
МенеджерВременныхФайлов.Удалить();
|
||||||
МенеджерВременныхФайлов = Неопределено;
|
МенеджерВременныхФайлов = Неопределено;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ТестДолжен_ПроверитьЧтоСценарийОтключенияПолнотекстовогоПоискаИмеетМетодПолученияНастроек() Экспорт
|
||||||
|
|
||||||
|
ОбъектСценария = ПолучитьСценарий("ОтключениеПолнотекстовогоПоиска.os");
|
||||||
|
|
||||||
|
СценарийИмеетМетод(ОбъектСценария, НазваниеМетодаНастроек());
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ТестДолжен_ПроверитьЧтоСценарийРазбораОтчетовОбработокРасширенийИмеетМетодПолученияНастроек() Экспорт
|
||||||
|
|
||||||
|
ОбъектСценария = ПолучитьСценарий("РазборОтчетовОбработокРасширений.os");
|
||||||
|
|
||||||
|
СценарийИмеетМетод(ОбъектСценария, НазваниеМетодаНастроек());
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ТестДолжен_ПроверитьЧтоСценарийОтключенияПолнотекстовогоПоискаВозвращаетНастройки() Экспорт
|
||||||
|
|
||||||
|
ОбъектСценария = ПолучитьСценарий("ОтключениеПолнотекстовогоПоиска.os");
|
||||||
|
|
||||||
|
СценарийВозвращаетНастройки(ОбъектСценария, "ОтключениеПолнотекстовогоПоиска");
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ТестДолжен_ПроверитьЧтоСценарийРазбораОтчетовОбработокРасширенийВозвращаетНастройки() Экспорт
|
||||||
|
|
||||||
|
ОбъектСценария = ПолучитьСценарий("РазборОтчетовОбработокРасширений.os");
|
||||||
|
|
||||||
|
СценарийВозвращаетНастройки(ОбъектСценария, "РазборОтчетовОбработокРасширений");
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
Процедура ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурВызываетИсключение() Экспорт
|
Процедура ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурВызываетИсключение() Экспорт
|
||||||
|
|
||||||
ОбъектСценария = ПолучитьСценарийОбработкиПроверкаДублейПроцедурИФункций();
|
ОбъектСценария = ПолучитьСценарий("ПроверкаДублейПроцедурИФункций.os");
|
||||||
Файл = Новый Файл(ОбъединитьПути(КаталогТестовыхФикстур(), "ПроверкаДублейПроцедурНегативныйТест.bsl"));
|
Файл = Новый Файл(ОбъединитьПути(КаталогТестовыхФикстур(), "ПроверкаДублейПроцедурНегативныйТест.bsl"));
|
||||||
|
СПараметрами = Новый Файл(ОбъединитьПути(КаталогТестовыхФикстур(), "ПроверкаДублейПроцедурСПараметрами.bsl"));
|
||||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "обнаружены неуникальные имена методов");
|
|
||||||
|
|
||||||
|
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "обнаружены неуникальные имена методов");
|
||||||
|
ВызываетсяИсключениеСТекстом(ОбъектСценария, СПараметрами, "обнаружены неуникальные имена методов");
|
||||||
|
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
Процедура ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурОбработаетФайл() Экспорт
|
Процедура ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурОбработаетФайл() Экспорт
|
||||||
|
|
||||||
Файл = Новый Файл(ОбъединитьПути(КаталогТестовыхФикстур(), "ПроверкаДублейПроцедурПоложительныйТест.bsl"));
|
Файл = Новый Файл(ОбъединитьПути(КаталогТестовыхФикстур(), "ПроверкаДублейПроцедурПоложительныйТест.bsl"));
|
||||||
ОбъектСценария = ПолучитьСценарийОбработкиПроверкаДублейПроцедурИФункций();
|
ОбъектСценария = ПолучитьСценарий("ПроверкаДублейПроцедурИФункций.os");
|
||||||
Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ПолучитьДополнительныеНастройки());
|
Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ПолучитьДополнительныеНастройки());
|
||||||
|
|
||||||
Ожидаем.Что(Результат, Истина).ЭтоИстина();
|
Ожидаем.Что(Результат, Истина).ЭтоИстина();
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
Процедура ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурНеОбработаетНесуществующийФайл() Экспорт
|
Процедура ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурНеОбработаетНесуществующийФайл() Экспорт
|
||||||
|
|
||||||
Файл = Новый Файл(ПолучитьИмяВременногоФайла("bsl"));
|
Файл = Новый Файл(ПолучитьИмяВременногоФайла("bsl"));
|
||||||
ОбъектСценария = ПолучитьСценарийОбработкиПроверкаДублейПроцедурИФункций();
|
ОбъектСценария = ПолучитьСценарий("ПроверкаДублейПроцедурИФункций.os");
|
||||||
Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ПолучитьДополнительныеНастройки());
|
Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ПолучитьДополнительныеНастройки());
|
||||||
|
|
||||||
Ожидаем.Что(Результат, Истина).ЭтоЛожь();
|
Ожидаем.Что(Результат, Истина).ЭтоЛожь();
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
Процедура ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурНеОбработаетНеИсходник() Экспорт
|
Процедура ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурНеОбработаетНеИсходник() Экспорт
|
||||||
|
|
||||||
Файл = Новый Файл(МенеджерВременныхФайлов.СоздатьФайл("xml"));
|
Файл = Новый Файл(МенеджерВременныхФайлов.СоздатьФайл("xml"));
|
||||||
ОбъектСценария = ПолучитьСценарийОбработкиПроверкаДублейПроцедурИФункций();
|
ОбъектСценария = ПолучитьСценарий("ПроверкаДублейПроцедурИФункций.os");
|
||||||
Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ПолучитьДополнительныеНастройки());
|
Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ПолучитьДополнительныеНастройки());
|
||||||
|
|
||||||
Ожидаем.Что(Результат, Истина).ЭтоЛожь();
|
Ожидаем.Что(Результат, Истина).ЭтоЛожь();
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
Процедура ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, ТекстИсключения)
|
Процедура ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, ТекстИсключения)
|
||||||
@ -87,20 +126,39 @@
|
|||||||
ПараметрыМетода.Добавить(Файл);
|
ПараметрыМетода.Добавить(Файл);
|
||||||
ПараметрыМетода.Добавить(Файл.Путь);
|
ПараметрыМетода.Добавить(Файл.Путь);
|
||||||
ПараметрыМетода.Добавить(ДополнительныеНастройки);
|
ПараметрыМетода.Добавить(ДополнительныеНастройки);
|
||||||
|
|
||||||
Ожидаем.Что(ОбъектСценария).Метод("ОбработатьФайл", ПараметрыМетода).ВыбрасываетИсключение(ТекстИсключения);
|
Ожидаем.Что(ОбъектСценария).Метод("ОбработатьФайл", ПараметрыМетода).ВыбрасываетИсключение(ТекстИсключения);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
Функция ПолучитьСценарийОбработкиПроверкаДублейПроцедурИФункций()
|
Процедура СценарийИмеетМетод(ОбъектСценария, ИмяМетода)
|
||||||
|
|
||||||
Сценарий = ОбъединитьПути(КаталогИсходников(), "src", "СценарииОбработки", "ПроверкаДублейПроцедурИФункций.os");
|
Рефлектор = Новый Рефлектор;
|
||||||
|
ЕстьМетод = Рефлектор.МетодСуществует(ОбъектСценария, ИмяМетода);
|
||||||
|
|
||||||
|
Ожидаем.Что(ЕстьМетод, Истина).ЭтоИстина();
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Функция ПолучитьСценарий(ИмяСценария)
|
||||||
|
|
||||||
|
Сценарий = ОбъединитьПути(КаталогИсходников(), "src", "СценарииОбработки", ИмяСценария);
|
||||||
ОбъектСценария = ЗагрузитьСценарий(Сценарий);
|
ОбъектСценария = ЗагрузитьСценарий(Сценарий);
|
||||||
|
|
||||||
Возврат ОбъектСценария;
|
Возврат ОбъектСценария;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
Процедура СценарийВозвращаетНастройки(ОбъектСценария, ИмяНастройки)
|
||||||
|
|
||||||
|
Рефлектор = Новый Рефлектор;
|
||||||
|
СтруктураНастроек = Рефлектор.ВызватьМетод(ОбъектСценария, НазваниеМетодаНастроек());
|
||||||
|
|
||||||
|
Утверждения.ПроверитьРавенство(СтруктураНастроек.ИмяСценария, ИмяНастройки);
|
||||||
|
Утверждения.ПроверитьРавенство(ТипЗнч(СтруктураНастроек.Настройка), Тип("Соответствие"));
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
Процедура ВключитьПоказОтладки()
|
Процедура ВключитьПоказОтладки()
|
||||||
Лог.УстановитьУровень(УровниЛога.Отладка);
|
Лог.УстановитьУровень(УровниЛога.Отладка);
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
@ -117,11 +175,17 @@
|
|||||||
Возврат ОбъединитьПути(ТекущийСценарий().Каталог, "..");
|
Возврат ОбъединитьПути(ТекущийСценарий().Каталог, "..");
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
Функция НазваниеМетодаНастроек()
|
||||||
|
|
||||||
|
Возврат "ПолучитьСтандартныеНастройкиСценария";
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
Функция ПолучитьДополнительныеНастройки()
|
Функция ПолучитьДополнительныеНастройки()
|
||||||
|
|
||||||
УправлениеНастройками = Новый НастройкиРепозитория(ТекущийКаталог());
|
УправлениеНастройками = Новый НастройкиРепозитория(ТекущийКаталог());
|
||||||
ДополнительныеНастройки = Новый Структура("Лог, УправлениеНастройками", Лог, УправлениеНастройками);
|
ДополнительныеНастройки = Новый Структура("Лог, УправлениеНастройками", Лог, УправлениеНастройками);
|
||||||
|
|
||||||
Возврат ДополнительныеНастройки;
|
Возврат ДополнительныеНастройки;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
"ДобавлениеПробеловПередКлючевымиСловами.os",
|
"ДобавлениеПробеловПередКлючевымиСловами.os",
|
||||||
"ЗапретИспользованияПерейти.os",
|
"ЗапретИспользованияПерейти.os",
|
||||||
"КорректировкаXMLФорм.os",
|
"КорректировкаXMLФорм.os",
|
||||||
|
"ОтключениеПолнотекстовогоПоиска.os",
|
||||||
"ПроверкаДублейПроцедурИФункций.os",
|
"ПроверкаДублейПроцедурИФункций.os",
|
||||||
"ПроверкаКорректностиОбластей.os",
|
"ПроверкаКорректностиОбластей.os",
|
||||||
"РазборОбычныхФормНаИсходники.os",
|
"РазборОбычныхФормНаИсходники.os",
|
||||||
@ -17,6 +18,14 @@
|
|||||||
"УдалениеЛишнихПустыхСтрок.os"
|
"УдалениеЛишнихПустыхСтрок.os"
|
||||||
],
|
],
|
||||||
"НастройкиСценариев": {
|
"НастройкиСценариев": {
|
||||||
|
"ОтключениеПолнотекстовогоПоиска": {
|
||||||
|
"МетаданныеДляИсключения": {
|
||||||
|
"src\\_example.xml": [
|
||||||
|
"Номер"
|
||||||
|
],
|
||||||
|
"src\\_example2.xml": []
|
||||||
|
}
|
||||||
|
},
|
||||||
"РазборОтчетовОбработокРасширений": {
|
"РазборОтчетовОбработокРасширений": {
|
||||||
"ИспользоватьНастройкиПоУмолчанию": true,
|
"ИспользоватьНастройкиПоУмолчанию": true,
|
||||||
"ВерсияПлатформы": ""
|
"ВерсияПлатформы": ""
|
||||||
|
Loading…
Reference in New Issue
Block a user