|
Убрать вывод предупреждения "Работа в данном окне не завершена". | ☑ | ||
---|---|---|---|---|
0
Сметанин
20.12.23
✎
14:00
|
Доброго времени!
Сейчас код такой. Модуль приложения. Процедура ПередЗавершениемРаботыСистемы(Отказ, ТекстПредупреждения) // СтандартныеПодсистемы СтандартныеПодсистемыКлиент.ПередЗавершениемРаботыСистемы(Отказ, ТекстПредупреждения); // Конец СтандартныеПодсистемы КонецПроцедуры Модуль СтандартныеПодсистемыКлиент Процедура ПередЗавершениемРаботыСистемы(Отказ = Ложь, ТекстПредупреждения = "") Экспорт Если ОтключенаЛогикаНачалаРаботыСистемы() Тогда Возврат; КонецЕсли; ПараметрыПриЗапускеПрограммы = ПараметрыПриложения["СтандартныеПодсистемы.ПараметрыПриЗапускеПрограммы"]; Если ПараметрыПриЗапускеПрограммы.Свойство("СкрытьРабочийСтолПриНачалеРаботыСистемы") Тогда // Произошла попытка закрытия до окончания запуска. #Если ВебКлиент Тогда // В веб-клиенте это возможно в штатном случае (при закрытии страницы в целом), // поэтому закрытие блокируется, так как его все равно можно выполнить принудительно, // а в случае случайного закрытия у пользователя должна быть возможность остаться на странице. Отказ = Истина; #Иначе // Не в веб-клиенте это возможно в случае ошибок в немодальной последовательности запуска. // То есть нет ни одного окна блокирующего весь интерфейс. Закрытие нужно разрешить, // но без стандартных процедур перед завершение работы системы, так как они могут // привести к ошибке в процессе закрытия из-за незавершенного запуска. #КонецЕсли Возврат; КонецЕсли; // В режиме работы толстый клиент (обычное приложение) не выводится список предупреждений. #Если ТолстыйКлиентОбычноеПриложение Тогда Возврат; #КонецЕсли Если ПараметрыПриложения["СтандартныеПодсистемы.ПропуститьПредупреждениеПередЗавершениемРаботыСистемы"] = Истина Тогда Возврат; КонецЕсли; Если Не ПараметрКлиента("ДоступноИспользованиеРазделенныхДанных") Тогда Возврат; КонецЕсли; Предупреждения = Новый Массив; ИнтеграцияПодсистемБСПКлиент.ПередЗавершениемРаботыСистемы(Отказ, Предупреждения); ОбщегоНазначенияКлиентПереопределяемый.ПередЗавершениемРаботыСистемы(Отказ, Предупреждения); Если Предупреждения.Количество() = 0 Тогда Если Не ПараметрКлиента("ЗапрашиватьПодтверждениеПриЗавершенииПрограммы") Тогда Возврат; КонецЕсли; ТекстПредупреждения = НСтр("ru = 'Завершить работу с программой?'"); Отказ = Истина; Иначе Если Не ПараметрКлиента("ЗапрашиватьПодтверждениеПриЗавершенииПрограммы") Тогда Возврат; КонецЕсли; Отказ = Истина; МассивПредупреждений = Новый Массив; Для Каждого Предупреждение Из Предупреждения Цикл МассивПредупреждений.Добавить(Предупреждение.ТекстПредупреждения); КонецЦикла; Если Не ПустаяСтрока(ТекстПредупреждения) Тогда ТекстПредупреждения = ТекстПредупреждения + Символы.ПС; КонецЕсли; ТекстПредупреждения = ТекстПредупреждения + СтрСоединить(МассивПредупреждений, Символы.ПС); ПодключитьОбработчикОжидания("ПоказатьПредупрежденияПриЗавершенииРаботы", 0.1, Истина); КонецЕсли; УстановитьПараметрКлиента("ПредупрежденияПриЗавершенииРаботы", Предупреждения); КонецПроцедуры |
|||
1
Сметанин
21.12.23
✎
09:21
|
Сделал в процедуре СтандартныеПодсистемыКлиент.ПередЗавершениемРаботыСистемы
сразу Возврат. Предупреждение все равно появляется. Возможно ли вообще его убрать? Никто не сталкивался с такой задачей? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |