- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/activity/provider/tasks/task.php
- Класс: Bitrix\Crm\Activity\Provider\Tasks\Task
- Вызов: Task::onTriggered
static function onTriggered(int $taskId, array &$currentTaskFields, array &$previousTaskFields): bool { if ($taskId <= 0 || !Loader::includeModule('tasks')) { return false; } $itemIterator = \CTasks::getByID($taskId, false); $task = $itemIterator->fetch(); if (!$task) { return false; } $isStatusChanged = (isset($currentTaskFields['STATUS']) && (string)$currentTaskFields['STATUS'] !== (string)$previousTaskFields['STATUS']); $listIterator = \CCrmActivity::getList( [], [ '=TYPE_ID' => \CCrmActivityType::Provider, '=PROVIDER_ID' => self::getId(), // '=PROVIDER_TYPE_ID' => self::getProviderTypeId(), '=ASSOCIATED_ENTITY_ID' => $taskId, 'CHECK_PERMISSIONS' => 'N', ] ); $isFound = false; $taskBindings = []; while ($activity = $listIterator->fetch()) { $isFound = true; self::legacySetBindings($task, $activity); if (isset($activity['BINDINGS']) && count($activity['BINDINGS']) > 0) { \CCrmActivity::update($activity['ID'], $activity, false, true, self::UPDATE_OPTIONS); \CCrmLiveFeed::syncTaskEvent($activity, $task); $taskBindings = $activity['BINDINGS']; } } if (!$isFound) { return true; } if ($isStatusChanged && $taskBindings) { TaskStatusTrigger::execute($taskBindings, ['TASK' => $task]); } return true; }