Задача такая создается справочник один из реквизитов которого ссылается на
другой элемент справочника .Нужно вывести отчет в котором будет представлена иерархия элементов справочника ,примерно так :
Код 1c:
иванов
      сидоров
              казлов
      петров
             водкин

т.е. сидоров ,петров подчинены иванову ,казлов сидорову водкин петрову итд
можете подсказать как релизовать это вмодуле

====================================

Вот я тут сам коечто уже написал, но в функции глобального модуля неработает сравнение .Тоесть оно работает но выдает неккорктный результат
Если Пер=Спр.Род Тогда Парам=1; иначе Парам=0; конецесли; При сравнении
двух одинаковых реквизитов одного справочника выдает 0

Код 1c:
 //Отчет******************************************* 
 
      Процедура Сформировать() 
                Таб = СоздатьОбъект("Таблица"); 
                   Пар=РодВыбр; 
 
                   Выв(Пар,Таб);    
                      Таб.Показать();
     КонецПроцедуры  
 
 
//Глобальный модуль******************************************* 
 
Функция ПоискПоРеквизиту(Парам) Экспорт  
    Спр= Создатьобъект("Справочник.Продавцы");
    Пер=Парам ;
       Спр.ВыбратьЭлементы();
    Пока Спр.ПолучитьЭлемент() = 1 Цикл
            Если Пер=Спр.Род Тогда 
            Парам=1;  иначе  Парам=0;
                    конецесли;
        КонецЦикла; 
    конецфункции
 
    Процедура Выв(Пар,Таб)  Экспорт 
        Спр= Создатьобъект("Справочник.Продавцы");
            Таб.Вывестисекцию("Родитель");
        Спр.ВыбратьЭлементы();
        Пока Спр.ПолучитьЭлемент() = 1 Цикл 
            If Спр.Род=Пар then 
                Таб.Вывестисекцию("Подчинен"); 
                Парам=Спр.Наименование;
                    ПоискПоРеквизиту(Парам);
                сообщить(Парам);
                //Выв(Пар,Таб);
 
            конецесли;
        КонецЦикла; 
        КонецПроцедуры

==============================

Пример рекурсивного обхода номенклатуры, в которой есть ссылки на документы комплектации (из чего состоит сборка, и так в свою очередь может быть много раз):

Код 1c:
////////////////////////////////////////////////////////////////
 
Процедура Рекурсия(Изделие)
 
        док=Изделие.МастерКомплектация;
        док.ВыбратьСтроки();
        Пока док.ПолучитьСтроку()=1 Цикл
            ИмяЭлемента=СокрЛП(""+док.Наименование.Артикул+" "+док.Наименование);
            Сообщить("Элемент: "+ИмяЭлемента);
            мк=док.Наименование.МастерКомплектация;
            Если ""+мк="" Тогда
            Иначе    
Сообщить("==================");
Рекурсия(док.Наименование);
            КонецЕсли;
        КонецЦикла;
КонецПроцедуры // Рекурсия()

==========================================

Код 1c:
Процедура Сформировать()                   
    СписокОбработанных=СоздатьОбъект("СписокЗначений");
    ЕРТаб=СоздатьОбъект("ТаблицаЗначений");
    ЕРТаб.НоваяКолонка("Главный");
    КолКолонок=1;
    СпрДляПоиска=СоздатьОбъект("Справочник.Сотрудники");
    СпрДляВыборки=СоздатьОбъект("Справочник.Сотрудники");
    СпрДляВыборки.ВыбратьЭлементы();       
    Пока СпрДляВыборки.ПолучитьЭлемент()=1 Цикл
        Если СпИскл.Принадлежит(СпрДляВыборки.ТекущийЭлемент())=1 Тогда
            Продолжить;
        КонецЕсли;
        ЕРТаб.НоваяСтрока();
        ЕРТаб.Главный=СпрДляВыборки.ТекущийЭлемент(); 
        СписокОбработанных.ДобавитьЗначение(СпрДляВыборки.ТекущийЭлемент());
        СпрСсылка=СпрДляВыборки.НужныйРеквизит
        Пока Спрссылка<>0 Цикл 
            СпрДляПоиска.НайтиЭлемент(СпрССылка);    
            КолКолонок=КолКолонок+1;
            Если ЕРТаб.КоличествоКолонок()<КолКолонок Тогда
                ЕРТаб.НоваяКолонка("Подчинен"+КолКолонок);
            КонецЕсли;
            ЕРТаб.НоваяСтрока();
            ЕРТТаб.УстановитьЗначение(,"Подчинен"+КолКолонок,СпрДляПоиска.ТекущийЭлемент());
            СписокОбработанных.ДобавитьЗначение(СпрДляПоиска.ТекущийЭлемент());
            Если ПустоеЗначение(СпрДляПоиска.НужныйРеквизит)=1 Тогда
                СпрСсылка=0;
            Иначе
                СпрСсылка=СпрДляПоиска.НужныйРеквизит;
            КонецЕсли;
        КонецЦикла;   
        КолКолонок=1;
    КонецЦикла;
КонецПроцедуры

В конце по идеи должны получить ерархическую таблицу ЕРТТаб

================================

Код 1c:
  //Глоб Модуль  **********************************8
 
Процедура Выв(Таб,Пар,Пробел)  Экспорт 
 
    Спр= Создатьобъект("Справочник.Продавцы"); 
    Пар1=Пар;  
    пробел1=пробел;
    Спр.ВыбратьЭлементы(); 
    Пока Спр.ПолучитьЭлемент() = 1 Цикл 
        Если Пар1=Спр.Род Тогда   
            Таб.Вывестисекцию("Имя1");
            Пар =Спр.ТекущийЭлемент();
            Пробел=Пробел+Пробел;
            Выв(Таб,Пар,Пробел)  ; 
        конецесли; 
        Пробел=Пробел1; 
    КонецЦикла;   
КонецПроцедуры

============================================
Бр-р-р-р. Рекурсия? Нах.... Зачем?
Код 1c:
Спр = СоздатьОбъект("Справочник.ОбъектыУчета");
Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент()=1 Цикл
    СтрВывода = "";
    Для сч = 2 по Спр.Уровень() Цикл
        СтрВывода = СтрВывода + "    ";
    КонецЦикла; 
    СтрВывода = СтрВывода + Спр.Наименование;
    Таб.ВывестиСекцию("Строка");
КонецЦикла;


С присоеденитьСекцию немногим сложнее.