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