Обход дерева значений 1С

Вопрос:

Привет! Мне нужно написать процедуру для обхода дерева значений, вся проблема в том, что я не знаю количество уровней дерева, подскажите как реализовать обход дерева значений с неизвестным количеством уровней

 Ответ:

Тут нужно воспользоваться рекурсией, т.е. необходимо что бы процедура обхода вызывала сама себя на каждом уровне дерева значений.

Вот примеры такой процедуры:

Для обычного приложения:

Процедура ОбойтиДеревоЗначений(Элемент)
    ПодчиненныйЭлемент=Элемент.Строки;
    Для Каждого Строка из ПодчиненныйЭлемент Цикл
        //Твой код по обработке строки дерева
        ОбойтиДеревоЗначений(Строка);
    КонецЦикла;
КонецПроцедуры

Для управляемого приложения:

&НаКлиенте
Процедура ОбойтиДеревоЗначений(Элемент)
    ПодчиненныйЭлемент=Элемент.ПолучитьЭлементы();
    Для Каждого Строка из ПодчиненныйЭлемент Цикл
        //Твой код по обработке строки дерева;
        ОбойтиДеревоЗначений(Строка);
    КонецЦикла;
КонецПроцедуры
Наша команда предоставляет услуги по консультированию, настройке и внедрению 1С.
Связаться с нами можно по телефону +7 499 350 29 00.
Услуги и цены можно увидеть по ссылке.
Будем рады помочь Вам!

Для начала обхода дерева необходимо вызвать процедуру ОбойтиДеревоЗначений и передать туда верхний уровень дерева. Ну а если верхних уровней несколько, то нужно в цикле обойти их все:

Для Каждого Стр из ДанныеДерева Цикл
    ОбходДерева(Стр);
КонецЦикла;

Поделиться

Оцените статью

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд
Загрузка...

Подпишитесь на наш YouTube канал

YouTube

Подписаться

Комментировать