Что-то совсем засада.
Процедура от "Гения-1С", линк
Книга знаний: Получение дерева групп справочниками запросом
Функция обУбратьОшибкиИтоговПоИерархии(Строки, Поле="Ссылка", Родитель=Неопределено) Экспорт
//Убираем все элементы, равные текущему
Всего=Строки.Количество();
Для Инд=1 По Всего Цикл
Стр=Строки[Всего-Инд];
Зн=Стр[Поле];
Если Родитель<>Неопределено И Зн=Родитель Тогда
Строки.Удалить(Стр);
Иначе
обУбратьОшибкиИтоговПоИерархии(Стр.Строки, Поле, Зн);
КонецЕсли;
КонецЦикла;
КонецФункции
ВычСправочникДерево=Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
обУбратьОшибкиИтоговПоИерархии(ВычСправочникДерево.Строки);
Если получать справочник вот таким запросом:
ВЫБРАТЬ
Номенклатура.Ссылка КАК Ссылка
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.ЭтоГруппа = ИСТИНА
ИТОГИ ПО
Ссылка ТОЛЬКО ИЕРАРХИЯ
То после этой гениальной процедуры пропадают группы, например
- Товары 1
- Субтовары 1
- Субтовары 2
- Субтовары 2.2
Вот группа Субтовары 1 исчезает совсем из выборки.
Похоже всё дело в
Если Родитель<>Неопределено И Зн=Родитель Тогда
Строки.Удалить(Стр);
Иначе
Видимо удаляется родительский каталог и все его дети тоже удаляются.
А как можно их поднять на уровень вверх?
Запросом тут не вырулить, надо как-то уже со строками в дереве значений извращаться.