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

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

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

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

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

 

Форма.ОткрытьМодально (Form.DoModal)
ОткрытьМодально(<Таймаут>)

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

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


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

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

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

          Результат = МодФорма.ОткрытьМодально();

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

Внимание!  Форма после закрытия продолжает существовать, и доступ к функциям с пометкой Экспорт можно получить.

……

// Функция вставляется в   Форму

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

// Действия в функции

Возврат Результат  
КонецФункции

2.  Можно использовать команду ОповеститьОВыборе(ВозвращаемыйПараметр)
Эта команда позволяет вернуть из формы указанный параметр «ВозвращаемыйПараметр»

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *