В форму с деревом значений добавить колонку с выбором двух значений

1. idw 343 18.01.22 14:08 Сейчас в теме
Здравствуйте. Подскажите пожалуйста как в обычной форме в дерево значений добавить колонку с выбором двух текстовых значений?

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

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

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


Но нужна еще колнка с выбором двух видов документа.
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
23. user1203706 12 19.01.22 12:18 Сейчас в теме +0.5 $m
(20)
лови
Прикрепленные файлы:
Дерево.epf
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. gibi 7 18.01.22 14:31 Сейчас в теме
НовыйТип = Новый Массив;
НовыйТип.Добавить(Тип("ДокументСсылка.РеализацияТоваровУслуг"));
НовыйТип.Добавить(Тип("ДокументСсылка.ПоступлениеТоваровУслуг"));

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

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

А на форме в свойствах этой колонки поставить галку РежимВыбораИзСписка = истина. И Добавить текстовые значения в СписокВыбора (тоже в свойствах колонки)
3. idw 343 18.01.22 16:53 Сейчас в теме
(2) не найду в свойствах колонки РежимВыбораИзСписка .
Например у просто элемента формы Поле ввода есть это свойство, а у колонки нет.
4. idw 343 18.01.22 16:59 Сейчас в теме
Это свойство у поля ввода: https://prnt.sc/26f6k8z
Это у колонки: https://prnt.sc/26f6kmr
5. idw 343 18.01.22 17:06 Сейчас в теме
Сделал так:

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

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

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

В результате просто пустая колонка без выбора, просто поле ввода.
6. user1203706 12 18.01.22 18:23 Сейчас в теме
(1)


ЗЫ: значения списка можно, любые подставить, на вкус, если что
7. user1203706 12 18.01.22 18:55 Сейчас в теме
И для красоты, режим редактирования - непосредственно + сынять галки с редактировать текст
8. idw 343 18.01.22 22:18 Сейчас в теме
(6) А как программно это сделать?
У меня дерево выгружается на форму и затирает все колонки. Затем я программно добавляю нужные.
9. idw 343 18.01.22 22:36 Сейчас в теме
Пробую так, выдает ошибку:

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

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

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

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


усё.

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

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


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


Не заполняет так дерево на форме: накидал на форме в дерево колонок, сделал как выше, но всё пусто.
12. Максим-777 55 19.01.22 11:57 Сейчас в теме
(11)

Может потом так сделать?

ЭлементыФормы.Дерево.СоздатьКолонки()
14. idw 343 19.01.22 12:01 Сейчас в теме
(12)
ЭлементыФормы.Дерево.СоздатьКолонки()


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

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


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

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

Но колонки на форме затерает, которых нет в запросе, приходится потом программно добавлять.
21. Максим-777 55 19.01.22 12:06 Сейчас в теме
(14)


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


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

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

Отвечу сам себе)

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

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

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

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

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

Показать
13. user1203706 12 19.01.22 12:00 Сейчас в теме
(11) Идентификаторы колонок на форме совпадают с данными запроса ?

(12) не надо так делать, так на форме перетрутся интерактивно созданные колонки в пофигураторе.
15. idw 343 19.01.22 12:02 Сейчас в теме
(13)
Идентификаторы колонок на форме совпадают с данными запроса ?

создал колонки по данным из запроса.

Но переменная "Дерево" - имя табличного поля тип ДеревоЗначений, брошенная на форму.
16. user1203706 12 19.01.22 12:03 Сейчас в теме
(15)

ЭлементыФормы.Дерево.ОбновитьСтроки()
17. user1203706 12 19.01.22 12:04 Сейчас в теме
И типы колонок, совпадают с данными запроса ?
19. idw 343 19.01.22 12:05 Сейчас в теме
(17)
И типы колонок, совпадают с данными запроса ?

имена, типы, все совпадает.

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

пусто.
18. user1203706 12 19.01.22 12:05 Сейчас в теме
Могу пример кинуть, если что.
20. idw 343 19.01.22 12:06 Сейчас в теме
(18)
Могу пример кинуть, если что.

если можно)
22. idw 343 19.01.22 12:08 Сейчас в теме
23. user1203706 12 19.01.22 12:18 Сейчас в теме +0.5 $m
(20)
лови
Прикрепленные файлы:
Дерево.epf
29. idw 343 19.01.22 14:10 Сейчас в теме
(23)
Спасибо сделал по аналогии, но у вас там есть колонка Колонка1 из СпискаЗначений: Вася и Федя )
При выборе этого значения, оно не сохранятся в колонке.
24. user1203706 12 19.01.22 12:20 Сейчас в теме
(22) :)))))))))))

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

сделал так, выводит в просто таблицу без дерева.
А в вашей обработке все нормально. Странно.

http://prnt.sc/26fmit1
27. idw 343 19.01.22 13:14 Сейчас в теме
А если так:
ДеревоЗначений = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
ЭлементыФормы.Дерево.СоздатьКолонки();


то выводит дерево, но нет колонок, которых добавил вручную: нет в запросе.
28. idw 343 19.01.22 13:34 Сейчас в теме
Разобрался, нужна еще в колонках галка "Отображать иерархию"
30. idw 343 19.01.22 14:24 Сейчас в теме
(23) еще выяснилась проблема:
если перебрать дерево, то колонки Пометка, Результат в вашей обработке и у меня имеют тип NULL,
хотя галки стоят.

Тут я добавил процедуру перебора, чтобы посмотреть.
Прикрепленные файлы:
Дерево.epf
31. user1203706 12 19.01.22 14:35 Сейчас в теме
(30) Там же общие итоги, если ты так обходишь, то еще ниже на уровень будет твоя пометка.
Если Тебе Пометка нужна на всех Уровнях дерева, то в Итоги добавь так, хотя бы
|ИТОГИ
	               |	СУММА(Сумма),
	               |	МАКСИМУМ(Пометка) как Пометка


Ну и общие итоги, можешь выкинуть ,если не нужны..это просто пример
Оставьте свое сообщение
Вакансии
Программист 1С
Казань
зарплата от 150 000 руб.
Полный день

Программист 1С:ERP
Москва
зарплата от 100 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 200 000 руб. до 300 000 руб.
Полный день

Программист 1С (удаленно)
Самара
зарплата от 230 000 руб. до 230 000 руб.
Полный день

Руководитель группы разработки 1С
Москва
зарплата от 250 000 руб. до 250 000 руб.
Полный день