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