Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion packagedef
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
ИмяПродукта = НРег(ПараметрыСистемы_ЛокальнаяВерсия.ИмяПродукта());

Описание.Имя("gitrules")
.Версия("0.1.0")
.Версия("0.1.2")
.Автор("otymko")
.АдресАвтора("olegtymko@yandex.ru")
.Описание("Версионирование правил обмена 1С с помощью git")
Expand Down
49 changes: 35 additions & 14 deletions src/Модули/РазобратьПравилаОбмена.os
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
Перем ИменаИсключений;
Перем ТекущийПорядок;

Перем ЭтоПравилаРегистрации;

//Служебные переменные
Перем НаименованиеКаталогаСобытий;

Expand Down Expand Up @@ -80,17 +82,20 @@
МассивОбработчиков.Добавить("ПослеВыгрузки");
МассивОбработчиков.Добавить("ПослеВыгрузкиОбъектаВФайл");
МассивОбработчиков.Добавить("ПослеЗагрузки");

МассивОбработчиков.Добавить("ПослеВыгрузкиВФайл");
МассивОбработчиков.Добавить("ПередЗагрузкой");
МассивОбработчиков.Добавить("ПриЗагрузке");

МассивОбработчиков.Добавить("ПередЗагрузкойОбъекта");
МассивОбработчиков.Добавить("ПриЗагрузкеОбъекта");
МассивОбработчиков.Добавить("ПослеЗагрузкиОбъекта");
МассивОбработчиков.Добавить("ПоследовательностьПолейПоиска");

//ПравилаРегистрацииОбъектов
МассивОбработчиков.Добавить("ПередОбработкойПравила");
МассивОбработчиков.Добавить("ПриОбработкеПравила");
МассивОбработчиков.Добавить("ПриОбработкеДополнительныйПравила");
МассивОбработчиков.Добавить("ПослеОбработкиПравила");
МассивОбработчиков.Добавить("ПередОбработкой");
МассивОбработчиков.Добавить("ПриОбработке");
МассивОбработчиков.Добавить("ПриОбработкеДополнительный");
МассивОбработчиков.Добавить("ПослеОбработки");

//ПравилаОчисткиОбъектов
МассивОбработчиков.Добавить("ПередОбработкойПравила");
Expand Down Expand Up @@ -156,6 +161,8 @@
УдалитьФайлы(КаталогИсходныхПравил);
Возврат;
КонецЕсли;

//ЭтоПравилаРегистрации = ИмяКорневогоУзла = "ПравилаРегистрации";

КорневойУзел.Каталог = КаталогИсходныхПравил;

Expand Down Expand Up @@ -194,13 +201,17 @@
Или ИмяЭлементаСтроки = "ПравилаВыгрузкиДанных"
Или ИмяЭлементаСтроки = "ПравилаОчисткиДанных"
Или ИмяЭлементаСтроки = "Алгоритмы"
Или ИмяЭлементаСтроки = "Запросы" Тогда
Или ИмяЭлементаСтроки = "Запросы"
Или ИмяЭлементаСтроки = "СоставПланаОбмена"
Или ИмяЭлементаСтроки = "ПравилаРегистрацииОбъектов"
Или ИмяЭлементаСтроки = "ОтборПоСвойствамПланаОбмена"
Или ИмяЭлементаСтроки = "ОтборПоСвойствамОбъекта"
Или ИмяЭлементаСтроки = "ТаблицаСвойствОбъекта"
Или ИмяЭлементаСтроки = "ТаблицаСвойствПланаОбмена" Тогда

ИмяКаталогаСтроки = ОбъединитьПути(ТекущийКаталог, ИмяЭлементаСтроки);
СоздатьКаталог(ИмяКаталогаСтроки);

ТекущаяСтрока.Каталог = ИмяКаталогаСтроки;

СоздатьКаталог(ИмяКаталогаСтроки);
ТекущаяСтрока.Каталог = ИмяКаталогаСтроки;
РекурсивноРазобратьДеревоПравил(ТекущаяСтрока, ИмяЭлементаСтроки, ИмяКаталогаСтроки);

ИначеЕсли ИменаСобытийКонвертации.Найти(ИмяЭлементаСтроки) <> Неопределено Тогда
Expand Down Expand Up @@ -232,7 +243,9 @@
Или ИмяЭлементаСтроки = "Алгоритм"
Или ИмяЭлементаСтроки = "Значение"
Или ИмяЭлементаСтроки = "Свойство"
Или ИмяЭлементаСтроки = "Параметр" Или ИмяЭлементаСтроки = "Обработка" Тогда
Или ИмяЭлементаСтроки = "Параметр"
Или ИмяЭлементаСтроки = "Обработка"
Или ИмяЭлементаСтроки = "ЭлементОтбора" Или ИмяЭлементаСтроки = "Элемент" Тогда

МассивРеквизитовТекущегоУзла = Новый Массив;

Expand All @@ -253,7 +266,6 @@
ЗаписатьСобытиеПравилВФайл(ТекущаяСтрока, "ДвоичныеДанные", ТекущаяСтрока.Каталог, Неопределено);
КонецЕсли;
КонецЕсли;

Иначе

Если МассивРеквизитовУзла = Неопределено Тогда
Expand Down Expand Up @@ -371,6 +383,7 @@

Функция ПрочитатьXMLВДеревоЗначений(Путь)

ЭтоПравилаРегистрации = Ложь;
Дерево = ПолучитьСтруктуруДерева();
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл(Путь);
Expand All @@ -392,6 +405,10 @@
Пока ЧтениеXML.Прочитать() Цикл
Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда

Если Не ЭтоПравилаРегистрации И ЧтениеXML.Имя = "ПравилаРегистрации" Тогда
ЭтоПравилаРегистрации = Истина;
КонецЕсли;

НоваяСтрока = ТекущаяСтрокаДерева.Добавить();
НоваяСтрока.Имя = ЧтениеXML.Имя;
НоваяСтрока.ТипСтроки = "Элемент";
Expand All @@ -415,10 +432,14 @@

ТекущаяСтрокаДерева.Родитель.Значение = СокрЛП(ЧтениеXML.Значение);

Если ТекущаяСтрокаДерева.Родитель.Имя = "Код" Или ТекущаяСтрокаДерева.Родитель.Имя = "Номер" Или ТекущаяСтрокаДерева.Родитель.Имя = "Имя" Тогда
Если (ТекущаяСтрокаДерева.Родитель.Имя = "Код" Или ТекущаяСтрокаДерева.Родитель.Имя = "Номер" Или ТекущаяСтрокаДерева.Родитель.Имя = "Имя") И Не ЭтоПравилаРегистрации Тогда
ТекущаяСтрокаДерева.Родитель.Родитель.Идентификатор = СокрЛП(ЧтениеXML.Значение);
ИначеЕсли ЭтоПравилаРегистрации И (ТекущаяСтрокаДерева.Родитель.Имя = "Номер" Или ТекущаяСтрокаДерева.Родитель.Имя = "Имя" Или ТекущаяСтрокаДерева.Родитель.Имя = "Наименование") Тогда
ТекущаяСтрокаДерева.Родитель.Родитель.Идентификатор = СокрЛП(ЧтениеXML.Значение);
ИначеЕсли ЭтоПравилаРегистрации И ТекущаяСтрокаДерева.Родитель.Имя = "Тип" И ТекущаяСтрокаДерева.Родитель.Родитель.Имя = "Элемент" Тогда
ТекущаяСтрокаДерева.Родитель.Родитель.Идентификатор = СокрЛП(ЧтениеXML.Значение);
ИначеЕсли ТекущаяСтрокаДерева.Родитель.Имя = "Порядок" Тогда
ТекущаяСтрокаДерева.Родитель.Родитель.Порядок = Число(СокрЛП(ЧтениеXML.Значение));
ТекущаяСтрокаДерева.Родитель.Родитель.Порядок = Число(СокрЛП(ЧтениеXML.Значение));
КонецЕсли;

ИначеЕсли ЧтениеXML.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
Expand Down