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