8.х Дерево значений

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем denmember, 15 фев 2007.

  1. TopicStarter Overlay
    denmember
    Offline

    denmember

    Регистрация:
    13 июл 2006
    Сообщения:
    24
    Симпатии:
    0
    Баллы:
    1
    Доброе утро! Подскажите пожалуйста как перебрать строки дерева значений!!!
    Вообще, столкнулся с проблемой нехватки информации по работе с деревом значений.
  2. Panchos
    Offline

    Panchos Опытный в 1С

    Регистрация:
    27 окт 2006
    Сообщения:
    101
    Симпатии:
    0
    Баллы:
    26
    Перебрать можно выборкой. Предварительнго сделав запрос. Напиши пободробней, какие строки надо перебрать.
  3. TopicStarter Overlay
    denmember
    Offline

    denmember

    Регистрация:
    13 июл 2006
    Сообщения:
    24
    Симпатии:
    0
    Баллы:
    1
    перебрать строки всех уровней дерева значений, запрос выгружен в ДЗ. скорее всего нужно использовать рекурсию, но пока торможу
  4. TAHk
    Offline

    TAHk Опытный в 1С

    Регистрация:
    31 авг 2006
    Сообщения:
    100
    Симпатии:
    0
    Баллы:
    26
    Делается две процедуры:
    пр1) ОбработкаГруппыДЗ(ДЗ) // ДЗ - текущая строка
    пр2) ОбработкаЭлементДЗ(ДЗ)

    первой должна запуститься пр2
    пр2 запускает пр1, если находит группу
    пр1 запускает пр2, если не находит группу
  5. Panchos
    Offline

    Panchos Опытный в 1С

    Регистрация:
    27 окт 2006
    Сообщения:
    101
    Симпатии:
    0
    Баллы:
    26
    можно при помощи рекурсии или чуть попроще при помощи этого цикла

    Для Каждого стр ИЗ ДЗ Цикл

    Сообщить(стр.Строка);
    КонецЦикла;

    Что типа такого
  6. TopicStarter Overlay
    denmember
    Offline

    denmember

    Регистрация:
    13 июл 2006
    Сообщения:
    24
    Симпатии:
    0
    Баллы:
    1
    ПереборДерева(ДЗ);

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

Поделиться этой страницей