Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

УТ 11. Вопрос перед закрытием формы.

УТ 11. Вопрос перед закрытием формы.
Я
   Вельможа
 
21.04.19 - 13:25
Здравствуйте.
УТ 11.4. В расширении конфы при попытке пользователем закрыть форму нужно спросить у него, точно ли он это хочет сделать в зависимости от некоторого условия.
Вопрос ему задаю с помощью ПоказатьВопрос(). То есть, он пытается закрыть форму, а перед этим ему должен быть задан вопрос вида "Ты точно этого хочешь" и кнопки да/нет. Но, вопрос-то появляется, а форма все равно сразу после появления вопроса закрывается. В итоге у пользователя остается висеть вопрос о закрытии формы, хотя она уже закрылась.
Как сделать так, чтобы форма ждала ответа пользователя?
 
 
   Mort
 
1 - 21.04.19 - 13:32
1. Флажок что мы точно закрываем форму. Если флажка не стоит - перед закрытием отказ.
2. Корректно обработать завершение работы - там при отказе свой диалог появляется.
   Вельможа
 
2 - 21.04.19 - 13:34
(1), переменную отказ в расширении менять нельзя. В этом вся соль.
   Вельможа
 
3 - 21.04.19 - 13:47
Пока не задашь вопрос, не решишь задачу))
Переменную отказ можно менять в обработчике расширения ПЕРЕД. В ПОСЛЕ уже нельзя.
Вот так решил задачу.

&НаКлиенте
Перем МожноЗакрыть;

&НаКлиенте
Процедура СформироватьОтветНаВопрос(Ответ, ДополнительныеПараметры)Экспорт
    Если Ответ = КодВозвратаДиалога.Да Тогда
        МожноЗакрыть = Истина;
        ЭтаФорма.Закрыть();   
    КонецЕсли;
КонецПроцедуры

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.