Используйте такую функцию, чтобы получить нижеприведенную таблицу.
Функция УровниПрародителей(ИмяСправочника, МаксимальнаяДлинаПути) Экспорт
Пролог = "ВЫБРАТЬ Родитель НачалоДуги, Ссылка КонецДуги ПОМЕСТИТЬ ЗамыканияДлины1 ИЗ Справочник.Номенклатура
| ГДЕ Родитель <> Значение(Справочник.Номенклатура.ПустаяСсылка)
| ОБЪЕДИНИТЬ ВЫБРАТЬ Ссылка, Ссылка ИЗ Справочник.Номенклатура;";
Рефрен = "ВЫБРАТЬ РАЗЛИЧНЫЕ ПерваяДуга.НачалоДуги, ВтораяДуга.КонецДуги ПОМЕСТИТЬ ЗамыканияДлины#2 ИЗ ЗамыканияДлины#1 КАК ПерваяДуга
| СОЕДИНЕНИЕ ЗамыканияДлины#1 КАК ВтораяДуга ПО ПерваяДуга.КонецДуги = ВтораяДуга.НачалоДуги;
| УНИЧТОЖИТЬ ЗамыканияДлины#1;";
//Все предки
Эпилог1 = "ВЫБРАТЬ НачалоДуги Предок, КонецДуги Потомок Поместить Предки ИЗ ЗамыканияДлины#2
| ГДЕ НачалоДуги <> КонецДуги ;";
//Уровни групп-предков
Эпилог2 = "ВЫБРАТЬ КОЛИЧЕСТВО(НачалоДуги) - 1 Предок, КонецДуги Потомок Поместить Уровни ИЗ ЗамыканияДлины#2 СГРУППИРОВАТЬ ПО КонецДуги;";
Итог = "Выбрать Предки.Предок Как Предок, Уровни.Предок Как Уровень, Предки.Потомок Как Потомок Из Предки Как Предки
| ЛЕВОЕ СОЕДИНЕНИЕ Уровни Как Уровни По Предки.Предок = Уровни.Потомок
| ГДЕ Предки.Потомок.ЭтоГруппа = Ложь
| Упорядочить По Предки.Потомок.Наименование, Уровни.Предок
| ";
Запрос = Новый Запрос(СтрЗаменить(Пролог, "Номенклатура", ИмяСправочника));
МаксимальнаяДлинаЗамыканий = 1;
Пока МаксимальнаяДлинаЗамыканий < МаксимальнаяДлинаПути Цикл
Запрос.Текст = Запрос.Текст + СтрЗаменить(СтрЗаменить(Рефрен, "#1", Формат(МаксимальнаяДлинаЗамыканий, "ЧГ=0")), "#2", Формат(2 * МаксимальнаяДлинаЗамыканий, "ЧГ=0"));
МаксимальнаяДлинаЗамыканий = 2 * МаксимальнаяДлинаЗамыканий
КонецЦикла;
Запрос.Текст = Запрос.Текст + СтрЗаменить(Эпилог1, "#2", Формат(МаксимальнаяДлинаЗамыканий, "ЧГ=0"));
Запрос.Текст = Запрос.Текст + СтрЗаменить(Эпилог2, "#2", Формат(МаксимальнаяДлинаЗамыканий, "ЧГ=0"));
Запрос.Текст = Запрос.Текст + Итог;
Возврат Запрос.Выполнить().Выгрузить()
КонецФункции
Спасибо ildarovich за великолепную реализацию результатов теории графов с использованием языка запросов 1С! (См. [//infostart.ru/public/160707/])