1с дерево значений добавить колонки программно

ДеревоЗначений.Колонки Метод Добавить()

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).

Пример использования

Пример кода с использованием метода Добавить() :

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

Читайте также:

Источник

Динамическое добавление колонки в дерево на управляемой форме 1Сv8.3

Для примера возьмем существующее на форме дерево с именем реквизита «Дерево», пусть в него надо добавить еще одну колонку с названием «Узел» тип строка. С динамическим добавлением элементов на управляемую форму можно разобраться на примере следующего алгоритма действий, все происходит на сервере:

  1. Получить значение реквизита — ДеревоЗначений
  2. Добавить колонку в дерево значений
  3. Добавить реквизит (колонку) дерева на форму (невидимая часть, справа в редакторе форм)
  4. Выгрузить дерево значений в реквизит формы
  5. Добавить на форму элемент колонку дерева (видимая часть, слева в редакторе форм)

// 1. получаем дерево как програмный объект
ДеревоОбъект = РеквизитФормыВЗначение ( «Дерево» );
// 2. добавляем колонку
ДеревоОбъект . Колонки . Добавить ( «Узел» , Новый ОписаниеТипов ( «Строка» ));
// 3. создаем РЕКВИЗИТ КОЛОНКИ (невидимая часть, справа в редакторе форм)
МассивДобавляемыхРеквизитов = Новый Массив ;
// реквизит принадлежит дереву
МассивДобавляемыхРеквизитов . Добавить (Новый РеквизитФормы ( «Узел» , Новый ОписаниеТипов ( «Строка» ), «Дерево» ));
// добавляем реквизит в форму (невидимая часть, справа в редакторе форм)
ИзменитьРеквизиты ( МассивДобавляемыхРеквизитов );

Читайте также:  Строение альвеолярного дерева функции

// 4. заполняем дерево (реквизит формы) занчением
ЗначениеВРеквизитФормы ( ДеревоОбъект , «Дерево» );
// 5. добавляем НА ФОРМУ (видимая часть, слева в редакторе форм)
// назовем ДеревоУзел, принадлежит элементу дерева, связан с добавленной колонкой «Узел»
НовыйЭлемент = Элементы . Добавить ( «ДеревоУзел» , Тип ( «ПолеФормы» ), Элементы . Дерево );
НовыйЭлемент . Вид = ВидПоляФормы . ПолеВвода ;
НовыйЭлемент . ПутьКДанным = «Дерево.Узел» ;

Динамическое добавление колонки в дерево на управляемой форме 1Сv8.3: 1 комментарий

Если для списка или библиотеки настроена навигация для метаданных, на сайте SharePoint в левой части страницы отображается элемент управления «Дерево», в котором отображается иерархия папок и термины управляемых метаданных. Пользователи могут выбирать элементы дерева для фильтрации представления элементов на странице, что дает им возможность динамического отображения контента. Они также могут уточнять поиск, используя элемент управления

Добавить комментарий Отменить ответ

Свежие записи

Источник

Программное добавление колонки в дерево значений на управляемой форме в расширении

В данном примере добавим колонку «Водитель» на форме обработки, которая управляет доставкой. Сначала создаём колонку в процедуре «ПриСозданииНаСервере».

&НаСервере Процедура расш_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка) расш_СоздатьКолонкуВодитель(); расш_ЗаполнитьКолонкуВодитель(); КонецПроцедуры

Но создать колонку только в процедуре «ПриСозданииНаСервере» недостаточно.
Необходимо создавать её при каждом выполнении процедуры «СохранитьЗаданияОбновитьСписки», потому что дерево будет формироваться каждый раз заново.

&НаСервере &После("СохранитьЗаданияОбновитьСписки") Процедура расш_СохранитьЗаданияОбновитьСписки() расш_СоздатьКолонкуВодитель(); расш_ЗаполнитьКолонкуВодитель(); КонецПроцедуры

Проверяем, существует ли уже колонка, и создаём, если она ещё не создана.
Внимательно смотрим, в какую группу вставить свой элемент. На форме могут быть колонки, объединённые в группы.

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

Заполняем нашу колонку значениями.
Напрямую взаимодействовать с деревом значений не получится.
Нужно использовать метод РеквизитФормыВЗначение(«ЗаданияНаПеревозкуПланируемые»).

&НаСервере Процедура расш_ЗаполнитьКолонкуВодитель() расш_Дерево = РеквизитФормыВЗначение("ЗаданияНаПеревозкуПланируемые"); Для каждого СтрокаДЗ Из расш_Дерево.Строки Цикл СтрокаДЗ.расш_Водитель = ""+СтрокаДЗ.Ссылка.Водитель; КонецЦикла; ЗначениеВРеквизитФормы(расш_Дерево,"ЗаданияНаПеревозкуПланируемые"); КонецПроцедуры

Источник

Оцените статью