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