1С 8.x Управляемое приложение 1С 7.7. Бухучет Статьи Ссылки
1С 8.x arrow 1С 8.x arrow Узелки на память arrow Дерево значений
Дерево значений Печать

дзОтделы = Новый ДеревоЗначений;
дзОтделы.Колонки.Добавить("Отдел");
дзОтделы.Колонки.Добавить("Руководитель");
Нов = дзОтделы.Строки.Добавить();
//индекс 0
Нов.Отдел = "Бухгалтерия";
Нов = дзОтделы.Строки.Добавить();
//индекс 1
Нов.Отдел = "Руководство";
//детализируем отдел "Бухгалтерия"
Нов = дзОтделы.Строки[0] .Строки.Добавить ();
Нов.Отдел = "Расчет зарплаты";
Нов = дзОтделы.Строки[0].Строки.Добавить();
Нов.Отдел = "Основные средства"; //детализируем руководство
Нов = дзОтделы.Строки[1] .Строки.Добавить ();
Нов.Отдел = "Высшее руководство";
Нов = дзОтделы.Строки[1].Строки.Добавить();
Нов.Отдел = "Отдел маркетинга";

//Так же, как и с таблицей значений, можно создать полную копию деревазначений
//с помощью метода Скопировать: НОваяОргСтруктура = ДзОтделы.Скопировать();

Обход строк реализуется с помощью конструкции «Для Каждого»
или оператором [...]:

//1-й вариант: обход строк 1-го уровня
Для Каждого стр Из дзОтделы Цикл
Сообщить(стр.Отдел);
КснецЦикла;

//2-й вариант (индексация строк начинается с 0)
Для н = 0 По дзОтделы.Строки.Количество()-1 Цикл
стр = дзОтделы.Строки[н];
Сообщить(стр);
КснецЦикла;


Следующая программа с помощью рекурсивной процедуры обходит
все строки дерева значений, включая подчиненные:

Процедура ПоказатьПодчиневные (СтрокаДерева,Уровень=0)
Для Каждого стр Из СтрокаДерева.Строки Цикл
отступ = "";
Для н = 1 По Уровень Цикл
отступ = отступ + " ";
КонецЦикла;
Сообщить(отступ + стр.Отдел);
ПоказатьПодчиненные(стр,Уровень+1);
КонецЦикла;
КонецПроцедуры


ПоказатьПодчиненные(дзОтделы);