


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