Skip to content

Commit b0807b8

Browse files
authored
Merge pull request #16 from pallid/master
WIP: #15 Параметры алгоритмов
2 parents 2de3da6 + c18f3fc commit b0807b8

File tree

4 files changed

+43
-2
lines changed

4 files changed

+43
-2
lines changed

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@
8383

8484
Идентификатор = ?(Не ПустаяСтрока(ТекущаяСтрока.Идентификатор), ТекущаяСтрока.Идентификатор, ТекущаяСтрока.Имя);
8585

86-
Если ИмяЭлементаСтроки = "Параметры"
86+
Если (ИмяЭлементаСтроки = "Параметры" И НЕ ТекущаяСтрока.Родитель.Имя = "Алгоритм")
8787
Или ИмяЭлементаСтроки = "Обработки"
8888
Или ИмяЭлементаСтроки = "ПравилаКонвертацииОбъектов"
8989
Или ИмяЭлементаСтроки = "ПравилаВыгрузкиДанных"
@@ -111,6 +111,11 @@
111111

112112
ИмяКаталогаСобытий = СоздатьКаталогСобытий(ТекущийКаталог);
113113
ЗаписатьСобытиеПравилВФайл(ТекущаяСтрока, ТекущаяСтрока.Имя, ИмяКаталогаСобытий);
114+
115+
ИначеЕсли ИмяЭлементаСтроки = "Параметры" И ТекущаяСтрока.Родитель.Имя = "Алгоритм" Тогда
116+
117+
ИмяКаталогаСобытий = СоздатьКаталогСобытий(ТекущийКаталог);
118+
ЗаписатьСобытиеПравилВФайл(ТекущаяСтрока, ТекущаяСтрока.Имя, ИмяКаталогаСобытий, Неопределено);
114119

115120
ИначеЕсли ИмяЭлементаСтроки = "Группа" Или ИмяЭлементаСтроки = "Свойства" Или ИмяЭлементаСтроки = "Значения" Тогда
116121

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -584,6 +584,12 @@
584584
Текст = ПрочитатьИзТекстовогоДокумента(СтрокаТекста.Путь);
585585
ДобавитьНовуюСтрокуДереваПравил(УзелАлгоритма, "Текст",,Текст);
586586
КонецЕсли;
587+
588+
СтрокаПараметры = СтрокаДереваСобытий.Строки.Найти("Параметры", "Имя");
589+
Если СтрокаПараметры <> Неопределено Тогда
590+
Параметры = ПрочитатьИзТекстовогоДокумента(СтрокаПараметры.Путь);
591+
ДобавитьНовуюСтрокуДереваПравил(УзелАлгоритма, "Параметры",,Параметры);
592+
КонецЕсли;
587593

588594
КонецЕсли;
589595

tests/fixtures/fake-rules.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19705,6 +19705,16 @@
1970519705

1970619706
КонецЦикла;</Текст>
1970719707
</Алгоритм>
19708+
<Алгоритм Имя="ФейковыйАлгоритмСПараметрами" ИспользуетсяПриЗагрузке="false">
19709+
<Текст>
19710+
Если ЗначениеЗаполнено(ОбъектКоллекции)Тогда
19711+
Значение = ОбъектКоллекции.Данные;
19712+
Иначе
19713+
Пусто = Истина;
19714+
КонецЕсли;
19715+
</Текст>
19716+
<Параметры>Значение, ОбъектКоллекции, Пусто</Параметры>
19717+
</Алгоритм>
1970819718
</Алгоритмы>
1970919719
<Запросы/>
1971019720
</ПравилаОбмена>

tests/РазобратьсяПравилаОбмена_test.os

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
Перем юТест;
66
Перем Лог;
7+
Перем КаталогРаспаковки;
78

89
Функция ПолучитьСписокТестов(Знач Тестирование) Экспорт
910

@@ -12,11 +13,16 @@
1213
ИменаТестов = Новый Массив;
1314

1415
ИменаТестов.Добавить("ТестДолжен_ПроверитьРазборкуПравилОбмена");
16+
ИменаТестов.Добавить("ТестДолжен_ПроверитьРазборкуПравилОбменаССозданиеПараметровДляАлгоритмов");
1517

1618
Возврат ИменаТестов;
1719

1820
КонецФункции
1921

22+
Процедура ПередОкончаниемСценария() Экспорт
23+
ВременныеФайлы.УдалитьФайл(КаталогРаспаковки);
24+
КонецПроцедуры
25+
2026
Процедура ТестДолжен_ПроверитьРазборкуПравилОбмена() Экспорт
2127

2228
КаталогРаспаковки = ВременныеФайлы.СоздатьКаталог();
@@ -29,7 +35,21 @@
2935

3036
Ожидаем.Что(МассивФайлов.Количество(), "Количество файлов должно быть больше 0").Больше(0);
3137

32-
ВременныеФайлы.УдалитьФайл(КаталогРаспаковки);
38+
КонецПроцедуры
39+
40+
Процедура ТестДолжен_ПроверитьРазборкуПравилОбменаССозданиеПараметровДляАлгоритмов() Экспорт
41+
42+
Результат = Ложь;
43+
44+
МассивФайлов = НайтиФайлы(КаталогРаспаковки, "Параметры", Истина);
45+
46+
Для каждого СтрокаМассива Из МассивФайлов Цикл
47+
Если СтрокаМассива.ЭтоФайл() Тогда
48+
Результат = Истина;
49+
КонецЕсли;
50+
КонецЦикла;
51+
52+
Ожидаем.Что(Результат, "Должен быть файл Параметры").Равно(Истина);
3353

3454
КонецПроцедуры
3555

0 commit comments

Comments
 (0)