Перехват закрытия окна "по крестику"

Добрый день.
Возникла проблема по перехвату закрытия пользователем окна "крестиком" в бизнес процессе.
Вопрос, как реализовать этот перехват и пустить процесс по другой ветке?

Нравится

6 комментариев

Илья, при закрытии окна "крестиком" бизнес-процесс прерывается. Продолжить выполнение бизнес-процесса возможно из раздела "Журнал процессов".

Возможно, для решения Вашей задачи подойдет элемент "Вопрос пользователю"?

Например, задается вопрос пользователю: "Открыть карточку редактирования контакта?". Если пользователь нажимает "Да" - процесс идет по одной ветке. Если пользователь нажимает "Нет" - по другой.

Роман, как раз нужно избавится от варианта "Журнал процессов", и закрытие "крестиком" должно приравнятся к нажатию кнопки "отмена".

Илья, в таком случае необходимо получать от клиента событие закрытия окна и писать обработчик этого события для бизнес-процесса.

В базовой логике такого функционала не предусмотрено, такие события, как закрытие окна не обрабатываются в бизнес-процессе.

Вот как раз это я и хочу сделать.
Вопрос: в какую сторону смотреть на получение события о закрытии окна?
Общая идея, предотвратить остановку процесса в случае закрытия пользователем окна по крестику. (задача, вопрос пользователю и т.д.)

Можно попробовать создать в конфигуарции схему «исходный код», которая будет ловить клиентское нажатие на крестик.

namespace Terrasoft.Configuration
{
    public static class Alert
    {
                public static string RenderScript() {
                          return @"window.onbeforeunload = closingCode;
function closingCode(){
   alert(\"Нажат крестик!\"");

Код "window.onbeforeunload = closingCode" передбачає закриття вікна взагалі.
Там буде і [x], і [OK], і [Cancel].

Отже такий варіант не підійде, бо доведеться повністю переписувати обробку кнопок.

Показать все комментарии