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