Документация для разработчиков
Темная тема

Список событий

Событие Вызывается Метод С версии
OnBeforeTaskAdd Перед добавлением задачи. CTasks::Add 10.0.5
OnBeforeTaskDelete Перед удалением задачи. CTasks::Delete 10.0.5
OnBeforeTaskUpdate Перед обновлением задачи. CTasks::Update 10.0.5
OnTaskAdd После добавления задачи. CTasks::Add 10.0.5
OnTaskDelete После удаления задачи. CTasks::Delete 10.0.5
OnTaskUpdate После обновления задачи. CTasks::Update 10.0.5
OnBeforeTaskNotificationSend Перед отправкой уведомлений в IM. CTaskNotifications::SendMessage 12.5.0
OnBeforeTaskElapsedTimeAdd Перед добавлением записи о затраченном времени в лог действий над задачей. CTaskElapsedTime::Add 14.0.16
OnBeforeTaskElapsedTimeUpdate Перед изменением записи о затраченном времени в логе действий над задачей. CTaskElapsedTime::Update 14.0.16
OnBeforeTaskElapsedTimeDelete Перед удалением записи о затраченном времени из лога действий над задачей. CTaskElapsedTime::Delete 14.0.16
OnTaskElapsedTimeAdd После добавления в лог действий над задачей записи о затраченном времени. CTaskElapsedTime::Add 12.5.0
OnTaskElapsedTimeUpdate После изменения в логе действий над задачей записи о затраченном времени. CTaskElapsedTime::Update 12.5.0
OnTaskElapsedTimeDelete После удаления из лога действий над задачей записи о затраченном времени. CTaskElapsedTime::Delete 12.5.0
OnBaseAllowedActionsMapInit При инициализации карты дозволенных действий над задачей. CTaskItem::getBaseAllowedActions 12.5.3
OnTaskReminderAdd При добавлении напоминания к задаче. CTaskReminders::Add 14.5.10


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

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
0
Юрий Гранд
Сообщение не промодерировано, возможны ошибки и неточности.
ВНИМАНИЕ!

При событии OnBeforeTaskUpdate есть баг.
Если в метод CTask::Update() (и CTaskItem::update() соответственно), будут переданы только основные поля задачи, без пользовательских, то добавлять в обработчике события OnBeforeTaskUpdate значения пользовательских полей становится бессмысленно, так как они будут проигнорированы.

Такое можно словить при обработке смены статуса задачи. В этом случае советую использовать метод:
Код
$USER_FIELD_MANAGER->Update("TASKS_TASK", $taskId, $ufFields, $userId);
К сожалению это костыль, так как если у вас будет очередь обработчиков, и один из последующих отменит сохранение задачи, то значение уже изменённых пользовательских полей не поменяется поэтому советую этот метод выполнять в последнем обработчике события, такой можно сделать указав в методе добавления обработчика параметр sort чем больше тем лучше, например 99999
Код
AddEventHandler(
 string from_module_id,
 string MESSAGE_ID,
 mixed callback,
 int sort = 100,
 mixed full_path = false
);

//d7
\Bitrix\Main\EventManager::addEventHandler(
 string from_module_id,
 string MESSAGE_ID,
 mixed callback,
 includeFile = false,
 int sort = 100
);
7
Никита Кургалин
Если нужно добавить исключение, нужно использовать "ActionFailedException":
Код
throw new \Bitrix\Tasks\ActionFailedException("Для завершения задачи нужно оставить комментарий");
© «Битрикс», 2001-2023, «1С-Битрикс», 2023
Наверх