Закрыть ... [X]

Как сделать что бы колонки басили

В данной статье речь пойдет о программном создании дерева значений (таблицы значений) на управляемой форме в управляемом приложении 1С 8.2. Так как работа с ДеревомЗначений и ТаблицейЗначений в данном контексте практически не басили отличается, в примере будет использоваться ДеревоЗначений, все тоже самое за исключением иерархии применимо и к ТаблицеЗначений. Как известно, в платформе 1С 8.1 не составляло никакого труда связать дерево значений с табличным полем на форме, единственное что при этом нужно было не забыть так это СоздатьКолонки(). В управляемом приложении 1С 8.2 сделать это не так просто как кажется на первый взгляд.
Обращаю внимание, что ДеревоЗначений доступно только на сервере, в толстом клиенте и внешнем соединение. В данных самой управляемой формы для моделирования дерева используется тип ДанныеФормыДерево. Для преобразования ДеревоЗначений <-> ДанныеФормыДерево используются методы управляемой формы ЗначениеВРеквизитФормы() и РеквизитФормыВЗначение(). Для непосредственного отображения дерева используется элемент формы типа ТаблицаФормы связанный через реквизит ПутьКДанным с реквизитом формы типа ДанныеФормыДерево. Если Вам не очень понятна вышеописанная связь объектов, не огорчайтесь, ниже рассмотрим практический пример и все встанет на свои места.

Задача: Имеется дерево значений, необходимо отобразить его на управляемой форме.

Создаем новую внешнюю обработку, добавляем управляемую форму и создаем обработчик ПриСозданииНаСервере(). Никаких реквизитов и элементов “вручную” не добавляем, будем делать это программно.

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

Скачать обработку

Если публикация показалась Вам полезной и интересной не забывайте оставлять свои отзывы и комментарии, так же Вы можете выразить свою благодарность материально.

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


Поделись с друзьями



Рекомендуем посмотреть ещё:



Какие отношения до брака называются блудом и Шкаф из мебельных щитов своими руками чертежи

Как сделать что бы колонки басили Как сделать что бы колонки басили Как сделать что бы колонки басили Как сделать что бы колонки басили Как сделать что бы колонки басили Как сделать что бы колонки басили Как сделать что бы колонки басили

ШОКИРУЮЩИЕ НОВОСТИ