1С возврат значения из формы



При закрытии формы может потребоваться вернуть из нее некоторые значения. Например, при нажатии на кнопку основной формы, открывается другая произвольная форма. После выполнения необходимых действий дополнительная форма закрывается, а в основную передается значение.
Открытие формы
Необходимо модально открыть произвольную форму с помощью функции ОткрытьФормуМодально().
Закрытие формы с возвратом значения
У открытой формы необходимо вызвать встроенный метод Закрыть(), который на вход принимает возвращаемое значение. Тип возвращаемого значения произвольный. В данном примере возвращается структура.
Для того чтобы добавить сообщение, необходимо Войти или Зарегистрироваться
Статья решает задачи:
- Как передать параметр в открываемую программно форму;
- Как вернуть параметр из открываемой программно формы;
Исходные данные:
- Имеется общая форма — «НашаФорма», с реквизитами:
- «МножительА» — заполняется при открытии формы, по значению переданного параметра;
- «МножительБ» — заполняется вручную;
1. Пишем процедуру по открытию «НашаФорма» и передаче в нее параметра «МножительА»
2. Пишем процедуру, которая при открытии «Наша форма» (в обработчике ПриСозданииНаСервере) будет заполнять реквизит «МножительА» по полученному значению
3. Пишем процедуру по вычислению результата умножения и возврату значения
Сайт о программировании в 1с версии 7.7 и 8.x
1 сентября 2011 г.
Модальное открытие формы в 1с 8. Как вернуть результат ОткрытьМодально()
Открытие формы модально — форма появляется на экране и блокирует другие окна, пока не будет закрыта.
МодФорма = ПолучитьФорму ( "ОсновнаяФорма" , ВладелецФормы );
Результат = МодФорма . ОткрытьМодально ();
Возникает проблема возврата результата, если форма не "для выбора"
В описании функции ОткрытьМодально() написано:
Форма.ОткрытьМодально (Form.DoModal)
ОткрытьМодально( )
Параметры: (необязательный)
Тип: Число . Время показа формы в секундах, по истечении которого форма будет закрыта с параметром закрытия Неопределено . Если значение параметра не задано, время показа не ограничено.
Значение по умолчанию: 0
Возвращаемое значение:
Тип: Произвольный. Команда закрытия формы.
Если форма открывалась для выбора, возвращает выбранное значение (или массив значений, в случае разрешенного множественного выделения в открываемой форме). Если значение не выбрано, возвращается Неопределено .
Описание:
Открывает форму в модальном режиме.
Я специально выделил фразу цветом. Получается: если форма определена "для выбора" — то она возвращает выбранные значения
В любых других случаях будет возвращаться — Неопределено.
Что же делать, когда у нас "обычная" форма (т. е. форма не определена как "для выбора") и мы хотим вернуть результат из формы после закрытия ?
В этом случае есть несколько решений:
1. Получив доступ к форме, мы можем вызывать различные функции и получать переменные. Естественно нужно, чтобы эти функции имели статус Экспорт
Например: МодФорма = ПолучитьФорму ( "ОсновнаяФорма" , ВладелецФормы );
РезультатФункции = МодФорма . НашаФункция ( "Параметры функции" );
Функция НашаФункция ( ПараметрыФункции ) Экспорт