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