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