Skip to content

Commit 9b440bf

Browse files
committed
Возможность выгружать правила в конкретный файл
1 parent b0807b8 commit 9b440bf

File tree

3 files changed

+24
-8
lines changed

3 files changed

+24
-8
lines changed

src/cmd/Классы/КомандаExport.os

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,19 @@
1212
.ТСтрока(); // тип опции Строка
1313

1414
Команда.Аргумент("PATH", "" ,"Путь к каталогу распаковки правил")
15-
.ТСтрока(); // тип опции Строка
15+
.ТСтрока(); // тип опции Строка
16+
17+
Команда.Опция("h here", Ложь, "Выгружать правило в выбранный каталог")
18+
.ТБулево()
19+
.Обязательный(Ложь);
1620

1721
КонецПроцедуры
1822

1923
Процедура ВыполнитьКоманду(Знач Команда) Экспорт
2024

2125
ПутьКФайлуПравила = Команда.ЗначениеАргумента("FILE");
2226
КаталогРаспаковки = Команда.ЗначениеАргумента("PATH");
27+
ВыгружатьВВыбранныйКаталог = Команда.ЗначениеОпции("here");
2328

2429
ФайлСПравилами = Новый Файл(ПутьКФайлуПравила);
2530
Если Не ФайлСПравилами.Существует() Или ФайлСПравилами.ЭтоКаталог() Тогда
@@ -37,6 +42,7 @@
3742
ФС.ОбеспечитьКаталог(КаталогРаспаковки);
3843

3944
МенеджерПравил = Новый ОбработкаПравил();
45+
МенеджерПравил.УстановитьЗначениеВыгружатьВВыбранныйКаталог(ВыгружатьВВыбранныйКаталог);
4046
МенеджерПравил.РазложитьПравилаКонвертации(ПутьКФайлуПравила, КаталогРаспаковки);
4147

4248
КонецПроцедуры

src/core/Классы/ОбработкаПравил.os

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#Использовать 1commands
22

33
Перем ОсновнойКаталогПравил;
4+
Перем ВыгружатьВВыбранныйКаталог;
45

56
Процедура Инициализация()
67

@@ -34,7 +35,7 @@
3435
Процедура РазложитьПравилаКонвертации(Знач ПутьКПравилам, Знач КаталогРаспаковки) Экспорт
3536

3637
Сообщить("START Export");
37-
РазобратьПравилаОбмена.ВыполнитьРазбор(КаталогРаспаковки, ПутьКПравилам);
38+
РазобратьПравилаОбмена.ВыполнитьРазбор(КаталогРаспаковки, ПутьКПравилам, ВыгружатьВВыбранныйКаталог);
3839
Сообщить("END");
3940

4041
КонецПроцедуры
@@ -59,6 +60,10 @@
5960

6061
КонецПроцедуры
6162

63+
Процедура УстановитьЗначениеВыгружатьВВыбранныйКаталог(Знач Значение) Экспорт
64+
ВыгружатьВВыбранныйКаталог = Значение;
65+
КонецПроцедуры
66+
6267
Процедура УстановитьОсновнойКаталог(Знач Значение) Экспорт
6368
ОсновнойКаталогПравил = Значение;
6469
КонецПроцедуры
@@ -110,5 +115,6 @@
110115
КонецФункции
111116

112117
ОсновнойКаталогПравил = "";
118+
ВыгружатьВВыбранныйКаталог = Ложь;
113119

114120
Инициализация();

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

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,15 @@
3030
// КонецЦикла;
3131
// КонецПроцедуры
3232

33-
Процедура ВыполнитьРазбор(Знач ОсновнойКаталогПравил, Знач ПутьКФайлуПравилОбмена) Экспорт
33+
Процедура ВыполнитьРазбор(Знач ОсновнойКаталогПравил, Знач ПутьКФайлуПравилОбмена, Знач ВыгружатьВВыбранныйКаталог = Ложь) Экспорт
3434

3535
ФайлПравил = Новый Файл(ПутьКФайлуПравилОбмена);
36-
КаталогИсходныхПравил = ОбъединитьПути(ОсновнойКаталогПравил, ФайлПравил.Имя);
37-
ОбщийФункционал.СоздатьКаталогРасширенный(КаталогИсходныхПравил);
36+
Если ВыгружатьВВыбранныйКаталог Тогда
37+
КаталогИсходныхПравил = ОсновнойКаталогПравил;
38+
Иначе
39+
КаталогИсходныхПравил = ОбъединитьПути(ОсновнойКаталогПравил, ФайлПравил.Имя);
40+
ОбщийФункционал.СоздатьКаталогРасширенный(КаталогИсходныхПравил);
41+
КонецЕсли;
3842
ИнициализироватьНачальныеПараметры();
3943
РазобратьПравила(ПутьКФайлуПравилОбмена);
4044

@@ -55,7 +59,7 @@
5559
УдалитьФайлы(КаталогИсходныхПравил);
5660
Возврат;
5761
КонецЕсли;
58-
62+
5963
КорневойУзел.Каталог = КаталогИсходныхПравил;
6064
МассивРеквизитовУзла = Новый Массив;
6165
РекурсивноРазобратьДеревоПравил(КорневойУзел, ИмяКорневогоУзла, КаталогИсходныхПравил, МассивРеквизитовУзла);
@@ -111,7 +115,7 @@
111115

112116
ИмяКаталогаСобытий = СоздатьКаталогСобытий(ТекущийКаталог);
113117
ЗаписатьСобытиеПравилВФайл(ТекущаяСтрока, ТекущаяСтрока.Имя, ИмяКаталогаСобытий);
114-
118+
115119
ИначеЕсли ИмяЭлементаСтроки = "Параметры" И ТекущаяСтрока.Родитель.Имя = "Алгоритм" Тогда
116120

117121
ИмяКаталогаСобытий = СоздатьКаталогСобытий(ТекущийКаталог);
@@ -285,7 +289,7 @@
285289
Если Не ЭтоПравилаРегистрации И ЧтениеXML.Имя = "ПравилаРегистрации" Тогда
286290
ЭтоПравилаРегистрации = Истина;
287291
КонецЕсли;
288-
292+
289293
НоваяСтрока = ТекущаяСтрокаДерева.Добавить();
290294
НоваяСтрока.Имя = ЧтениеXML.Имя;
291295
НоваяСтрока.ТипСтроки = "Элемент";

0 commit comments

Comments
 (0)