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

Программирование системы 02.08.2016 14:31 9432

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

Открытие формы

Необходимо модально открыть произвольную форму с помощью функции ОткрытьФормуМодально().

Закрытие формы с возвратом значения

У открытой формы необходимо вызвать встроенный метод Закрыть(), который на вход принимает возвращаемое значение. Тип возвращаемого значения произвольный. В данном примере возвращается структура.

Для того чтобы добавить сообщение, необходимо Войти или Зарегистрироваться

Статья решает задачи:

  • Как передать параметр в открываемую программно форму;
  • Как вернуть параметр из открываемой программно формы;

Исходные данные:

  • Имеется общая форма — «НашаФорма», с реквизитами:
    • «МножительА» — заполняется при открытии формы, по значению переданного параметра;
    • «МножительБ» — заполняется вручную;
  • Необходимо:
    • программно открыть форму «НашаФорма».
    • передать в форму параметр, по значению которого заполнить реквизит «МножительА»;
    • вручную заполнить реквизит формы «МножительБ»;
    • умножить «МножительА» на «МножительБ» и результат вернуть в исходную процедуру;

1. Пишем процедуру по открытию «НашаФорма» и передаче в нее параметра «МножительА»

2. Пишем процедуру, которая при открытии «Наша форма» (в обработчике ПриСозданииНаСервере) будет заполнять реквизит «МножительА» по полученному значению

3. Пишем процедуру по вычислению результата умножения и возврату значения

Сайт о программировании в 1с версии 7.7 и 8.x

1 сентября 2011 г.

Модальное открытие формы в 1с 8. Как вернуть результат ОткрытьМодально()

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

МодФорма = ПолучитьФорму ( «ОсновнаяФорма» , ВладелецФормы );
Результат = МодФорма . ОткрытьМодально ();

Возникает проблема возврата результата, если форма не «для выбора»

В описании функции ОткрытьМодально() написано:

Форма.ОткрытьМодально (Form.DoModal)
ОткрытьМодально( )

Параметры: (необязательный)
Тип: Число . Время показа формы в секундах, по истечении которого форма будет закрыта с параметром закрытия Неопределено . Если значение параметра не задано, время показа не ограничено.
Значение по умолчанию: 0
Возвращаемое значение:
Тип: Произвольный. Команда закрытия формы.
Если форма открывалась для выбора, возвращает выбранное значение (или массив значений, в случае разрешенного множественного выделения в открываемой форме). Если значение не выбрано, возвращается Неопределено .
Описание:
Открывает форму в модальном режиме.

Я специально выделил фразу цветом. Получается: если форма определена «для выбора» — то она возвращает выбранные значения
В любых других случаях будет возвращаться — Неопределено.

Что же делать, когда у нас «обычная» форма (т. е. форма не определена как «для выбора») и мы хотим вернуть результат из формы после закрытия ?

В этом случае есть несколько решений:
1. Получив доступ к форме, мы можем вызывать различные функции и получать переменные. Естественно нужно, чтобы эти функции имели статус Экспорт

Например: МодФорма = ПолучитьФорму ( «ОсновнаяФорма» , ВладелецФормы );

РезультатФункции = МодФорма . НашаФункция ( «Параметры функции» );

Функция НашаФункция ( ПараметрыФункции ) Экспорт

Оцените статью
Добавить комментарий