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