0
DJ Anthon
12.10.22
✎
09:39
|
&НаКлиенте
&Вместо("ПередЗакрытием")
Процедура А_ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
Если Модифицированность = Истина И ТекущийВид = "ЧекККМ" Тогда
Отказ = Истина;
ТекстПредупреждения = "Внимание, не закрыт чек! Необходимо либо удалить строки чека, либо отложить его, либо пробить.";
ЗавершениеРаботы = Ложь;
ПодключитьОбработчикОжидания("ЗакрытиеПрограммыПользователем", 1, Истина);
Возврат;
КонецЕсли;
ПродолжитьВызов(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка);
КонецПроцедуры
В СП написано:
<ТекстПредупреждения>
Тип: Строка.
Если параметру <Отказ> установлено значение Истина и <ТекстПредупреждения> содержит непустую строку, то:
Если <ЗавершениеРаботы> установлено в Истина, окно сообщения со строкой текста предупреждения будет выведено на экран и пользователю будет предложено на выбор - остаться или покинуть окно без сохранения изменений.
Если <ЗавершениеРаботы> установлено в Ложь, текст предупреждения игнорируется и процесс закрытия формы прерывается.
У меня почему-то процесс закрытия формы не прерывается. Я получаю два вопроса (хотя мне нужно предупреждение с кнопкой ОК) и программу всё равно можно закрыть. Как отменить закрытие программы?
Да пофиг, пусть закрывается, но я уже не могу вызвать серверные методы. Как тогда их вызвать? В ожидание захода уже нет.
|
|
1
ДедМорроз
12.10.22
✎
19:25
|
Завершение работы - это флаг,который ставит система,предупреждая,что отказ не сработает и нужно заполнить текст предупреждения.
То,что вы сбрасываете его в Ложь уже ни на что не влияет.
|
|
2
DJ Anthon
12.10.22
✎
22:47
|
а как отменить закрытие в принципе? я ведь хочу отменить закрытие, а не принудительное закрытие.
или как сделать запись в базу, если придурок все-таки выбрал закрытие в тот момент, когда это запрещено?
|
|