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

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

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

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

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

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

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

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

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


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

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

Программист 1С
Москва
зарплата от 250 000 руб. до 300 000 руб.
Полный день

Консультант 1С
Москва
зарплата от 80 000 руб. до 150 000 руб.
Полный день

Аналитик 1C
Москва
зарплата от 120 000 руб. до 250 000 руб.
Полный день

Начальник отдела программирования
Уфа
зарплата от 125 000 руб.
Полный день