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