Задать вопрос
@obscur

Как кинуть исключение при update задачи?

Доброго времени суток!

Суть - не давать завершать задачу, при не заполненных определенных полях на определенных стадиях. При клике кнопки "Завершить" у задачи - показывать всплывашку с сообщением какое поле не заполнено и не завершать задачу

В относительно старой версии ядра такое работало:

if (!empty($missing)) {
        $message = 'Для завершения задачи заполните в карточке смарт-процесса: '
            . implode(', ', $missing)
            . '.';
        throw new \Bitrix\Tasks\Control\Exception\TaskUpdateException($message);
    }


после обновления упорно не хочет показывать всплывашку с сообщением об ошибке.
настроено на событие OnBeforeTaskUpdate

$eventManager->addEventHandler('tasks', 'OnBeforeTaskUpdate', 'OnTaskCloseSmartProcess', 50);


throw new \Bitrix\Tasks\ActionFailedException - тоже не работает
  • Вопрос задан
  • 71 просмотр
Подписаться 1 Средний 2 комментария
Помогут разобраться в теме Все курсы
  • Onskills
    Битрикс24: работа с платформой
    1 месяц
    Далее
  • Академия Эдюсон
    Коммерческий директор
    4 месяца
    Далее
  • НАДПО
    Руководитель отдела продаж. Повышение квалификации
    3 месяца
    Далее
Решения вопроса 1
@konsealex
Чтобы показать сообщение об ошибке при попытке закрытия задачи при неудовлетворительных условиях пока можно использовать Notification

$userId = CurrentUser::get()->getId();

if (!empty($userId)) {
	Notifier::notify(
		$userId,
		new Notification([
			'id'   => $taskId,
			'text' => 'Задачу нельзя завершить в текущей стадии'
		])
	);
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@obscur Автор вопроса
konsealex - спасибо! Вывожу notification, а потом кидаю exception чтобы задача не закрылась.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы