Действия при отказе от завершения работы системы

1. GinGitsune 30.01.23 11:34 Сейчас в теме
От пользователей поступил запрос: можно ли перед завершением работы уведомлять о наличии приостановленных заданий и перекидывать в список таких заданий?

Хотелось бы, чтобы при завершении работы вместо стандартного вопроса был: "имеются незавершенные задания. Завершить работу программы?" и, соответственно, по отказу от завершения открывалась необходимая форма списка.

Я не очень понимаю откуда начинать решать задачу (и имеет ли она вообще решение), а в БСП еще не слишком сильна, ноесть подозрение, что начинать надо оттуда.
По теме из базы знаний
Найденные решения
6. spacecraft 30.01.23 13:26 Сейчас в теме
(5) можно взять за основу вариант из (2)
Перем Закрывать;

Процедура ПередЗавершениемРаботыСистемы(Отказ, ТекстПредупреждения)
	Если НЕ Закрывать Тогда
		Отказ = Истина;
		ТекстПредупреждения = "имеются незавершенные задания. Завершить работу программы?";
		ПодключитьОбработчикОжидания("ДействиеПриЗавершенииПрограммы",0.1,Истина);
		Закрывать = Истина;
	КонецЕсли;
	
КонецПроцедуры

Процедура ДействиеПриЗавершенииПрограммы() Экспорт
	ОткрытьФорму("Обработка.ОбработкаЗакрытияПрограммы.Форма");
КонецПроцедуры

Закрывать = Ложь;
Показать
GinGitsune; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. starik-2005 3046 30.01.23 12:02 Сейчас в теме
При завершении работы нельзя, если мне правильно помнится, серверные вызовы дергать. и формы открывать.

Я бы как-то так сделал:

Модуль приложения:
Перем Т Экспорт;

Процедура ПередЗавершениемРаботыСистемы(Отказ, ТекстПредупреждения)
	Если НЕ Т Тогда 
		Отказ = Истина; 
		Т = Истина;
		ТекстПредупреждения = "Ай-ай-ай!";
	КонецЕсли;
КонецПроцедуры

Т = Ложь;
Показать

Ну а дальше в форме при закрытии где-то там "Т" проверял на истинность. Если истина, то типа форму открыть и все такое.
GinGitsune; +1 Ответить
3. spacecraft 30.01.23 12:53 Сейчас в теме
(1) Окно о закрытии будет выводиться всегда. Тут никак от него не избавиться. Соответственно пользователь может нажать закрыть и программа завершится.
Можно назначить на выбор варианта "Продолжить работу" открытие нужной формы.

(2)
Отказ = Истина;

В данном случае не избавит от показа окна завершения работы и возможности завершить работу программы.
4. starik-2005 3046 30.01.23 13:09 Сейчас в теме
(3)
не избавит от ... возможности завершить работу
А это кому-то надо было? Пользователь должен увидеть, что есть еще порох в пороховницах, поэтому продолжаем стрелять (ну или "негры, солнце еще высоко")
GinGitsune; +1 Ответить
5. GinGitsune 30.01.23 13:16 Сейчас в теме
(3) вот! это именно то, что я бы хотела сделать, + подкорректировать текст в окне о закрытии.
то есть это в принципе возможно, уже хорошо)
осталось понять, как сделать так чтобы это заработало и ничего не сломало)
6. spacecraft 30.01.23 13:26 Сейчас в теме
(5) можно взять за основу вариант из (2)
Перем Закрывать;

Процедура ПередЗавершениемРаботыСистемы(Отказ, ТекстПредупреждения)
	Если НЕ Закрывать Тогда
		Отказ = Истина;
		ТекстПредупреждения = "имеются незавершенные задания. Завершить работу программы?";
		ПодключитьОбработчикОжидания("ДействиеПриЗавершенииПрограммы",0.1,Истина);
		Закрывать = Истина;
	КонецЕсли;
	
КонецПроцедуры

Процедура ДействиеПриЗавершенииПрограммы() Экспорт
	ОткрытьФорму("Обработка.ОбработкаЗакрытияПрограммы.Форма");
КонецПроцедуры

Закрывать = Ложь;
Показать
GinGitsune; +1 Ответить
8. GinGitsune 30.01.23 14:13 Сейчас в теме
(6) Спасибо! Это решение работает именно так, как мне бы хотелось!
7. vadim1011985 101 30.01.23 13:28 Сейчас в теме
Посмотрите модуль приложения функцию ПередЗавершениемРаботыСистемы а также СтандартныеПодсистемыКлиент.ПередЗавершениемРаботыСистемы
GinGitsune; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот