Есть пример как сделать выборку номенклатуры, а после сгруппировать по Родителям с учетом уровня
WITH Номенклатура_Иерархия(ID,Code,Descr,ParentID,IsFolder,SP85,Level) as (
|SELECT
| СпрНоменкл.ID,
| СпрНоменкл.Code,
| СпрНоменкл.Descr,
| СпрНоменкл.ParentID,
| СпрНоменкл.IsFolder,
| СпрНоменкл.SP85,
| 1
|FROM
| $Справочник.Номенклатура СпрНоменкл
|WHERE
| СпрНоменкл.ParentID = $ПустойИД
|UNION ALL
|SELECT
| СпрН.ID,
| СпрН.Code,
| СпрН.Descr,
| СпрН.ParentID,
| СпрН.IsFolder,
| СпрН.SP85,
| Level + 1
|FROM
| $Справочник.Номенклатура СпрН
|INNER JOIN
| Номенклатура_Иерархия СпрНИ ON СпрН.ParentID = СпрНИ.ID
|)
|
|SELECT
| НомИерарх.ID [Номенклатура $Справочник.Номенклатура],
| RTRIM(CAST(CAST(НомИерарх.Code as INT) as CHAR)) Код,
| RTRIM(НомИерарх.Descr) Наименование,
| НомИерарх.ParentID ИдГруппы,
| НомИерарх.IsFolder Группа,
| RTRIM(НомИерарх.SP85) Артикул,
| Level Уровень,
| 0 Остаток
|FROM
|Номенклатура_Иерархия НомИерарх
запрос написал, но вот проблема, как можно свернуть это дело в индексированной таблице
делаю так
итВыборка = СоздатьОбъект("ИндексированнаяТаблица");
НаборЗаписей.ВыполнитьИнструкцию(ТекстЗапроса,итВыборка);
итВыборка.Сортировать("Номенклатура");
итВыборка.Группировать("ИдГруппы:ИдГруппы","Остаток",1);
итВыборка.ВыбратьСтроки();
Пока итВыборка.ПолучитьСтроку() = 1 Цикл
Сообщить(итВыборка.Наименование);
КонецЦикла;
получается фигня! Где я ошибся