Имя: Пароль:
1C
1С v8
Нужна помощь с рекурсией
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) Так в ее коллекцию строк и нужно добавлять нужную строку.
Программист всегда исправляет последнюю ошибку.