Миста привет, написал получение высоты дерева значений.
Но думаю, что вы можете лучше.)
Вот мой вариант:
Сообщить(ПолучитьВысотуДерева(Дерево, 0));
Функция ПолучитьВысотуДерева(Дерево, Высота)
Если Дерево.Строки.Количество() = 0 Тогда
Возврат Высота;
Иначе
СамаяВысокая = 0;
Для каждого Стр Из Дерево.Строки Цикл
ВысотаСтроки = ПолучитьВысотуДерева(Стр, Высота + 1);
Если ВысотаСтроки>СамаяВысокая Тогда
СамаяВысокая = ВысотаСтроки;
КонецЕсли;
КонецЦикла;
Возврат СамаяВысокая;
КонецЕсли;
НУ раз лучше нельзя, пусть висит тут, когда искал ничего не нашел.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший