В форму с деревом значений добавить колонку с выбором двух значений
Здравствуйте. Подскажите пожалуйста как в обычной форме в дерево значений добавить колонку с выбором двух текстовых значений?
Я делаю так (выгружаю запрос и добавляю один флажок):
ЭлементыФормы.Дерево.Значение = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
ДеревоЗначений.Колонки.Добавить("Флажок",Новый ОписаниеТипов("Булево"),"Флаг");
ЭлементыФормы.Дерево.Колонки.Флажок.Ширина = 5;
ЭлементыФормы.Дерево.Колонки.Флажок.ДанныеФлажка = "Флажок";
ЭлементыФормы.Дерево.Колонки.Флажок.Данные = Ложь;
ЭлементыФормы.Дерево.Колонки.Флажок.ТолькоПросмотр = Ложь;
ЭлементыФормы.Дерево.Колонки.Флажок.РежимРедактирования = РежимРедактированияКолонки.Непосредственно;
ЭлементыФормы.Дерево.Колонки.Флажок.УстановитьЭлементУправления(Тип("Флажок"));
Но нужна еще колнка с выбором двух видов документа.
Я делаю так (выгружаю запрос и добавляю один флажок):
ЭлементыФормы.Дерево.Значение = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
ДеревоЗначений.Колонки.Добавить("Флажок",Новый ОписаниеТипов("Булево"),"Флаг");
ЭлементыФормы.Дерево.Колонки.Флажок.Ширина = 5;
ЭлементыФормы.Дерево.Колонки.Флажок.ДанныеФлажка = "Флажок";
ЭлементыФормы.Дерево.Колонки.Флажок.Данные = Ложь;
ЭлементыФормы.Дерево.Колонки.Флажок.ТолькоПросмотр = Ложь;
ЭлементыФормы.Дерево.Колонки.Флажок.РежимРедактирования = РежимРедактированияКолонки.Непосредственно;
ЭлементыФормы.Дерево.Колонки.Флажок.УстановитьЭлементУправления(Тип("Флажок"));
Но нужна еще колнка с выбором двух видов документа.
По теме из базы знаний
- Рекурсивный обход дерева значений с пересчетом иерархических итогов группировок
- Лучшие методы сравнения таблиц значений
- Конструктор результата системы компоновки данных для работы с деревом значений в тонком клиенте.
- Назад в прошлое! Небольшие заметки по администрированию пользователей в УПП
- Как передать Таблицу Значений в Динамический Список?
Найденные решения
Остальные ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
НовыйТип = Новый Массив;
НовыйТип.Добавить(Тип("ДокументСсылка.РеализацияТоваровУслуг"));
НовыйТип.Добавить(Тип("ДокументСсылка.ПоступлениеТоваровУслуг"));
ДеревоЗначений.Колонки.Добавить("НоваяКолонка",Новый ОписаниеТипов(НовыйТип));
Это для создания 2 типов в одной колонке.
Добавить колонку с выбором двух текстовых значений:
ДеревоЗначений.Колонки.Добавить("КолонкаСтрока",Новый ОписаниеТипов("Строка"));
А на форме в свойствах этой колонки поставить галку РежимВыбораИзСписка = истина. И Добавить текстовые значения в СписокВыбора (тоже в свойствах колонки)
НовыйТип.Добавить(Тип("ДокументСсылка.РеализацияТоваровУслуг"));
НовыйТип.Добавить(Тип("ДокументСсылка.ПоступлениеТоваровУслуг"));
ДеревоЗначений.Колонки.Добавить("НоваяКолонка",Новый ОписаниеТипов(НовыйТип));
Это для создания 2 типов в одной колонке.
Добавить колонку с выбором двух текстовых значений:
ДеревоЗначений.Колонки.Добавить("КолонкаСтрока",Новый ОписаниеТипов("Строка"));
А на форме в свойствах этой колонки поставить галку РежимВыбораИзСписка = истина. И Добавить текстовые значения в СписокВыбора (тоже в свойствах колонки)
Сделал так:
ЭлементыФормы.Дерево.Значение = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
НовыйТип = Новый Массив;
НовыйТип.Добавить(Тип("ДокументСсылка.ПриходныйКассовыйОрдер"));
НовыйТип.Добавить(Тип("ДокументСсылка.РасходныйКассовыйОрдер"));
ДеревоЗначений.Колонки.Добавить("ВидДок",Новый ОписаниеТипов(НовыйТип),"Вид документа");
ЭлементыФормы.Дерево.Колонки.ВидДок.Ширина = 25;
ЭлементыФормы.Дерево.Колонки.ВидДок.Данные = Ложь;
ЭлементыФормы.Дерево.Колонки.ВидДок.ТолькоПросмотр = Ложь;
ЭлементыФормы.Дерево.Колонки.ВидДок.РежимРедактирования = РежимРедактированияКолонки.Непосредственно;
ЭлементыФормы.Дерево.Колонки.ВидДок.УстановитьЭлементУправления(Тип("ПолеВвода"));
//ЭлементыФормы.Дерево.Колонки.ВидДок.РежимВыбораИзСписка = Истина;
В результате просто пустая колонка без выбора, просто поле ввода.
ЭлементыФормы.Дерево.Значение = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
НовыйТип = Новый Массив;
НовыйТип.Добавить(Тип("ДокументСсылка.ПриходныйКассовыйОрдер"));
НовыйТип.Добавить(Тип("ДокументСсылка.РасходныйКассовыйОрдер"));
ДеревоЗначений.Колонки.Добавить("ВидДок",Новый ОписаниеТипов(НовыйТип),"Вид документа");
ЭлементыФормы.Дерево.Колонки.ВидДок.Ширина = 25;
ЭлементыФормы.Дерево.Колонки.ВидДок.Данные = Ложь;
ЭлементыФормы.Дерево.Колонки.ВидДок.ТолькоПросмотр = Ложь;
ЭлементыФормы.Дерево.Колонки.ВидДок.РежимРедактирования = РежимРедактированияКолонки.Непосредственно;
ЭлементыФормы.Дерево.Колонки.ВидДок.УстановитьЭлементУправления(Тип("ПолеВвода"));
//ЭлементыФормы.Дерево.Колонки.ВидДок.РежимВыбораИзСписка = Истина;
В результате просто пустая колонка без выбора, просто поле ввода.
Пробую так, выдает ошибку:
СЗ = Новый СписокЗначений;
СЗ.Добавить("ПриходныйКассовыйОрдер");
СЗ.Добавить("РасходныйКассовыйОрдер");
ЭлементыФормы.Дерево.Колонки.ВидДок.Ширина = 25;
ЭлементыФормы.Дерево.Колонки.ВидДок.Данные = Ложь;
ЭлементыФормы.Дерево.Колонки.ВидДок.ТолькоПросмотр = Ложь;
ЭлементыФормы.Дерево.Колонки.ВидДок.РежимРедактирования = РежимРедактированияКолонки.Непосредственно;
ЭлементыФормы.Дерево.Колонки.ВидДок.УстановитьЭлементУправления(Тип("ПолеВыбора"));
ЭлементыФормы.Дерево.Колонки.ВидДок.СписокВыбора=СЗ;
Поле объекта не обнаружено (СписокВыбора )
СЗ = Новый СписокЗначений;
СЗ.Добавить("ПриходныйКассовыйОрдер");
СЗ.Добавить("РасходныйКассовыйОрдер");
ЭлементыФормы.Дерево.Колонки.ВидДок.Ширина = 25;
ЭлементыФормы.Дерево.Колонки.ВидДок.Данные = Ложь;
ЭлементыФормы.Дерево.Колонки.ВидДок.ТолькоПросмотр = Ложь;
ЭлементыФормы.Дерево.Колонки.ВидДок.РежимРедактирования = РежимРедактированияКолонки.Непосредственно;
ЭлементыФормы.Дерево.Колонки.ВидДок.УстановитьЭлементУправления(Тип("ПолеВыбора"));
ЭлементыФормы.Дерево.Колонки.ВидДок.СписокВыбора=СЗ;
Поле объекта не обнаружено (СписокВыбора )
(8) а зачем ? Если колонки не динамические, ну т.е их количество всегда известно, то задай их интерактивно на форме, установи все свойства, картинки там, прочие украшательства, а потом в коде заполни дерево:
усё.
ЗЫ: можешь еще такую хрень после заполнения вызвать:
РазвернутьСвернутьДерево("Дерево");
Дерево = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
усё.
ЗЫ: можешь еще такую хрень после заполнения вызвать:
РазвернутьСвернутьДерево("Дерево");
Процедура РазвернутьСвернутьДерево(ИмяЭлементаФормы)
Если РазвернутьДерево Тогда
ЭлементыФормы[ИмяЭлементаФормы].НачальноеОтображениеДерева = НачальноеОтображениеДерева.РаскрыватьВерхнийУровень;
Иначе
ЭлементыФормы[ИмяЭлементаФормы].НачальноеОтображениеДерева = НачальноеОтображениеДерева.НеРаскрывать;
КонецЕсли;
КонецПроцедуры
(12)
пусто.
Сделал так:
У меня вот так работает:
ЭлементыФормы.Дерево.Значение = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
ЭлементыФормы.Дерево.СоздатьКолонки();
Но колонки на форме затерает, которых нет в запросе, приходится потом программно добавлять.
ЭлементыФормы.Дерево.СоздатьКолонки()
пусто.
Сделал так:
Дерево = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
ЭлементыФормы.Дерево.СоздатьКолонки();
У меня вот так работает:
ЭлементыФормы.Дерево.Значение = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
ЭлементыФормы.Дерево.СоздатьКолонки();
Но колонки на форме затерает, которых нет в запросе, приходится потом программно добавлять.
(14)
Дерево = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
ЭлементыФормы.Дерево.СоздатьКолонки();
Так не получилось, видимо, потому что имя Реквизита формы и имя Элемента формы отличаются.
Тогда нужно было так:
Дерево = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
ЭлементыФормы.Дерево.СоздатьКолонки();
Так не получилось, видимо, потому что имя Реквизита формы и имя Элемента формы отличаются.
Тогда нужно было так:
ДеревоЗначений = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
ЭлементыФормы.Дерево.СоздатьКолонки();
(21)
Отвечу сам себе)
Мне видится всё так:
Отвечу сам себе)
Мне видится всё так:
ДеревоЗначений = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
ЭлементыФормы.Дерево.СоздатьКолонки();
ДеревоЗначений.Колонки.Добавить("Документ", Новый ОписаниеТипов("Строка"));
СЗ = Новый СписокЗначений;
СЗ.Добавить("ПриходныйКассовыйОрдер");
СЗ.Добавить("РасходныйКассовыйОрдер");
Новая = ЭлементыФормы.Дерево.Колонки.Добавить("Документ");
Новая.Данные = "Документ";
Новая.УстановитьЭлементУправления(Тип("ПолеВыбора"));
Новая.ЭлементУправления.СписокВыбора = СЗ;
Показать
(24)
сделал так, выводит в просто таблицу без дерева.
А в вашей обработке все нормально. Странно.
http://prnt.sc/26fmit1
ДеревоЗначений = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
ЭлементыФормы.Дерево.ОбновитьСтроки();
ЭлементыФормы.Дерево.ОбновитьСтроки();
сделал так, выводит в просто таблицу без дерева.
А в вашей обработке все нормально. Странно.
А если так:
то выводит дерево, но нет колонок, которых добавил вручную: нет в запросе.
ДеревоЗначений = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
ЭлементыФормы.Дерево.СоздатьКолонки();
то выводит дерево, но нет колонок, которых добавил вручную: нет в запросе.
(23) еще выяснилась проблема:
если перебрать дерево, то колонки Пометка, Результат в вашей обработке и у меня имеют тип NULL,
хотя галки стоят.
Тут я добавил процедуру перебора, чтобы посмотреть.
если перебрать дерево, то колонки Пометка, Результат в вашей обработке и у меня имеют тип NULL,
хотя галки стоят.
Тут я добавил процедуру перебора, чтобы посмотреть.
Прикрепленные файлы:
Дерево.epf
(30) Там же общие итоги, если ты так обходишь, то еще ниже на уровень будет твоя пометка.
Если Тебе Пометка нужна на всех Уровнях дерева, то в Итоги добавь так, хотя бы
Ну и общие итоги, можешь выкинуть ,если не нужны..это просто пример
Если Тебе Пометка нужна на всех Уровнях дерева, то в Итоги добавь так, хотя бы
|ИТОГИ
| СУММА(Сумма),
| МАКСИМУМ(Пометка) как Пометка
Ну и общие итоги, можешь выкинуть ,если не нужны..это просто пример