|
Показывать вопрос о завершении работы ПередЗавершениемРаботыСистемы | ☑ | ||
---|---|---|---|---|
0
mirrr
07.12.16
✎
14:50
|
платформа 8.3.9, подскажите как сделать вопрос пользователю при завершении работы, если серверные вызовы и окна открыть нельзя?
|
|||
1
Tonik992
07.12.16
✎
14:52
|
Как вариант, попробуй сделать отказ, подключить обработчик оповещения с небольшой задержкой, и сделать то, что тебе надо, в процедуре "ПередЗакрытием"
|
|||
2
mirrr
07.12.16
✎
15:13
|
В упр. приложении:
Процедура ПередЗавершениемРаботыСистемы(Отказ) СтандартныеПодсистемыКлиент.ДействияПередЗавершениемРаботыСистемы(Отказ); КонецПроцедуры В СтандартныеПодсистемыКлиент: Процедура ДействияПередЗавершениемРаботыСистемы(Отказ) Экспорт Отказ = Истина; ОписаниеОповещения = Новый ОписаниеОповещения("ДействияПередЗавершениемРаботыСистемы_Завершение", ЭтотОбъект); ПоказатьВопрос(ОписаниеОповещения, "Завершить работу с системой?", РежимДиалогаВопрос.ДаНет,,,,); КонецЕсли; КонецПроцедуры Процедура ДействияПередЗавершениемРаботыСистемы_Завершение(Результат, Параметры) Экспорт Если Результат = КодВозвратаДиалога.Да Тогда глЗавершитьРаботуСистемы = Истина; ПодключитьОбработчикОжидания("ЗавершениеРаботыСистемы", 0.1, Истина); КонецЕсли; КонецПроцедуры Ругается на ПоказатьВопрос ПоказатьВопрос(ОписаниеОповещения, "Завершить работу с системой?", РежимДиалогаВопрос.ДаНет,,,,); по причине: Открытие окон при завершении работы запрещено Что нужно изменить чтобы заработало? |
|||
3
mirrr
07.12.16
✎
15:25
|
Подскажите, почему не срабатывает отказ от завершения работы Отказ = Истина?
|
|||
4
Tonik992
07.12.16
✎
15:28
|
БСП старая.
Отказ сработает после завершения работы процедуры, а вот диалоговое окно у тебя вызывается до окончания выполнения процедуры - отсюда и ошибка. |
|||
5
Tonik992
07.12.16
✎
15:28
|
Или включи режим совместимости и будет счастье
|
|||
6
mirrr
07.12.16
✎
15:33
|
(5) режим совместимости включить нет возможности. Подскажите, какие еще есть варианты?
|
|||
7
Fragster
гуру
07.12.16
✎
15:35
|
(6) обновить БСП
|
|||
8
mirrr
07.12.16
✎
15:47
|
(7) Подскажите, чтобы не обновлять всю БСП, какую нужно обновить подсистему для вывода вопроса при завершении работы?
|
|||
9
Tonik992
07.12.16
✎
15:52
|
А почитайте в синтаксис-помощнике про ПередЗавершениемРаботыСистемы
Закомментируйте вызов процедуры, всего-то.. А вот с выводом вопроса попробуйте сделать так, как я написал (2) Я не вижу других вариантов |
|||
10
mirrr
07.12.16
✎
16:00
|
(9) не совсем понял, какую процедуру закомментировать?
|
|||
11
mirrr
07.12.16
✎
16:05
|
(9) вывод вопроса я так и сделал, как я написано в (2), только вызвал его из "ПередЗавершениемРаботыСистемы", подскажите как сделать правильно?
|
|||
12
Tonik992
07.12.16
✎
16:08
|
(11) немного обманул вас
Не обработчик оповещения, а обработчик ожидания. Отказ = Истина; ПодключитьОбработчикОжидания("МояПроцедураГдеЕстьВопрос",1,ИСТИНА); |
|||
13
mirrr
07.12.16
✎
16:09
|
(12) этот код должен быть в "ПередЗавершениемРаботыСистемы"?
|
|||
14
Tonik992
07.12.16
✎
16:09
|
Хотя не, не прокатит, я тоже вас обманул очередной раз..
ИЗ выдержки синтаксис помощника: "Если параметру <Отказ> установлено значение Истина и <ТекстПредупреждения> содержит пустую строку, то пользователю будет отображено окно сообщения с общим текстом "Работа в данном окне не завершена" и предложено - остаться или покинуть окно без сохранения данных. " Походу дела никак |
|||
15
mirrr
07.12.16
✎
16:12
|
а обновление бсп может помочь?
|
|||
16
Tonik992
07.12.16
✎
16:23
|
Нет
|
|||
17
mirrr
07.12.16
✎
16:25
|
(16) тогда почему в бсп это работает?
|
|||
18
Tonik992
07.12.16
✎
16:41
|
в БСП доработаны процедуры обработки передзавершением.. Но диалоговых окон вы там не встретите.
Я же вам говорю, вы прочитайте синтаксис помощник и там всё поймете. Никак нельзя |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |