- Управляемая форма 1С 8.2 (8.3) – работа с деревом значений и таблицей значений. Часть I (Основы)
- Динамическое добавление колонки в дерево на управляемой форме 1Сv8.3
- Динамическое добавление колонки в дерево на управляемой форме 1Сv8.3: 1 комментарий
- Добавить комментарий Отменить ответ
- Свежие записи
- Динамический список на форме в виде дерева
- 1С 8.3 : Как отобразить дерево значений на управляемой форме
- Похожие FAQ
- Еще в этой же категории
Управляемая форма 1С 8.2 (8.3) – работа с деревом значений и таблицей значений. Часть I (Основы)
Как известно, в платформе 1С 8.1 не составляло никакого труда связать дерево значений с табличным полем на форме, единственное, что при этом нужно было не забыть, так это СоздатьКолонки(). В управляемом приложении 1С 8.2 (8.3) сделать это не так просто, как кажется на первый взгляд. В данной статье речь пойдет о программном создании дерева значений (таблицы значений) на управляемой форме в управляемом приложении 1С
В данной статье речь пойдет о программном создании дерева значений (таблицы значений) на управляемой форме в управляемом приложении 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; КонецЦикла; КонецЦикла; КонецЦикла; // Создание Реквизита формы типа ДанныеФормыДерево МассивДобавляемыхРеквизитов = Новый Массив; МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("Дерево", Новый ОписаниеТипов("ДеревоЗначений"))); Для Каждого Колонка Из ДеревоОбъект.Колонки Цикл МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы(Колонка.Имя, Колонка.ТипЗначения, "Дерево")); КонецЦикла; ИзменитьРеквизиты(МассивДобавляемыхРеквизитов); // Преобразование объекта прикладного типа ДеревоЗначений // в реквизит управляемой формы (данные формы) ЗначениеВРеквизитФормы(ДеревоОбъект, "Дерево"); // Создание элемента формы типа ТаблицаФормы для отображения дерева ЭлементДерево = Элементы.Добавить("Дерево", Тип("ТаблицаФормы")); ЭлементДерево.ПутьКДанным = "Дерево"; ЭлементДерево.Отображение = ОтображениеТаблицы.Дерево; Для Каждого Колонка Из ДеревоОбъект.Колонки Цикл НовыйЭлемент = Элементы.Добавить(Колонка.Имя, Тип("ПолеФормы"), ЭлементДерево); НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода; НовыйЭлемент.ПутьКДанным = "Дерево." + Колонка.Имя; КонецЦикла; КонецПроцедуры
Источник
Динамическое добавление колонки в дерево на управляемой форме 1Сv8.3
Для примера возьмем существующее на форме дерево с именем реквизита «Дерево», пусть в него надо добавить еще одну колонку с названием «Узел» тип строка. С динамическим добавлением элементов на управляемую форму можно разобраться на примере следующего алгоритма действий, все происходит на сервере:
- Получить значение реквизита — ДеревоЗначений
- Добавить колонку в дерево значений
- Добавить реквизит (колонку) дерева на форму (невидимая часть, справа в редакторе форм)
- Выгрузить дерево значений в реквизит формы
- Добавить на форму элемент колонку дерева (видимая часть, слева в редакторе форм)
// 1. получаем дерево как програмный объект
ДеревоОбъект = РеквизитФормыВЗначение ( «Дерево» );
// 2. добавляем колонку
ДеревоОбъект . Колонки . Добавить ( «Узел» , Новый ОписаниеТипов ( «Строка» ));
// 3. создаем РЕКВИЗИТ КОЛОНКИ (невидимая часть, справа в редакторе форм)
МассивДобавляемыхРеквизитов = Новый Массив ;
// реквизит принадлежит дереву
МассивДобавляемыхРеквизитов . Добавить (Новый РеквизитФормы ( «Узел» , Новый ОписаниеТипов ( «Строка» ), «Дерево» ));
// добавляем реквизит в форму (невидимая часть, справа в редакторе форм)
ИзменитьРеквизиты ( МассивДобавляемыхРеквизитов );
// 4. заполняем дерево (реквизит формы) занчением
ЗначениеВРеквизитФормы ( ДеревоОбъект , «Дерево» );
// 5. добавляем НА ФОРМУ (видимая часть, слева в редакторе форм)
// назовем ДеревоУзел, принадлежит элементу дерева, связан с добавленной колонкой «Узел»
НовыйЭлемент = Элементы . Добавить ( «ДеревоУзел» , Тип ( «ПолеФормы» ), Элементы . Дерево );
НовыйЭлемент . Вид = ВидПоляФормы . ПолеВвода ;
НовыйЭлемент . ПутьКДанным = «Дерево.Узел» ;
Динамическое добавление колонки в дерево на управляемой форме 1Сv8.3: 1 комментарий
Если для списка или библиотеки настроена навигация для метаданных, на сайте SharePoint в левой части страницы отображается элемент управления «Дерево», в котором отображается иерархия папок и термины управляемых метаданных. Пользователи могут выбирать элементы дерева для фильтрации представления элементов на странице, что дает им возможность динамического отображения контента. Они также могут уточнять поиск, используя элемент управления
Добавить комментарий Отменить ответ
Свежие записи
Источник
Динамический список на форме в виде дерева
Всем привет! Создаю общую произвольную форму, на которой хочу разместить документы в виде иерархического списка. У документа есть табличная часть. Хочется чтобы первая строка была Ссылка на документ, вторая строка перечислялось все что есть в табличной части документа. Динамический список нужен для того чтобы данные обновлялись.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Создание и заполнение «обычного» объекта прикладного типа ДеревоЗначений,
// который будет отображен на управляемой форме
ДеревоОбъект = Новый ДеревоЗначений;
ДеревоОбъект.Колонки.Добавить(«Узел», Новый ОписаниеТипов(«Строка»));
Для к1 = 1 По 5 Цикл
СтрокаУ1 = ДеревоОбъект.Строки.Добавить();
СтрокаУ1.Узел = «Узел»+к1;
Для к2 = 1 По 5 Цикл
СтрокаУ2 = СтрокаУ1.Строки.Добавить();
СтрокаУ2.Узел = СтрокаУ1.Узел+к2;
Для к3 = 1 По 5 Цикл
СтрокаУ3 = СтрокаУ2.Строки.Добавить();
СтрокаУ3.Узел = СтрокаУ2.Узел+к3;
КонецЦикла;
КонецЦикла;
КонецЦикла;
// Создание Реквизита формы типа ДанныеФормыДерево
МассивДобавляемыхРеквизитов = Новый Массив;
МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы(«Дерево»,
Новый ОписаниеТипов(«ДеревоЗначений»)));
Для Каждого Колонка Из ДеревоОбъект.Колонки Цикл
МассивДобавляемыхРеквизитов.Добавить(
Новый РеквизитФормы(Колонка.Имя, Колонка.ТипЗначения, «Дерево»));
КонецЦикла;
ИзменитьРеквизиты(МассивДобавляемыхРеквизитов);
// Преобразование объекта прикладного типа ДеревоЗначений
// в реквизит управляемой формы (данные формы)
ЗначениеВРеквизитФормы(ДеревоОбъект, «Дерево»);
// Создание элемента формы типа ТаблицаФормы для отображения дерева
ЭлементДерево = Элементы.Добавить(«Дерево», Тип(«ТаблицаФормы»));
ЭлементДерево.ПутьКДанным = «Дерево»;
ЭлементДерево.Отображение = ОтображениеТаблицы.Дерево;
Для Каждого Колонка Из ДеревоОбъект.Колонки Цикл
НовыйЭлемент = Элементы.Добавить(Колонка.Имя, Тип(«ПолеФормы»),
ЭлементДерево);
НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
НовыйЭлемент.ПутьКДанным = «Дерево.» + Колонка.Имя;
КонецЦикла;
КонецПроцедуры
Источник
1С 8.3 : Как отобразить дерево значений на управляемой форме
Добавляем управляемую форму и создаем обработчик ПриСозданииНаСервере(). Никаких реквизитов и элементов “вручную” не добавляем, будем делать это программно.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Создание и заполнение "обычного" объекта прикладного типа ДеревоЗначений,
// который будет отображен на управляемой форме
ДеревоОбъект = Новый ДеревоЗначений;
ДеревоОбъект.Колонки.Добавить("Узел", Новый ОписаниеТипов("Строка"));
Для к1 = 1 По 3 Цикл
СтрокаУ1 = ДеревоОбъект.Строки.Добавить();
СтрокаУ1.Узел = "Узел"+к1;
Для к2 = 1 По 3 Цикл
СтрокаУ2 = СтрокаУ1.Строки.Добавить();
СтрокаУ2.Узел = СтрокаУ1.Узел+к2;
Для к3 = 1 По 3 Цикл
СтрокаУ3 = СтрокаУ2.Строки.Добавить();
СтрокаУ3.Узел = СтрокаУ2.Узел+к3;
КонецЦикла;
КонецЦикла;
КонецЦикла;
// Создание Реквизита формы типа ДанныеФормыДерево
МассивДобавляемыхРеквизитов = Новый Массив;
МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("Дерево",
Новый ОписаниеТипов("ДеревоЗначений")));
Для Каждого Колонка Из ДеревоОбъект.Колонки Цикл
МассивДобавляемыхРеквизитов.Добавить(
Новый РеквизитФормы(Колонка.Имя, Колонка.ТипЗначения, "Дерево"));
КонецЦикла;
ИзменитьРеквизиты(МассивДобавляемыхРеквизитов);
// Преобразование объекта прикладного типа ДеревоЗначений
// в реквизит управляемой формы (данные формы)
ЗначениеВРеквизитФормы(ДеревоОбъект, "Дерево");
// Создание элемента формы типа ТаблицаФормы для отображения дерева
ЭлементДерево = Элементы.Добавить("Дерево", Тип("ТаблицаФормы"));
ЭлементДерево.ПутьКДанным = "Дерево";
ЭлементДерево.Отображение = ОтображениеТаблицы.Дерево;
Для Каждого Колонка Из ДеревоОбъект.Колонки Цикл
НовыйЭлемент = Элементы.Добавить(Колонка.Имя, Тип("ПолеФормы"),
ЭлементДерево);
НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
НовыйЭлемент.ПутьКДанным = "Дерево." + Колонка.Имя;
КонецЦикла;
КонецПроцедуры
Похожие FAQ
Cодержимое указанного ниже веб-сайта в этом приложении блокируется. Aboutsecurity_1cv8c.exe 1
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже веб-узла в э Google maps : вывод точек на карту и режим панорамы 8
В отличие от яндекс карт в GMaps можно использовать панорамы — за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С возможностью просмотра панора PostgreSQL: установка, настройка, обслуживание 11
PostgreSQL напрямую «из коробки» применяться для использования с 1С Предприятем не может. Необходима именно адаптированная версия от 1С, превращающая PostgreSQL в блокировочник, причем нужно понимать, что блокировки будут накладываться на всю таблиц Автоматическая архивация баз 1С с использованием Cobian Backup и VBS скриптов 8
Клиент попросил настроить автоматическую архивацию баз 1С раз в три дня и выгрузку архивов на Dropbox и на FTP Сервер. Кроме 1С нужно архивировать папку с рабочими документами. Хочет — так хочет, делаем: Первым делом настроим автоматическую архивац Вывод результата запроса на форму УП в таблицу значений (аналог СоздатьКолонки() для УП) 2
при разработке на обычных формах было удобно выводить результат запроса используя метод СоздатьКолоки(): Процедура ПоискНажатие(Элемент) Запрос = Новый Запрос; Запрос.Текст = «ВЫБРАТЬ | ДокументоОборот.Этап, | ДокументоОборот.Отдел, | Докуме Посмотреть все результаты поиска похожих
Еще в этой же категории
Дерево значений в таблицу значений или в табличную часть и обратно 9
Для одной организации надо было реализовать документы, где вместо табличной части надо использовать дерево и все это на управляемых формах. Но дерево нельзя сохранить в базе в текущем виде. Пришлось использовать табличную часть документа для хранени ДеревоЗначений в ТекстовыйДокумент 3
// Выводит данные ДереваЗначений в ТекстовыйДокумент, пригодный к рассмотрению в отладчике, окне сообщений и показу. // // Параметры: // рВетка — дерево значений, подлежащее выводу. Может иметь почти любую глубину иерархии, количество и тип ко Как удалить строку или очистить дерево значений 1
Помните, что при при удалении/очистке строки, все подчиненные строки удаляются. Очистить дерево значений: Дерево.Строки.Очистить(); НаСервере Процедура ОчиститьНаСервере() тДерево = РеквизитФормыВЗначение(«Дерево»); тДерево.Строки.О Посмотреть все в категории Работа с Деревом Значений
Источник