Добрый день. На обычной форме есть табличное поле с типом дерево значений. Запросом получаю элементы иерархического справочника с иерархией, и рекурсией заполняю дерево на форме, но в дерево не заполняются вложенные элементы т.е. заполняется только верхний уровень

```1c
    Процедура ПриОткрытии()
    ДЗ=Новый ДеревоЗначений;
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | АппаратыРемонт.Ссылка КАК Ссылка
    |ИЗ
    | Справочник.АппаратыРемонт КАК АппаратыРемонт
    |
    |УПОРЯДОЧИТЬ ПО
    | Ссылка ИЕРАРХИЯ,
    | АппаратыРемонт.Наименование";

    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
    ДЗ=ВыборкаДетальныеЗаписи;
    ОбходДереваДетально(ДЗ,ЭлементыФормы.ТабличноеПоле1.Значение);

    КонецПроцедуры

    Процедура ОбходДереваДетально(ПереданноеДер,ДеревоНов)

    Для Каждого СтрПолученногоДерева Из ПереданноеДер.Строки Цикл
    НоваяСтрока=ДеревоНов.Строки.Добавить();
    НоваяСтрока.Наименование=СтрПолученногоДерева.Ссылка;
    Если СтрПолученногоДерева.Строки.Количество()>0 Тогда
    ОбходДереваДетально(СтрПолученногоДерева,НоваяСтрока);
    КонецЕсли;
    КонецЦикла;

    КонецПроцедуры
```

Причем если после процедуры "ОбходДереваДетально" добавить ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки(), то все заполнится, но мне не надо удалять те колонки которые уже были в дереве на форме.
---
Похоже ты не включил свойство "ОтображатьИерархию" у колонки "Ссылка"
---
не удалять колонки или строки? Если только колонки, то все намного проще.
---
Спасибо за ваш пример, просто при добавлении строк в дерево из результата запроса со строками еще кое какие действия надо было сделать
---
```1c
    ДЗ=ВыборкаДетальныеЗаписи;
    ОбходДереваДетально(ДЗ,ТабличноеПоле1);
```

ТабличноеПоле1 - это реквизит
---
Тоже самое что
```1c
    ОбходДереваДетально(ДЗ,ТабличноеПоле1)
```
 что
```1c
    ОбходДереваДетально(ДЗ,ЭлементыФормы.ТабличноеПоле1.Значение)
```
 результат тот же
---
Вообще правильно бы вот так:

```1c
    ДЗИсточник = Новый ДеревоЗначений;
    ДЗПриемник = Новый ДеревоЗначений;
    ЗаполнитьДеревоРекурсивно(ДЗИсточник.Строки, ДЗПриемник.Строки);

    Процедура ЗаполнитьДеревоРекурсивно(ДЗИсточникСтроки, ДЗПриемникСтроки)

    Для Каждого ТекСтр Из ДЗИсточникСтроки Цикл
    НовСтр = ДЗПриемникСтроки.Добавить();
    ЗаполнитьЗначенияСвойств(НовСтр, ТекСтр);
    Если ТекСтр.Строки.Количество() > 0 Тогда
    ЗаполнитьДеревоРекурсивно(ТекСтр.Строки, НовСтр.Строки);
    КонецЕсли;
    КонецЦикла;

    КонецПроцедуры
```

ЗЫ: Писал на коленке, но вроде всё правильно
---
+(4)
А что вообще под отладчиком происходит?
---
Хорошо, но при таком подходе как данные из ДЗПриемник засунуть данные в ТабличноеПоле1
---
```1c
    ЗаполнитьДеревоРекурсивно(ДЗ.Строки,ТабличноеПоле1.Строки)
```
---
+ (7)
А саму процедуру оставь как есть
---
Тоже самое, верхний уровень заполнен, вложенных элементов нету((
---
А если смотреть отладчиком, заполняется по феншую?
---
что то у меня локальнаяя база виснет на отладке, вот эта обработка может я что то в свойствах табличного поля не указал
---
Вроде по отладчику подчиненные строки есть
---
Похоже ты не включил свойство "ОтображатьИерархию" у колонки "Ссылка"
---
Да, дружище спасибо огромное пол дня провазился с этим