Программное создание реквизита в управляемых формах 1С

      Программное создание реквизита на форме осуществляется с помощью метода «ИзменитьРеквизиты». В первый параметр данного метода передается массив объектов с типом «РеквизитФормы».     

ДобавляемыеРеквизиты = Новый Массив; //1       

НовыйРеквизит = Новый РеквизитФормы("НашРеквизит",Новый ОписаниеТипов("Строка"),, "", Истина); //2   

ДобавляемыеРеквизиты.Добавить(НовыйРеквизит); //3     

ИзменитьРеквизиты(ДобавляемыеРеквизиты); //4

Комментарий к фрагменту кода:

  1. Создаем массив, в котором будут храниться объекты с типом «РеквизитФормы»
  2. Создаем новый объект типа «РеквизитФормы».
  3. Добавляем новый объект типа «РеквизитФормы» в массив.
  4. Передаем массив в качестве первого параметра в метод «ИзменитьРеквизиты»

Добавим программно элемент формы:

НовыйЭлементФормы = Элементы.Добавить("НашРеквизит",Тип("ПолеФормы"),ЭтаФорма); //1

НовыйЭлементФормы.ПутьКДанным         = "НашРеквизит";  //2

НовыйЭлементФормы.Заголовок                = "Наш реквизит"; //3

НовыйЭлементФормы.Вид                          = ВидПоляФормы.ПолеВвода;  //4

НовыйЭлементФормы.КнопкаОчистки = Истина;   //5

НовыйЭлементФормы.УстановитьДействие("ПриИзменении","ПриИзмененииРеквизита"); //6

НовыйЭлементФормы.УстановитьДействие("Очистка","ОчисткаРевизита"); //7

Комментарий к фрагменту кода:

  1. Добавляем новый элемент формы с типом «ПолеФормы»
  2. Указываем путь к данным хранящиеся в реквизите формы «НашРеквизит»
  3. Указываем заголовок
  4. Указываем, что вид элемента формы будет «ПолеВвода»
  5. Добавим кнопку «Очистка»
  6. Добавим обработчик событий «ПриИзмененииРеквизита», который будет отрабатывать при изменении.
  7. Добавим обработчик событий «ОчисткаРевизита», который будет отрабатывать при очистки.

Обработчики событий «ПриИзмененииРеквизита» и «ОчисткаРевизита» должны исполняться на клиенте и быть экспортными:

&НаКлиенте
Процедура ПриИзмененииРеквизита(Элемент) Экспорт

                Сообщение = Новый СообщениеПользователю;

                Сообщение.Текст = ЭтаФорма[Элемент.Имя];

                Сообщение.Сообщить();

КонецПроцедуры // ПриИзмененииРеквизита()

&НаКлиенте
Процедура ОчисткаРевизита(Элемент, СтандартнаяОбработка) Экспорт

                СтандартнаяОбработка = Ложь;

                Сообщение = Новый СообщениеПользователю;

                Сообщение.Текст = "Реквизит очищен!";

                Сообщение.Сообщить();

КонецПроцедуры // ОчисткаРевизита ()