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

1. user749548 29.03.23 10:58 Сейчас в теме
Привет, коллеги! Не хоче собирать рекурсивно дерево, хочу загрузить его из результата запроса. Но не выходит: некоторые группы появляются в дереве несколько раз. Прошу помощи сенпаев!

Упрощенная модель
Имею: таблицу значений, в которой содержится Номенклатура (тип СправочникСсылка).
Требуется: Загрузить эту таблицу в дерево на форме согласно иерархии справочника по группам, сами элементы мне не нужны. Другими словами нужно построить дерево из папок, в которых лежат элемены из передаваемой таблицы.
Методы: использую ИТОГИ ПО ТОЛЬКО ИЕРАРХИЯ
Проблема: в итоговом дереве некоторые группы появляются несколько раз.
Примеры:
Иерархия справочника Номенклатура у меня такая (картинка 1)
И если передаваемая в запрос таблица с номенклатурой будет содержать только Помидоры - то все хорошо.
Но если в ТЗ будут Помидоры и Огурцы (элементы из папки, подчиненно ранее рассматриваемой папке), то запрос возвращает дичь как на картинке 2.
Мой запрос:

ВЫБРАТЬ
ВЫРАЗИТЬ(ВТ_Результат.Номенклатура КАК Справочник.Номенклатура) КАК Номенклатура
ПОМЕСТИТЬ ВТ_Результат
ИЗ
&ВТ_Результат КАК ВТ_Результат

ИНДЕКСИРОВАТЬ ПО
Номенклатура
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
ВТ_Результат.Номенклатура.Родитель КАК НоменклатураРодитель
ПОМЕСТИТЬ ВТ_РезультатПоГруппам
ИЗ
ВТ_Результат КАК ВТ_Результат

СГРУППИРОВАТЬ ПО
ВТ_Результат.Номенклатура.Родитель
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
ВТ_РезультатПоГруппам.НоменклатураРодитель КАК Номенклатура
ИЗ
ВТ_РезультатПоГруппам КАК ВТ_РезультатПоГруппам

ИТОГИ ПО
Номенклатура ТОЛЬКО ИЕРАРХИЯ
Показать


Параметр &ВТ_Результат = ТаблицаЗначений, содержащая две ссылки из справочника Номенклатура: Огурцы, Помидоры

Очень хотелось бы получить дерево выгрузкой из запроса, а не собирать его руками. Потому что тут приведена только упрощенная модель, на самом деле данных в этой задаче обрабатывается гораздо больше.
Или убедиться что такой возможности у меня нет =)
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. soft_wind 29.03.23 11:11 Сейчас в теме
используйте СКД она умеет выводить/строить данных в иерархии,
при программном выполнении наверно и ДЗ можно получить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот