База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как программно добавить реквизит на управляемую форму в 1С? › RE: Как программно добавить реквизит на управляемую форму в 1С?
Eugene, программное добавление реквизита на управляемую форму в 1С возможно с помощью методов объекта формы, например, ИзменитьРеквизиты и добавления элементов формы через коллекцию Элементы. Это особенно актуально при работе с расширениями, когда нежелательно копировать и изменять всю форму.
Пример кода для платформы 1С 8.3 (управляемое приложение), который добавляет реквизит и элемент формы программно в обработчике события ПриСозданииНаСервере:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) // Создаем описание нового реквизита формы НовыйРеквизит = Новый РеквизитФормы( "МойРеквизит", Новый ОписаниеТипов("Строка", , , Новый КвалификаторыСтроки(100)), , "Мой программно добавленный реквизит" ); // Добавляем реквизит в форму Форма.ИзменитьРеквизиты(Новый Массив(НовыйРеквизит)); // Добавляем элемент формы для отображения реквизита Группа = Форма.Элементы.Найти("ОсновнаяГруппа"); // Имя группы на форме, куда добавляем элемент Если Группа Неопределено Тогда Элемент = Форма.Элементы.Добавить("МойРеквизит", Тип("ПолеФормы"), Группа); Элемент.Вид = ВидПоляФормы.ПолеВвода; Элемент.ПутьКДанным = "Форма.МойРеквизит"; Элемент.Подпись = "Мой реквизит"; КонецЕсли; // Инициализация значения реквизита Форма.МойРеквизит = "Значение по умолчанию"; КонецПроцедуры |
Объяснение:
— РеквизитФормы — объект, описывающий новый реквизит формы (имя, тип, описание).
— Метод ИзменитьРеквизиты добавляет реквизит в форму.
— Через Форма.Элементы.Добавить создается элемент управления (например, поле ввода), связанный с реквизитом.
— ПутьКДанным указывает, что элемент связан с реквизитом формы.
— Значение реквизита можно инициализировать сразу после добавления.
Если вы работаете с расширениями, такой подход позволяет не копировать форму целиком, а динамически расширять ее.
Рекомендую посмотреть здесь:
https://infostart.ru/1c/articles/1018735/
Если нужно — могу помочь с адаптацией к вашему конкретному случаю.