Запрос по иерархическому справочнику с отбором по группе

1. VKuser367237669 22.11.23 12:09 Сейчас в теме
Есть иерархический справочник "Товары". Необходимо запросом отбирать по 5 элементов из каждой подгруппы выбранной ранее группы этого справочника. В целом выбирается в начале группа справочника и запрос должен пройти по этой группе и из каждой подгруппы вытянуть по 5 элементов.

Знаю что есть такая конструкция:
ВЫБРАТЬ
    Товары.Ссылка 
ИЗ
    Справочник.Товары КАК Товары

ГДЕ
    Товары.Ссылка В ИЕРАРХИИ(&Группа)


Но она выдает все элементы без отбора по подгруппам ну и тем более без ограничения в 5 элементов. Буду очень благодарен за помощь!
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. user1880116 23.11.23 16:20 Сейчас в теме
2. Said-We 23.11.23 16:13 Сейчас в теме
4. Said-We 23.11.23 16:34 Сейчас в теме
(1) Вы же в курсе, что задание не точно переписали? По 5 элементов из каждой группы, а какие именно? Порядок же какой-то был наверное или любых 5 и каждый раз эти 5 разные? :-)
5. BeerWulf 23.11.23 17:36 Сейчас в теме
(1) https://infostart.ru/1c/articles/1695108/ в помощь. 2 временные таблицы и левое соединение второй таблицы с самой собой
6. VmvLer 23.11.23 17:49 Сейчас в теме
(5) есть другой путь

ВЫБРАТЬ
	Т.Код КАК Код,
	Т.Родитель КАК Родитель,
	Т.Ссылка КАК Ссылка
ПОМЕСТИТЬ втНабор
ИЗ
	Справочник.Номенклатура КАК Т
ГДЕ
	Т.Родитель В ИЕРАРХИИ(&Родитель)

ИНДЕКСИРОВАТЬ ПО
	Родитель,
	Код
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	АВТОНОМЕРЗАПИСИ() КАК Порядок,
	Т.Код КАК Код,
	Т.Родитель КАК Родитель,
	Т.Ссылка КАК Ссылка
ПОМЕСТИТЬ втНаборПорядок
ИЗ
	втНабор КАК Т
;

////////////////////////////////////////////////////////////­////////////////////
УНИЧТОЖИТЬ втНабор
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	Т.Родитель КАК Родитель,
	МИНИМУМ(Т.Порядок) КАК ПорядокМин
ПОМЕСТИТЬ втГруппыПорядокМин
ИЗ
	втНаборПорядок КАК Т

СГРУППИРОВАТЬ ПО
	Т.Родитель
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	втНаборПорядок.Код КАК Код,
	втНаборПорядок.Родитель КАК Родитель,
	втНаборПорядок.Ссылка КАК Ссылка
ИЗ
	втНаборПорядок КАК втНаборПорядок
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ втГруппыПорядокМин КАК втГруппыПорядокМин
		ПО втНаборПорядок.Родитель = втГруппыПорядокМин.Родитель
ГДЕ
	втНаборПорядок.Порядок < втГруппыПорядокМин.ПорядокМин + 5

УПОРЯДОЧИТЬ ПО
	Код
ИТОГИ ПО
	Родитель ИЕРАРХИЯ
Показать
7. Said-We 24.11.23 02:00 Сейчас в теме
(6) Ещё один другой способ. Точнее он же но не на 1С.
WITH это помещение (создание тестовых) данных. Что бы их видно было. р - родитель, е - элемент.
Далее рекурсивный запрос по группе 1 и всем вложенным и далее из каждой группы только по 5 элементов.

Только вопрос, а надо ли автору из всех групп в ИЕРАРХИИ. Может только одна итерация вложенности. В задании про вложенность от него я не увидел, кроме как в его же решении. Может просто Родитель = &ВыбРодитель. А далее по пять.
Иначе может получиться, что родитель в выборку не попал, а его пять подчиненных попали. Странная выборка. :-)
Прикрепленные файлы:
Оставьте свое сообщение

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