Здравствуйте!
Необходимо совершить перебор дерева значений и вывести это на макет.
С макетом проблемы нет, зато есть проблема с перебором дерева значений, как его правильно перебирать?
Есть функция, которая совершает рекурсию и формирует дерево значений и выводит на форму.
Но мне нужно ещё по кнопке сделать вывод значений в макет.
Я пытался организовать перебор при помощи выборки, но для Дерева значений это не подходит.
Код 1C v 8.2 УП &НаСервере
Функция ПостроитьДерево(ВыборПерсоны)
ДеревоРезультатов=Новый ДеревоЗначений;
ДеревоРезультатов.Колонки.Добавить("Персона");
ДеревоРезультатов.Колонки.Добавить("Мама");
ДеревоРезультатов.Колонки.Добавить("Папа");
НоваяСтрока=ДеревоРезультатов.Строки.Добавить();
НоваяСтрока.Персона=ВыборПерсоны;
Мама=ПолучитьРодителяСемьи(ВыборПерсоны,"Мама");
Если Мама<>Справочники.Персоны.ПустаяСсылка() Тогда
НоваяСтрока.Мама=Мама;
ДобавитьПодчиненнуюСтроку(НоваяСтрока,Мама);
КонецЕсли;
Папа=ПолучитьРодителяСемьи(ВыборПерсоны,"Папа");
Если Папа<>Справочники.Персоны.ПустаяСсылка() Тогда
НоваяСтрока.Папа=Папа;
ДобавитьПодчиненнуюСтроку(НоваяСтрока,Папа);
КонецЕсли;
ЗначениеВДанныеФормы(ДеревоРезультатов,ДеревоЗ);
КонецФункции // ()
&НаСервере
Процедура ДобавитьПодчиненнуюСтроку(СтрокаП,Персона)
СтрокаН=СтрокаП.Строки.Добавить();
СтрокаН.Персона=Персона;
Мама=ПолучитьРодителяСемьи(Персона,"Мама");
Если Мама<>Справочники.Персоны.ПустаяСсылка() Тогда
СтрокаН.Мама=Мама;
ДобавитьПодчиненнуюСтроку(СтрокаН,Мама);
КонецЕсли;
Папа=ПолучитьРодителяСемьи(Персона,"Папа");
Если Папа<>Справочники.Персоны.ПустаяСсылка() Тогда
СтрокаН.Папа=Папа;
ДобавитьПодчиненнуюСтроку(СтрокаН,Папа);
КонецЕсли;
КонецПроцедуры
Помогите пожалуйста реализовать перебор дерева значений.Изменено 17.06.13 12:38:05