В общем делаю что-то типа графа подчинённости документа. Сначала попробывал поюзать майкрософтовское дерево. Всё получилось, делал примерно вот так:
Процедура Сформировать(Корень, ТекДок)
Док = СоздатьОбъект("Документ");
Док.ВыбратьПодчиненныеДокументы(,,ТекДок);
Пока Док.ПолучитьДокумент() = 1 Цикл
Ключ=Ключ+1;
Узел=Дерево.Объект.Nodes.Add(Корень,4, Строка(Док)+Ключ ,Строка(Док));
Узел.Tag=ЗначениеВСтрокуВнутр(Док.ТекущийДокумент());
Если ТекУровеньВложенности<УровеньВложенности Тогда
ТекУровеньВложенности=ТекУровеньВложенности+1;
Сформировать(Узел, Док);
КонецЕсли;
КонецЦикла;
ТекУровеньВложенности = ТекУровеньВложенности - 1;
КонецПроцедуры
"УровеньВложенности" - переменная в которой хранится уровень, до которого надо опускаться при построении дерева подчинённости.
Но из-за ограниченности майкрософтовского дерева, решил использовать дерево АЛьФа. Но теперь я не пойму как рекурсивно добовлять узлы.
Создал такую ТЗ:
ФДеревоТЗ.НоваяКолонка("Ветка", "ТаблицаЗначений");
ФДеревоТЗ.НоваяКолонка("Картинка");
ФДеревоТЗ.НоваяКолонка("НазваниеВетки",,,,"Документ");
ФДеревоТЗ.НоваяКолонка("НомерПолиса");
СтруктураТЗ = ЗначениеВСтрокуВнутр(ФДеревоТЗ);
Я понимаю, что можно писать примерно так:
ФДеревоТЗ.Ветка.Ветка = //для второго уровня
ФДеревоТЗ.Ветка.Ветка.Ветка = //для третьего уровня
....
Но как это засунуть в рекурсию? Помогите сообразить...