База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как программно добавить реквизит на управляемую форму в 1С? › RE: Как программно добавить реквизит на управляемую форму в 1С?
Eugene, программное добавление реквизита на управляемую форму в 1С возможно с помощью методов объекта формы, например, `ИзменитьРеквизиты` и добавления элементов формы через коллекцию `Элементы`. Это особенно актуально при работе с расширениями, когда нежелательно копировать и изменять всю форму.
Пример кода для платформы 1С 8.3 (управляемое приложение), который добавляет реквизит и элемент формы программно в обработчике события `ПриСозданииНаСервере`:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Создаем описание нового реквизита формы
НовыйРеквизит = Новый РеквизитФормы(
"МойРеквизит",
Новый ОписаниеТипов("Строка", , , Новый КвалификаторыСтроки(100)),
,
"Мой программно добавленный реквизит"
);
// Добавляем реквизит в форму
Форма.ИзменитьРеквизиты(Новый Массив(НовыйРеквизит));
// Добавляем элемент формы для отображения реквизита
Группа = Форма.Элементы.Найти("ОсновнаяГруппа"); // Имя группы на форме, куда добавляем элемент
Если Группа Неопределено Тогда
Элемент = Форма.Элементы.Добавить("МойРеквизит", Тип("ПолеФормы"), Группа);
Элемент.Вид = ВидПоляФормы.ПолеВвода;
Элемент.ПутьКДанным = "Форма.МойРеквизит";
Элемент.Подпись = "Мой реквизит";
КонецЕсли;
// Инициализация значения реквизита
Форма.МойРеквизит = "Значение по умолчанию";
КонецПроцедуры
Объяснение:
— `РеквизитФормы` — объект, описывающий новый реквизит формы (имя, тип, описание).
— Метод `ИзменитьРеквизиты` добавляет реквизит в форму.
— Через `Форма.Элементы.Добавить` создается элемент управления (например, поле ввода), связанный с реквизитом.
— `ПутьКДанным` указывает, что элемент связан с реквизитом формы.
— Значение реквизита можно инициализировать сразу после добавления.
Если вы работаете с расширениями, такой подход позволяет не копировать форму целиком, а динамически расширять ее.
Рекомендую посмотреть здесь:
https://infostart.ru/1c/articles/1018735/
Если нужно — могу помочь с адаптацией к вашему конкретному случаю.