|
Нужна помощь с рекурсией
| ☑ |
0
IoannVic
01.10.13
✎
16:09
|
Есть код при начале формирования таблицы
ГоловнаяТаблица = СформироватьГоловнуюТаблицу(ТекПроект);
Строка = ГоловнаяТаблица.Строки.Получить(0);
ВывестиСтрокуИПодчиненные(Строка);
Вызывает рекурсивную процедуру
Процедура ВывестиСтрокуИПодчиненные(Строка)
Для каждого Подч из Строка.Строки Цикл
ТекЗадача = Подч.Задача;
СписокПодзадач = ВыбратьПодзадачи(ТекЗадача);
Если СписокПодзадач.Строки.Количество()>0 тогда
ВывестиСтрокуИПодчиненные(СписокПодзадач.Строки.Получить(0));
КонецЕсли;
Сообщить(Подч.Задача);
КонецЦикла
КонецПроцедуры
Как теперь все это в дерево значений запихать, туплю не могу сообразить
|
|
1
Холодильник
01.10.13
✎
16:12
|
|
|
2
Михаил Козлов
01.10.13
✎
16:12
|
Добавить строку в коллекцию строк вместо Сообщить (только до вызова ВывестиСтрокуИПодчиненные).
|
|
3
IoannVic
01.10.13
✎
16:12
|
(1) Шутку оценил
|
|
4
IoannVic
01.10.13
✎
16:13
|
(2) А как объявить коллекцию строк внутри рекурсивной процедуры??
|
|
5
Михаил Козлов
01.10.13
✎
16:27
|
Строка.Строки.Добавить();
|
|
6
Холодильник
01.10.13
✎
16:29
|
проще таблицу подать в запрос с итогами, а дерево получить выгрузкой результата запроса. только колонки ТЗ типизировать обязательно
|
|
7
IoannVic
01.10.13
✎
16:39
|
(5) И куда?
|
|
8
Михаил Козлов
01.10.13
✎
16:41
|
новаяСтрока = Строка.Строки.Добавить();
новаяСтрока.<заполнить значения реквизитов>;
|
|
9
IoannVic
01.10.13
✎
16:46
|
(8) У меня строка передается в рекурсивную процедуру, это не помешает никак?
|
|
10
Михаил Козлов
01.10.13
✎
17:00
|
(9) Так в ее коллекцию строк и нужно добавлять нужную строку.
|
|