Передача параметра в обычную форму

15 июня 2013

Файлы для загрузки:

Обработка с примером из статьи

Задача

У нас есть обработка с вот такой основной формой:

Из этой формы нам нужно открыть некоторую дополнительную форму, при этом текст из поля формы должен передаваться в открываемую форму. Дополнительная форма имеет следующий вид:

Таким образом, при на нажатии на кнопку "Выполнить открывается дополнительная форма с уже введенным текстом в поле:

Рассмотрим способ решения подобной задачи. 

Решение

Для передачи параметров между обычными формами можно либо воспользоваться глобальной экспортной переменной модуля формы, либо создать реквизит формы. Рассмотрим оба способа для в рамках нашей задачи.

1. Использование глобальной экспортной переменной модуля формы.

В основную форму для процедуры-обработчика кнопки "Выполнить" добавим следующий программный код:

Процедура КнопкаВыполнитьНажатие(Кнопка)
	
	Форма = ПолучитьФорму("ДополнительнаяФорма");
	// "Текст" - это глобальная экспортная переменная модуля открываемой формы
	Форма.Текст = ЭлементыФормы.Текст.Значение;
	Форма.Открыть();
	
КонецПроцедуры

Переменная текст добавлена в модуль открываемой формы вместе с обработчиком события "ПередОткрытием":

Перем Текст Экспорт; // Переменная, в которую передается значение из другой формы

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
		
	ЭлементыФормы.ПереданныйТекст.Значение = Текст;	
	
КонецПроцедуры

Задача решена, причем достаточно просто!

2. Использование реквизита формы.

Для второго способа нам даже не нужно переписывать обработчики кнопки "Выполнить" и "ПередОткрытием". Все, что необходимо - это добавить в открываемую форму реквизит "Текст" с типом строка.

Выводы

В управляемых формах передавать параметры намного проще. В обычных формах в большинстве случаев используется описанный подход.


comments powered by Disqus