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