Обработка события изменения состояния карточки

При изменении состояния карточки из пользовательского интерфейса Web-клиента вызывается событие Перед изменением состояния карточки разметки карточки (корневой элемент разметки), которое может быть обработано в клиентском скрипте.

Ссылка на пример на GitHub: ChangeStateByScript.

Данное событие является прерываемым — может быть использовано для отмены изменения состояния карточки.

Ниже приведён код обработчика события изменения состояния карточки (Документ, Задание):

async function changeState(sender: Layout, e: CancelableEventArgs<ICardStateChangingEventArgs>) {
    e.wait();

    if (await myCheckPossibility()){ (1)
        e.accept(); (2)
    } else {
        sender.getService($MessageWindow).showWarning("Операция " + e.data.operationId  + " запрещена"); (3)
        e.cancel(); (4)
    }
}
1 Функция myCheckPossibility — пользовательский код, содержащий собственную логику.
2 Подтверждаем выполнение операции. Обязательно, если вызвали e.wait.
3 Показываем сообщение о запрете операции с указанием идентификатора операции.
4 Для отмены операции, при необходимости, вызываем e.cancel.

Для карточки Задание после изменения состояния карточки будет вызвано событие После изменения состояния карточки элемента управления Кнопки операций задания.