Открытие формы модально - форма появляется на экране и блокирует другие окна, пока не будет закрыта.
В описании функции ОткрытьМодально() написано:
Я специально выделил фразу цветом. Получается: если форма определена "для выбора" - то она возвращает выбранные значения
В любых других случаях будет возвращаться - Неопределено.
Что же делать, когда у нас "обычная" форма (т. е. форма не определена как "для выбора") и мы хотим вернуть результат из формы после закрытия ?
В этом случае есть несколько решений:
1. Получив доступ к форме, мы можем вызывать различные функции и получать переменные. Естественно нужно, чтобы эти функции имели статус Экспорт
МодФорма = ПолучитьФорму("ОсновнаяФорма",ВладелецФормы);Возникает проблема возврата результата, если форма не "для выбора"
Результат = МодФорма.ОткрытьМодально();
В описании функции ОткрытьМодально() написано:
Форма.ОткрытьМодально (Form.DoModal)
ОткрытьМодально(<Таймаут>)
Параметры: <Таймаут> (необязательный)
Тип: Число. Время показа формы в секундах, по истечении которого форма будет закрыта с параметром закрытия Неопределено. Если значение параметра не задано, время показа не ограничено.
Значение по умолчанию: 0
Возвращаемое значение:
Тип: Произвольный. Команда закрытия формы.
Если форма открывалась для выбора, возвращает выбранное значение (или массив значений, в случае разрешенного множественного выделения в открываемой форме). Если значение не выбрано, возвращается Неопределено.
Описание:
Открывает форму в модальном режиме.
Я специально выделил фразу цветом. Получается: если форма определена "для выбора" - то она возвращает выбранные значения
В любых других случаях будет возвращаться - Неопределено.
Что же делать, когда у нас "обычная" форма (т. е. форма не определена как "для выбора") и мы хотим вернуть результат из формы после закрытия ?
В этом случае есть несколько решений:
1. Получив доступ к форме, мы можем вызывать различные функции и получать переменные. Естественно нужно, чтобы эти функции имели статус Экспорт
Например: МодФорма = ПолучитьФорму("ОсновнаяФорма",ВладелецФормы);Результат = МодФорма.ОткрытьМодально();
РезультатФункции = МодФорма.НашаФункция("Параметры функции");Внимание! Форма после закрытия продолжает существовать, и доступ к функциям с пометкой Экспорт можно получить.
......// Функция вставляется в Форму
Функция НашаФункция(ПараметрыФункции) Экспорт// Действия в функции
Возврат Результат
КонецФункции
2. Можно использовать команду ОповеститьОВыборе(ВозвращаемыйПараметр)
Эта команда позволяет вернуть из формы указанный параметр "ВозвращаемыйПараметр"
На этом пока всё, может будут у кого замечания и дополнения ... пишите :)
Эта команда позволяет вернуть из формы указанный параметр "ВозвращаемыйПараметр"
На этом пока всё, может будут у кого замечания и дополнения ... пишите :)
Это прекрасно, но есть вариант проще. У формы есть метод "Закрыть":
ОтветитьУдалитьЗакрыть()
Параметры:
(необязательный)
Тип: Произвольный.
Параметр закрытия формы, открытой в модальном режиме. Это значение будет возвращено как результат метода, открывающего форму модально.
Значение по умолчанию: Неопределено
Описание:
Закрывает форму. Если закрываемая форма была открыта в модальном режиме, то метод может передать команду закрытия методу, открывшему форму.
Спасибо за замечание
ОтветитьУдалитьСпасибо!
УдалитьПервое решение - отличное. Возьму себе на заметку. СПАСИБО!!!
ОтветитьУдалитьЯ хочу поделиться свидетельством о том, как г-н Бенджамин помог мне с займом в 2 000 000,00 долларов США для финансирования моего проекта по выращиванию марихуаны, я очень благодарен и пообещал поделиться этой законной финансирующей компанией с любым, кто ищет способ расширить свой бизнес-проект. .финансирующая компания. Любой, кто ищет финансовую поддержку, должен связаться с ними по адресу lfdsloans@outlook.com. Г-н Бенджамин также работает в WhatsApp + 1-989-394-3740, чтобы облегчить задачу любому заявителю.
ОтветитьУдалить