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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


      [an error occurred while processing the directive]
      Карта сайта