Приветствую, Форумчане!
1с8.3.12, самопис, УФ

Имеется некий большой код в модуле формы. В код вставляется открытие формы:

```1c
    Оповещение = Новый ОписаниеОповещения("ОткрытьПараметрыЗавершение", ЭтотОбъект);

    ПараметрыОткрытия = Новый Структура;
    ПараметрыОткрытия.Вставить("Подразделение", Объект.ТекущееПодразделение);
    ПараметрыОткрытия.Вставить("АдресТаблицыИзделий", АдресТаблицыИзделий());

    ОткрытьФорму("Документ.Заказ.Форма.ФормаПроверкиСкладовВыставки", ПараметрыОткрытия, ЭтотОбъект,,,,Оповещение,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);

    //55782 -->
    РезультатПроверки = ПереводВСтатусРазрешен(ПредопределенноеЗначение("Перечисление.СтатусыЗаказов.Открыт"));
    Если РезультатПроверки.ЕстьОшибки Тогда

    ПоказатьПредупреждение(, РезультатПроверки.ОписаниеОшибки, 5, "Изменение статуса заказа");
    Возврат;

    КонецЕсли;

    Много остального кода, который должен выполняться ТОЛЬКО после закрытия формы "Документ.Заказ.Форма.ФормаПроверкиСкладовВыставки"
```

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

РезультатПроверки = ПереводВСтатусРазрешен(ПредопределенноеЗначение("Перечисление.СтатусыЗаказов.Открыт"));
    Если РезультатПроверки.ЕстьОшибки Тогда

Срабатывает, недожидаясь завершения работы открытой формы "ФормаПроверкиСкладовВыставки"

Никак не могу добится этого эффекта модальности, чтобы всё замерло до закрытия открытой формы...
Посоветуйте.
Какое должно быть оповещение?
---
Используйте ОписаниеОповещенияОЗакрытии (предпоследний параметр ) и опишите там что должно сделаться после закрытия формы
---
Рекомендую не пытаться добиться модальности, а выполнить весь необходимый код, следующий за открытием формы, в обработчике "ОткрытьПараметрыЗавершение".
---
Рекомендую не пытаться добиться модальности, а выполнить весь необходимый код, следующий за открытием формы, в обработчике "ОткрытьПараметрыЗавершение".
---
Используйте ОписаниеОповещенияОЗакрытии (предпоследний параметр ) и опишите там что должно сделаться после закрытия формы
---
Ранее было так:

```1c
    Процедура ВыполнитьМногоКодаНаФорме(Команда)
```

Вместо этой кнопки создал новую:

```1c
    &НаКлиенте
    Процедура АбалдетьКакаяпроцедура()
    Оповещение = Новый ОписаниеОповещения("ВыполнитьМоюХотелку", ЭтотОбъект);
    ОткрытьФорму("Документ.Заказ.Форма.ФормаПроверкиСкладовВыставки", ПараметрыОткрытия, ЭтотОбъект,,,,Оповещение,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
    КонецПроцедуры

    &НаКлиенте
    Процедура ВыполнитьМоюХотелку(Результат, ДополнительныеПараметры) Экспорт

    ВыполнитьМногоКодаНаФорме(Неопределено);

    КонецПроцедуры
```

Вроде сработало...
Ну неужели нет более простого способа? И вообще, то, что я понаписал это правильно с точки зрения оптимизации?
---
Именно так и нужно, т.к. платформа уходит от модальных окон.
---
А если надо открываемую форму заполнить по-своему при этом ?
Как быть без модальности?
---
быть безПолучить, заполнить, открыть.
Ваш К.О.
---
после открыть - выполнение продолжается дальше
Ваш К.О.

А вопрос то - дождаться закрытия. То есть И заполнить форму по-своему И получить от формы какой-то результат.
---
выполнение продолжается дальшеХреновый их тебя К.О. Даже не ефрейтор. Неграмотный.

После выполнения метода глобального контекста ПолучитьФорму у тебя внезапно возникает неоткрытая форма, с которой можно делаать все что хочешь. Даже вызвать потом у нее метод Открыть, который и запустит всю свистопляску с немодальностью. Результат формы получишь традиционо - в обработчике оповещения о закрытии.

Учись, салага, будь прилежен.
---
ещё раз
Открыть не вызывает остановку и ожидание. После этого код продолжает выполняться.
Оповещение о закрытии происходит внутри этой открытой формы, но никак не в коде, который вызвал открыть.
Вы сможете Открыть() и дождаться результата тут же?
Можно пример?
---
ещё разКак скажешь.

Метода. Глобального. Контекста. ПолучитьФорму.
Изменить. Данные. Формы..
Открыть. Полученную. Форму.
---
А, понял, в чем вопрос.

Как вариант - реализовать заполнение формы в ПриСозданииНаСервере по переданным параметрам.
При этом использовать пример из 4.

Другой вариант - через ПолучитьФорму, как предложили выше, и в форме вызывать Оповестить() при закрытии.
В исходной форме обрабатывать оповещения.
---
В обычных условиях, где тебе какие-никакие правки дозволены - да - в обработку ввода на основании влезть или в форму и профит.
Но вот пытаюсь поставить себя на место разработчика для Фреша.
Создали обработку ввода на основании (внешнюю).
Открыли форму нового объекта, заполнили чем-то.
По закрытию этой формы ещё надо что-то сделать по данным закрытой формы.
В открываемую форму влезть не дадут - фреш.
Расширения - тот ещё квест.
Сохранять форму в переменную и обработчиком ожидания проверять разве что.
---
Можно так:

```1c
    МояФорма = ПолучитьФорму(НужнаяФорма);
    //Заполнить форму
    МояФорма.ОписаниеОповещенияОЗакрытии = Новый ОписаниеОповещения("СделатьЧтотоЕще",ЭтотОбъект);
    МояФорма.Открыть();
```