Здравствуйте. Подскажите пожалуйста как в обычной форме в дерево значений добавить колонку с выбором двух текстовых значений?

Я делаю так (выгружаю запрос и добавляю один флажок):

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

ЭлементыФормы.Дерево.Колонки.Флажок.Ширина = 5;
ЭлементыФормы.Дерево.Колонки.Флажок.ДанныеФлажка = "Флажок";
ЭлементыФормы.Дерево.Колонки.Флажок.Данные = Ложь;
ЭлементыФормы.Дерево.Колонки.Флажок.ТолькоПросмотр = Ложь;
ЭлементыФормы.Дерево.Колонки.Флажок.РежимРедактирования = РежимРедактированияКолонки.Непосредственно;
ЭлементыФормы.Дерево.Колонки.Флажок.УстановитьЭлементУправления(Тип("Флажок"));

Но нужна еще колнка с выбором двух видов документа.
---
лови
---
НовыйТип = Новый Массив;
НовыйТип.Добавить(Тип("ДокументСсылка.РеализацияТоваровУслуг"));
НовыйТип.Добавить(Тип("ДокументСсылка.ПоступлениеТоваровУслуг"));

ДеревоЗначений.Колонки.Добавить("НоваяКолонка",Новый ОписаниеТипов(НовыйТип));
Это для создания 2 типов в одной колонке.

Добавить колонку с выбором двух текстовых значений:
ДеревоЗначений.Колонки.Добавить("КолонкаСтрока",Новый ОписаниеТипов("Строка"));

А на форме в свойствах этой колонки поставить галку РежимВыбораИзСписка = истина. И Добавить текстовые значения в СписокВыбора (тоже в свойствах колонки)
---
не найду в свойствах колонки РежимВыбораИзСписка .
Например у просто элемента формы Поле ввода есть это свойство, а у колонки нет.
---
Это свойство у поля ввода: https://prnt.sc/26f6k8z
Это у колонки: https://prnt.sc/26f6kmr
---
Сделал так:

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

НовыйТип = Новый Массив;
НовыйТип.Добавить(Тип("ДокументСсылка.ПриходныйКассовыйОрдер"));
НовыйТип.Добавить(Тип("ДокументСсылка.РасходныйКассовыйОрдер"));
ДеревоЗначений.Колонки.Добавить("ВидДок",Новый ОписаниеТипов(НовыйТип),"Вид документа");

ЭлементыФормы.Дерево.Колонки.ВидДок.Ширина = 25;
ЭлементыФормы.Дерево.Колонки.ВидДок.Данные = Ложь;
ЭлементыФормы.Дерево.Колонки.ВидДок.ТолькоПросмотр = Ложь;
ЭлементыФормы.Дерево.Колонки.ВидДок.РежимРедактирования = РежимРедактированияКолонки.Непосредственно;
ЭлементыФормы.Дерево.Колонки.ВидДок.УстановитьЭлементУправления(Тип("ПолеВвода"));
//ЭлементыФормы.Дерево.Колонки.ВидДок.РежимВыбораИзСписка = Истина;

В результате просто пустая колонка без выбора, просто поле ввода.
---
ЗЫ: значения списка можно, любые подставить, на вкус, если что
---
И для красоты, режим редактирования - непосредственно + сынять галки с редактировать текст
---
А как программно это сделать?
У меня дерево выгружается на форму и затирает все колонки. Затем я программно добавляю нужные.
---
Пробую так, выдает ошибку:

СЗ = Новый СписокЗначений;
СЗ.Добавить("ПриходныйКассовыйОрдер");
СЗ.Добавить("РасходныйКассовыйОрдер");

ЭлементыФормы.Дерево.Колонки.ВидДок.Ширина = 25;
ЭлементыФормы.Дерево.Колонки.ВидДок.Данные = Ложь;
ЭлементыФормы.Дерево.Колонки.ВидДок.ТолькоПросмотр = Ложь;
ЭлементыФормы.Дерево.Колонки.ВидДок.РежимРедактирования = РежимРедактированияКолонки.Непосредственно;
ЭлементыФормы.Дерево.Колонки.ВидДок.УстановитьЭлементУправления(Тип("ПолеВыбора"));
ЭлементыФормы.Дерево.Колонки.ВидДок.СписокВыбора=СЗ;

Поле объекта не обнаружено (СписокВыбора )
---
а зачем ? Если колонки не динамические, ну т.е их количество всегда известно, то задай их интерактивно на форме, установи все свойства, картинки там, прочие украшательства, а потом в коде заполни дерево:

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

усё.

ЗЫ: можешь еще такую хрень после заполнения вызвать:

РазвернутьСвернутьДерево("Дерево");

```1c
    Процедура РазвернутьСвернутьДерево(ИмяЭлементаФормы)
    Если РазвернутьДерево Тогда
    ЭлементыФормы[ИмяЭлементаФормы].НачальноеОтображениеДерева = НачальноеОтображениеДерева.РаскрыватьВерхнийУровень;
    Иначе
    ЭлементыФормы[ИмяЭлементаФормы].НачальноеОтображениеДерева = НачальноеОтображениеДерева.НеРаскрывать;
    КонецЕсли;
    КонецПроцедуры
```
---
Дерево = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);

Не заполняет так дерево на форме: накидал на форме в дерево колонок, сделал как выше, но всё пусто.
---
Может потом так сделать?

```1c
    ЭлементыФормы.Дерево.СоздатьКолонки()
```
---
ЭлементыФормы.Дерево.СоздатьКолонки()

пусто.
Сделал так:

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

У меня вот так работает:

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

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

Так не получилось, видимо, потому что имя Реквизита формы и имя Элемента формы отличаются.
Тогда нужно было так:

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

Мне видится всё так:

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

    ДеревоЗначений.Колонки.Добавить("Документ", Новый ОписаниеТипов("Строка"));

    СЗ = Новый СписокЗначений;
    СЗ.Добавить("ПриходныйКассовыйОрдер");
    СЗ.Добавить("РасходныйКассовыйОрдер");

    Новая = ЭлементыФормы.Дерево.Колонки.Добавить("Документ");
    Новая.Данные = "Документ";
    Новая.УстановитьЭлементУправления(Тип("ПолеВыбора"));
    Новая.ЭлементУправления.СписокВыбора = СЗ;
```
---
Идентификаторы колонок на форме совпадают с данными запроса ?

(12) не надо так делать, так на форме перетрутся интерактивно созданные колонки в пофигураторе.
---
Идентификаторы колонок на форме совпадают с данными запроса ?
создал колонки по данным из запроса.

Но переменная "Дерево" - имя табличного поля тип ДеревоЗначений, брошенная на форму.
---
ЭлементыФормы.Дерево.ОбновитьСтроки()
---
И типы колонок, совпадают с данными запроса ?
---
И типы колонок, совпадают с данными запроса ?
имена, типы, все совпадает.

Сделал так

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

пусто.
---
Могу пример кинуть, если что.
---
Могу пример кинуть, если что.
если можно)
---
Вот реквизит формы:
https://prnt.sc/26flbe1

вот форма:
http://prnt.sc/26flcda
---
лови
---
Спасибо сделал по аналогии, но у вас там есть колонка Колонка1 из СпискаЗначений: Вася и Федя )
При выборе этого значения, оно не сохранятся в колонке.
---
:)))))))))))

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

http://prnt.sc/26fmit1
---
А если так:

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

то выводит дерево, но нет колонок, которых добавил вручную: нет в запросе.
---
Разобрался, нужна еще в колонках галка "Отображать иерархию"
---
еще выяснилась проблема:
если перебрать дерево, то колонки Пометка, Результат в вашей обработке и у меня имеют тип NULL,
хотя галки стоят.

Тут я добавил процедуру перебора, чтобы посмотреть.
---
Там же общие итоги, если ты так обходишь, то еще ниже на уровень будет твоя пометка.
Если Тебе Пометка нужна на всех Уровнях дерева, то в Итоги добавь так, хотя бы

```1c
    |ИТОГИ
    | СУММА(Сумма),
    | МАКСИМУМ(Пометка) как Пометка
```

Ну и общие итоги, можешь выкинуть ,если не нужны..это просто пример