Массивы и коллекции / Дерево значений

//Доступно при выполнении на сервере
Должности = Новый ДеревоЗначений;
Должности.Колонки.Добавить("Должность");
Должности.Колонки.Добавить("Количество");

ГлБух = Должности.Строки.Добавить();
ГлБух.Должность = "Гл. бухгалтер";
ГлБух.Количество = 1;

ЗамГлБух = ГлБух.Строки.Добавить();
ЗамГлБух.Должность = "Зам. гл. бухгалтера";
ЗамГлБух.Количество = 1;

БухРасчет = ГлБух.Строки.Добавить();
БухРасчет.Должность = "Бух. расч. отдела";
БухРасчет.Количество = 3;

//Сортировка подчинённых строк ГлБух
ГлБух.Строки.Сортировать("Должность Возр");

//Сортировка всех строк дерева значений
Должности.Строки.Сортировать(
    "Количество Убыв, Должность Возр"Истина);
//Должности = Гл. бухгалтер
//              Бух. расч. отдела
//              Зам. гл. бухгалтера
Сообщить("Должности = " + Символы.ПС +
    Представление(Должности.Строки"  "));

Функция Представление(Знач Ветви, Знач Отступ)
    Части = Новый Массив;
    Для Каждого Ветвь Из Ветви Цикл
        Части.Добавить(Отступ +
            Ветвь.Должность);
        Если Ветвь.Строки.Количество() > 0 Тогда
            Части.Добавить(Представление(
                Ветвь.Строки, Отступ + "  "));
        КонецЕсли;
    КонецЦикла;
    Возврат СтрСоединить(Части, Символы.ПС);
КонецФункции