Избитая тема Получить родителя в запросе (2 уровня) #757407


#0 by GStiv
Есть сводный документ со сводными отгрузками, необходимо в печатную форму вывести Итоги (группировки) ---Контрагент Вот теперь остановился не могу в запросе получить Родителя второго уровня. Там где без группировок делал сортировку по иерархии и потом функцией в рекурсии получал родителя А как теперь в запросе не могу сообразить
#1 by PR третий
ВЫБОР для фиксированной глубины вложенности
#2 by GStiv
Глубина может быть разная от 2 (искомый уровень) до 10, может есть смысл ВТ сначала запросом получить весь справочник потом через функцию добавить поле Родитель 2 уровня, а потом соединять но производительность просядет.
#3 by H A D G E H O G s
Запрос в цикле.
#4 by sapphire
Тогда уж динамический запрос, да и для неограниченного уровня иерархии не прокатит
#5 by GStiv
Получить группы 2 уровня и циклом по ним ставить параметр в мой запрос и выводить, в принципе попробую но выполнять 15-30 запросов вместо 1 как то не очень
#6 by alex-pro
Неограниченного уровня иерархии не бывает на практике. Когда я решал подобную задачу, просто взял задел на 10 подуровней и сделал запросом через выбрать. Таким образом находится второй уровень.
#7 by GStiv
А может есть смысл |ИТОГИ а затем при выводе проверять НоменклатураРодитель на Уровень=2
#8 by GStiv
Нет к сожалению ошибся, теряются итоги нижнего уровня
#9 by strh
Размнож на сколько тебе надо уровней
#10 by Ildarovich
Есть статья, которая называется Уровни, глубина, прародители, циклы и аналоги запросом. Вот ссылка . Там это задача 3 Определение прародителя (родителя верхнего уровня) в пакетном запросе . В запросе предлагается функция, которая строит запрос и выполняет его. Но на деле можно взять текст запроса, сформированный функцией и использовать его как статический, если зафиксировать предельную глубину иерархии Хоть 10, хоть 100 - от этого будет зависеть число блоков в запросе. Для 10 хватит 4-х блоков, а для 100 нужно будет 7. Даже если в данной задаче не пригодится, будете иметь ввиду на будущее.
#11 by Ildarovich
+ Вот запрос для справочника не более 16-ти уровней: ВЫБРАТЬ     Номенклатура.Ссылка Решение кажется громоздким, но сложность подхода из при росте числа уровней в итоге будет больше
#12 by GStiv
Спасибо всем Все получилось :)
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С