Для этого можно воспользоваться двумя способами:
- Через структуру ДополнительныеСвойства, которая есть почти у каждого объекта.
- Через экспортную переменную модуля объекта
Например, модуль формы(РеквизитФормы имеет тип булево и равен Ложь):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
//модуль формы документа: &НаСервере Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) //в обработчике ПередЗаписьюНаСервере в параметре ТекущийОбъект //находится сам прикладной объект, а не данные формы. //Соответственно доступны и ДополнительныеСвойства и //экспортная переменная модуля объекта ТекущийОбъект.ДополнительныеСвойства.Вставить("РеквизитФормы", РеквизитФормы); ТекущийОбъект.ПеременнаяМодуляОбъект = 1; КонецПроцедуры &НаСервере Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) //в обработчике ПриЗаписиНаСервере в параметре ТекущийОбъект //тоже сам прикладной объект, а не данные формы. //Тут можно получить какое-то значение из модуля объекта Сообщить("Форма: " + ТекущийОбъект.ПеременнаяМодуляОбъект); КонецПроцедуры |
И модуль объекта:
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 26 27 |
//модуль объекта документа: //экспортная переменная модуля объекта Перем ПеременнаяМодуляОбъект Экспорт; Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) //проверяем есть ли в дополнительных свойствах ключ РеквизитФормы Если ДополнительныеСвойства.Свойство("РеквизитФормы") Тогда //получаем значение по ключу РеквизитФормы = ДополнительныеСвойства.РеквизитФормы; Сообщить("Перед записью: " + РеквизитФормы); КонецЕсли; //это экспортная переменная, которая была заполнена в модуле формы Сообщить("Перед записью: " + ПеременнаяМодуляОбъект); КонецПроцедуры Процедура ОбработкаПроведения(Отказ, РежимПроведения) //тут тоже самое Если ДополнительныеСвойства.Свойство("РеквизитФормы") Тогда РеквизитФормы = ДополнительныеСвойства.РеквизитФормы; Сообщить("Проведение: " + РеквизитФормы); КонецЕсли; Сообщить("Проведение: " + ПеременнаяМодуляОбъект); //меняем значение экспортной переменной, потом получим //это значение в модуле формы ПеременнаяМодуляОбъект = 2; КонецПроцедуры |
проведении документа получим такие сообщения:
