1CLenta.ru  

Программное добавление элементов управляемых форм

Программирование системы     26.04.2018 11:57     24095

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

Добавление поля ввода управляемой формы


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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

//Добавление реквизита

МассивРеквизитов = Новый Массив;
ОписаниеТипа = Новый ОписаниеТипов("Строка");
Реквизит1 = Новый РеквизитФормы("Реквизит1", ОписаниеТипа);
МассивРеквизитов.Добавить(Реквизит1);
ИзменитьРеквизиты(МассивРеквизитов);

//Добавление поля ввода

Элемент1 = ЭтаФорма.Элементы.Добавить("Реквизит1", Тип("ПолеФормы"), ЭтаФорма);
Элемент1.Вид = ВидПоляФормы.ПолеВвода;
Элемент1.ПутьКДанным = "Реквизит1";

КонецПроцедуры


Добавление кнопки управляемой формы


Для программного создания кнопки нужно будет создать команду, в которой необходимо в свойстве "Действие" задать имя процедуры обработчика команды.

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

Команда1 = ЭтаФорма.Команды.Добавить("Команда1");
Команда1.Действие = "ИмяПроцедуры";
Команда1.Заголовок = "Команда 1";

Элемент1 = ЭтаФорма.Элементы.Добавить("Кнопка1", Тип("КнопкаФормы"), ЭтаФорма);
Элемент1.Вид = ВидКнопкиФормы.ОбычнаяКнопка;
Элемент1.ИмяКоманды = "Команда1";

КонецПроцедуры

&НаКлиенте

Процедура ИмяПроцедуры()
Сообщить("Нажата кнопка Команда 1");
КонецПроцедуры


Добавление надписи (декорации) управляемой формы


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

Элемент1 = ЭтаФорма.Элементы.Добавить("Декорация1", Тип("ДекорацияФормы"), ЭтаФорма);
Элемент1.Заголовок = "Текст надписи";

КонецПроцедуры

Комментарии (0)