Skip to content

Commit 6eb6cc6

Browse files
authored
Merge pull request #6 from otymko/31-05-2018
Разбор правил регистрации. Исправление багов.
2 parents 609eecb + 97c55ec commit 6eb6cc6

File tree

2 files changed

+36
-15
lines changed

2 files changed

+36
-15
lines changed

packagedef

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
ИмяПродукта = НРег(ПараметрыСистемы_ЛокальнаяВерсия.ИмяПродукта());
44

55
Описание.Имя("gitrules")
6-
.Версия("0.1.0")
6+
.Версия("0.1.2")
77
.Автор("otymko")
88
.АдресАвтора("olegtymko@yandex.ru")
99
.Описание("Версионирование правил обмена 1С с помощью git")

src/Модули/РазобратьПравилаОбмена.os

Lines changed: 35 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
Перем ИменаИсключений;
1111
Перем ТекущийПорядок;
1212

13+
Перем ЭтоПравилаРегистрации;
14+
1315
//Служебные переменные
1416
Перем НаименованиеКаталогаСобытий;
1517

@@ -80,17 +82,20 @@
8082
МассивОбработчиков.Добавить("ПослеВыгрузки");
8183
МассивОбработчиков.Добавить("ПослеВыгрузкиОбъектаВФайл");
8284
МассивОбработчиков.Добавить("ПослеЗагрузки");
83-
85+
МассивОбработчиков.Добавить("ПослеВыгрузкиВФайл");
86+
МассивОбработчиков.Добавить("ПередЗагрузкой");
87+
МассивОбработчиков.Добавить("ПриЗагрузке");
88+
8489
МассивОбработчиков.Добавить("ПередЗагрузкойОбъекта");
8590
МассивОбработчиков.Добавить("ПриЗагрузкеОбъекта");
8691
МассивОбработчиков.Добавить("ПослеЗагрузкиОбъекта");
8792
МассивОбработчиков.Добавить("ПоследовательностьПолейПоиска");
8893

8994
//ПравилаРегистрацииОбъектов
90-
МассивОбработчиков.Добавить("ПередОбработкойПравила");
91-
МассивОбработчиков.Добавить("ПриОбработкеПравила");
92-
МассивОбработчиков.Добавить("ПриОбработкеДополнительныйПравила");
93-
МассивОбработчиков.Добавить("ПослеОбработкиПравила");
95+
МассивОбработчиков.Добавить("ПередОбработкой");
96+
МассивОбработчиков.Добавить("ПриОбработке");
97+
МассивОбработчиков.Добавить("ПриОбработкеДополнительный");
98+
МассивОбработчиков.Добавить("ПослеОбработки");
9499

95100
//ПравилаОчисткиОбъектов
96101
МассивОбработчиков.Добавить("ПередОбработкойПравила");
@@ -156,6 +161,8 @@
156161
УдалитьФайлы(КаталогИсходныхПравил);
157162
Возврат;
158163
КонецЕсли;
164+
165+
//ЭтоПравилаРегистрации = ИмяКорневогоУзла = "ПравилаРегистрации";
159166

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

@@ -194,13 +201,17 @@
194201
Или ИмяЭлементаСтроки = "ПравилаВыгрузкиДанных"
195202
Или ИмяЭлементаСтроки = "ПравилаОчисткиДанных"
196203
Или ИмяЭлементаСтроки = "Алгоритмы"
197-
Или ИмяЭлементаСтроки = "Запросы" Тогда
204+
Или ИмяЭлементаСтроки = "Запросы"
205+
Или ИмяЭлементаСтроки = "СоставПланаОбмена"
206+
Или ИмяЭлементаСтроки = "ПравилаРегистрацииОбъектов"
207+
Или ИмяЭлементаСтроки = "ОтборПоСвойствамПланаОбмена"
208+
Или ИмяЭлементаСтроки = "ОтборПоСвойствамОбъекта"
209+
Или ИмяЭлементаСтроки = "ТаблицаСвойствОбъекта"
210+
Или ИмяЭлементаСтроки = "ТаблицаСвойствПланаОбмена" Тогда
198211

199212
ИмяКаталогаСтроки = ОбъединитьПути(ТекущийКаталог, ИмяЭлементаСтроки);
200-
СоздатьКаталог(ИмяКаталогаСтроки);
201-
202-
ТекущаяСтрока.Каталог = ИмяКаталогаСтроки;
203-
213+
СоздатьКаталог(ИмяКаталогаСтроки);
214+
ТекущаяСтрока.Каталог = ИмяКаталогаСтроки;
204215
РекурсивноРазобратьДеревоПравил(ТекущаяСтрока, ИмяЭлементаСтроки, ИмяКаталогаСтроки);
205216

206217
ИначеЕсли ИменаСобытийКонвертации.Найти(ИмяЭлементаСтроки) <> Неопределено Тогда
@@ -232,7 +243,9 @@
232243
Или ИмяЭлементаСтроки = "Алгоритм"
233244
Или ИмяЭлементаСтроки = "Значение"
234245
Или ИмяЭлементаСтроки = "Свойство"
235-
Или ИмяЭлементаСтроки = "Параметр" Или ИмяЭлементаСтроки = "Обработка" Тогда
246+
Или ИмяЭлементаСтроки = "Параметр"
247+
Или ИмяЭлементаСтроки = "Обработка"
248+
Или ИмяЭлементаСтроки = "ЭлементОтбора" Или ИмяЭлементаСтроки = "Элемент" Тогда
236249

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

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

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

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

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

408+
Если Не ЭтоПравилаРегистрации И ЧтениеXML.Имя = "ПравилаРегистрации" Тогда
409+
ЭтоПравилаРегистрации = Истина;
410+
КонецЕсли;
411+
395412
НоваяСтрока = ТекущаяСтрокаДерева.Добавить();
396413
НоваяСтрока.Имя = ЧтениеXML.Имя;
397414
НоваяСтрока.ТипСтроки = "Элемент";
@@ -415,10 +432,14 @@
415432

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

418-
Если ТекущаяСтрокаДерева.Родитель.Имя = "Код" Или ТекущаяСтрокаДерева.Родитель.Имя = "Номер" Или ТекущаяСтрокаДерева.Родитель.Имя = "Имя" Тогда
435+
Если (ТекущаяСтрокаДерева.Родитель.Имя = "Код" Или ТекущаяСтрокаДерева.Родитель.Имя = "Номер" Или ТекущаяСтрокаДерева.Родитель.Имя = "Имя") И Не ЭтоПравилаРегистрации Тогда
436+
ТекущаяСтрокаДерева.Родитель.Родитель.Идентификатор = СокрЛП(ЧтениеXML.Значение);
437+
ИначеЕсли ЭтоПравилаРегистрации И (ТекущаяСтрокаДерева.Родитель.Имя = "Номер" Или ТекущаяСтрокаДерева.Родитель.Имя = "Имя" Или ТекущаяСтрокаДерева.Родитель.Имя = "Наименование") Тогда
438+
ТекущаяСтрокаДерева.Родитель.Родитель.Идентификатор = СокрЛП(ЧтениеXML.Значение);
439+
ИначеЕсли ЭтоПравилаРегистрации И ТекущаяСтрокаДерева.Родитель.Имя = "Тип" И ТекущаяСтрокаДерева.Родитель.Родитель.Имя = "Элемент" Тогда
419440
ТекущаяСтрокаДерева.Родитель.Родитель.Идентификатор = СокрЛП(ЧтениеXML.Значение);
420441
ИначеЕсли ТекущаяСтрокаДерева.Родитель.Имя = "Порядок" Тогда
421-
ТекущаяСтрокаДерева.Родитель.Родитель.Порядок = Число(СокрЛП(ЧтениеXML.Значение));
442+
ТекущаяСтрокаДерева.Родитель.Родитель.Порядок = Число(СокрЛП(ЧтениеXML.Значение));
422443
КонецЕсли;
423444

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

0 commit comments

Comments
 (0)