Передача данных из одной формы в другую Как из одной формы открыть другую, передав параметры, и получить обратно результат?
Варианты:
1. ОткрытьМодально, параметр закрытия, метод Закрыть
//первая форма
ВозвращаемоеЗначение = ДругаяФорма.ОткрытьМодально();
//в другой форме:
ЭтаФорма.Закрыть(ВозвращаемоеЗначение);
2. Реквизиты формы (или свойства расширения формы)
Реквизиты формы видимы снаружи как свойства объекта Форма. Их можно создать столько сколько нужно и присвоить им нужный тип.
//в первой форме
ДругаяФорма.ИмяРеквизита = Значение;
3. Через ЭлементыФормы (не очень красиво)
//в первой форме
ДругаяФорма = ДокументСсылка.ПолучитьФорму();
ДругаяФорма.ЭлементыФормы.ИмяПоля.Значение = Значение;
4. Оповещения
//в первой форме оповестить все открытые формы
Оповестить("ИмяСобытия","Форма1",Данные)
//в другой форме назначить обработчик события Оповещение
Процедура ОбработкаОповещения(Событие, Источник, Данные)
Если Событие = "ИмяСобытия" И Источник = "Форма1" Тогда
КонецЕсли;
КонецПроцедуры
5. Экспортные переменные модулей форм
Они становятся видимы снаружи, примерно как реквизиты форм:
//в первой форме
ДругаяФорма.ИмяПеременной = Значение;
//в другой форме
Перем ИмяПеременной Экспорт;
6. Глобальные переменные (экспортные переменные модуля приложения)
7. Внешний файл
8. СохранитьЗначение, ВосстановитьЗначение
9. Параметры сеанса
//в первой форме
ПараметрыСеанса.ИмяПараметра = Значение;
//в другой форме
Если ПараметрыСеанса.ИмяПараметра = Значение Тогда
КонецЕсли;
Обратите внимание! Попытка прочитать неинициализированный параметр сеанса приводит к ошибке! Поэтому нужно инициализировать все параметры сеанса раньше, например, еще в процедуре ПриНачалеРаботыСистемы.
10. Объекты базы данных (справочники, константы, регистры сведений и т.д.) |