• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/item/task.php
  • Класс: BitrixTasksItemTask
  • Вызов: Task::sendPullEvents
private function sendPullEvents($data, $result)
{
	$id = $this->getId();
	$recipients = array_merge(array($data["CREATED_BY"], $data["RESPONSIBLE_ID"]), $data["ACCOMPLICES"], $data["AUDITORS"]);

	try
	{
		$groupId = intval($data['GROUP_ID']);

		$lastResult = ResultManager::getLastResult((int) $id);
		$arPullData = array(
			'TASK_ID' => $id,
			'AFTER' => array(
				'GROUP_ID' => $groupId
			),
			'params' => [
				'addCommentExists' => false
			],
			'TS' => time(),
			'event_GUID' => isset($data['META::EVENT_GUID']) ? $data['META::EVENT_GUID'] : sha1(uniqid('AUTOGUID', true)),
			'taskRequireResult' => BitrixTasksInternalsTaskResultResultManager::requireResult((int)$id) ? "Y" : "N",
			'taskHasResult' => $lastResult ? "Y" : "N",
			'taskHasOpenResult' => ($lastResult && (int) $lastResult['STATUS'] === ResultTable::STATUS_OPENED) ? "Y" : "N",
		);

		PullPushService::addEvent($recipients, [
			'module_id'  => 'tasks',
			'command'    => PullPushCommand::TASK_ADDED,
			'params'     => $arPullData
		]);
	}
	catch (Exception $e)
	{
		Util::log($e);
		$result->getErrors()->addWarning('POST_ACTION_FAILURE.PULL', Loc::getMessage('TASKS_ITEM_TASK_PULL_NOT_SENT'), array('EXCEPTION' => $e));
	}
}