Ваш браузер устарел, не поддерживает современные веб-стандарты и представляет угрозу Вашей безопасности. Для комфортной работы с порталом, пожалуйста, установите современыый браузер.
Портал технической поддержки

Как определить в скрипте карточки задания Web клиента какая нажата кнопка (Завершить, В работу, Делегировать и др.)

С ответом

Комментарии

Комментариев: 6

  • Avatar
    Денис Елхов

    Александр, добрый день.

    Если речь идет про перехват события до смены состояния карточки, то в событие state changing разметки передается

    operationId: decisionId,
    additionalInfo: { comment, decisionSemantics }

    Если речь про перехват события после смены состояния, то в событие state changed ЭУ передается тоже самое.

    С уважением, Денис Елхов.

    0
    Действия с комментариями Постоянная ссылка
  • Avatar
    Денис Елхов

    Александр, После изменения состояния карточки - это событие уже ЭУ 'Кнопки операций задания (TaskCardOperationButtons)'

    0
    Действия с комментариями Постоянная ссылка
  • Avatar
    Александр Егоров (Изменен )

    Спасибо!

    А не подскажете как написать функцию обработчик для события 'Перед изменением состояния карточки' чтобы можно было отменить изменение состояние.

    Пробовал так:

    function beforechangecardstate(sender: Layout, e: ICancelableEventArgs<IChangeStateData>)

    В консоли браузера идет ошибка, связанная с двоеточием в параметрах функции. Двоеточия убираю, функция работает
    0
    Действия с комментариями Постоянная ссылка
  • Avatar
    Александр Егоров (Изменен )

    То есть делаю так:

    function onCardSaving(sender, e) 
    и функция обрабатывается
    0
    Действия с комментариями Постоянная ссылка
  • Avatar
    Денис Елхов (Изменен )

    Александр, 

    первая строчка похожа на TypeScript, а вторая на JavaScript.

    Мы рекомендуем писать скрипты на TypeScript.
    Также я рекомендую обратить внимание на наш репозиторий с примерами кода разработки на github.
    Там есть пример, который хорошо подходит под ваш вопрос:
    На TypeScript - https://github.com/DocsVision/WebClient-Samples/tree/master/ClientScripts/TypeScript/ValidateOnStateChanging
    На JavaScript - https://github.com/DocsVision/WebClient-Samples/tree/master/ClientScripts/JS/ValidateOnStateChanging

    Т.е. отвечая на ваш вопрос на языке javascript:

    var extensionManager = require("@docsvision/webclient/System/ExtensionManager").extensionManager;
    
    function validateOnStateChanging(sender, args) {
        args.cancel();
    }
    
    // Регистрируем расширение и все его обработчики
    extensionManager.registerExtension({
        name: "ValidateOnStateChangingJS",
        version: "5.5.14",
        globalEventHandlers: [{ validateOnStateChanging: validateOnStateChanging }]
    });
    0
    Действия с комментариями Постоянная ссылка
  • Все понятно. Спасибо. Попробую

    А с чем связана рекомендация писать на TypeScript?

    0
    Действия с комментариями Постоянная ссылка

Войдите в службу, чтобы оставить комментарий.