При разработке в 1С необходимо использовать асинхронный способ отображения диалоговых окон. Делается это с помощью процедуры “ПоказатьВопрос()” в сочетании с механизмом описания оповещения. Описание оповещения позволяет вызывать экспортируемую процедуру, которая продолжает вызов и обрабатывает результат выбранный пользователем.
&НаКлиенте
Процедура СоздатьДоговоры(Команда)
Если ЭтотОбъект.Модифицированность Тогда
ОписаниеОповещения = Новый ОписаниеОповещения("СоздатьДоговорыЗавершение", ЭтотОбъект);
ПоказатьВопрос(ОписаниеОповещения, "Документ должен быть записан. Записать и продолжить?", РежимДиалогаВопрос.ДаНет);
Иначе
//Если спрашивать не требуется вызываем процедуры завершения - результат ответа ставим по умолчанию в зависимости от требуемой логики.
СоздатьДоговорыЗавершение(КодВозвратаДиалога.Нет);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СоздатьДоговорыЗавершение(Результат, Параметры = Неопределено) Экспорт
Если Результат = КодВозвратаДиалога.Да Тогда
//Действия выполняемые при положительном ответе пользователя
ЭтотОбъект.Записать();
КонецЕсли;
//Действия выполняемые независимо от ответа пользователя
СоздатьДоговорыНаСервере();
Элементы.СписокДоговоры.Обновить();
КонецПроцедуры
Таким простым примером мы используем рекомендуемый способ работы с диалоговыми окнами в приложениях 1С.