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