Архив рубрики: Работа с формами

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

Открытие формы модально - форма появляется на экране и блокирует другие окна, пока не будет закрыта.
МодФорма = ПолучитьФорму("ОсновнаяФорма",ВладелецФормы); Результат = МодФорма.ОткрытьМодально();
Возникает проблема возврата результата, если форма не "для выбора" Новости наших партнеров : Купить Зелбораф В описании функции ОткрытьМодально() написано:
Форма.ОткрытьМодально (Form.DoModal) ОткрытьМодально(<Таймаут>) Параметры: <Таймаут> (необязательный) Тип: Число. Время показа формы в секундах, по истечении которого форма будет закрыта с параметром закрытия Неопределено. Если значение параметра не задано, время показа не ограничено. Значение по умолчанию: 0 Возвращаемое значение: Тип: Произвольный. Команда закрытия формы. Если форма открывалась для выбора, возвращает выбранное значение (или массив значений, в случае разрешенного множественного выделения в открываемой форме). Если значение не выбрано, возвращается Неопределено. Описание: Открывает форму в модальном режиме.
Я специально выделил фразу цветом. Получается: если форма определена "для выбора" - то она возвращает выбранные значения В любых других случаях будет возвращаться - Неопределено.  Что же делать, когда у нас  "обычная" форма (т. е. форма не определена как "для выбора") и мы хотим вернуть результат из формы после закрытия ? В этом случае есть несколько решений: 1. Получив доступ к форме, мы можем вызывать различные функции и получать переменные. Естественно нужно, чтобы эти функции имели статус Экспорт
Например:  МодФорма = ПолучитьФорму("ОсновнаяФорма",ВладелецФормы);
          Результат = МодФорма.ОткрытьМодально();
РезультатФункции  = МодФорма.НашаФункция("Параметры функции");
Внимание!  Форма после закрытия продолжает существовать, и доступ к функциям с пометкой Экспорт можно получить.
......
// Функция вставляется в   Форму
Функция НашаФункция(ПараметрыФункцииЭкспорт
// Действия в функции
Возврат Результат   КонецФункции
2.  Можно использовать команду ОповеститьОВыборе(ВозвращаемыйПараметр) Эта команда позволяет вернуть из формы указанный параметр "ВозвращаемыйПараметр" На  этом пока всё, может будут у кого замечания и дополнения ... пишите :)