8.х Как правильно получить дерево запросом из двух таблиц

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

  1. TopicStarter Overlay
    Rjcnbr
    Offline

    Rjcnbr

    Регистрация:
    18 апр 2010
    Сообщения:
    1
    Симпатии:
    0
    Баллы:
    1
    Имеем справочники:
    - Организации (нет иерархии);
    - Подразделения ( владелец спр.Организации, есть иерархия)
    Данные справочников реально представляют следующую структуру
    Код:
        1. Филиал №1;
    1.1 Подр№1
    1.1.1 Отдел№1
    1.1.2.Отдел№2
    1.2 Подр№2
    1.2.1 Отдел№3
    2. Филиал №2.
    2.1 Подр№4
    
    

    Которую и хотелось бы вывести в дерево значений в табличное поле на форму
    Следующий запрос
    Код:
      Дерево = Новый ДеревоЗначений;
    Запрос = Новый Запрос;
    
    Запрос.Текст="ВЫБРАТЬ
    |Орг.Наименование как ОргИмя,
    |Подр.Наименование как ПодрИмя
    |ИЗ
    | Справочник.Организации КАК Орг
    |ЛЕВОЕ СОЕДИНЕНИЕ
    | Справочник.Подразделения КАК Подр
    |ПО
    | Подр.Владелец = Орг.Ссылка
    |Упорядочить ПО
    | Подр.Ссылка ИЕРАРХИЯ";
    
    Дерево = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
    ТабличноеПоле = Дерево;
    ЭлементыФормы.ТабличноеПоле.СоздатьКолонки();
    
    
    делает это не совсем корректно, Подр.№2 Филиала №1 выводится отдельной строкой, а не в составе
    самого филиала. Получаем:
    Код:
         1. Филиал №1;
    1.1 Подр№1
    1.1.1 Отдел№1
    1.1.2.Отдел№2
    2. Филиал №1;
    1.2 Подр№2
    1.2.1 Отдел№3
    3. Филиал №2.
    2.1 Подр№4
    
    


    Поиск подобных вопросов ничего не дал.
    Подскажите, что нужно изменить, и можно ли просто одним запросом получить готовый результат?
    :unsure:
  2. gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    кхм, я думал дерево можно получить только используя итоги...

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