Skip to content

Commit

Permalink
Merge pull request #6 from otymko/31-05-2018
Browse files Browse the repository at this point in the history
Разбор правил регистрации. Исправление багов.
  • Loading branch information
otymko authored Jun 1, 2018
2 parents 609eecb + 97c55ec commit 6eb6cc6
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 15 deletions.
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

0 comments on commit 6eb6cc6

Please sign in to comment.