• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/classes/general/task.php
  • Класс: CTasks
  • Вызов: CTasks::__updateViewed
static function __updateViewed($TASK_ID, $USER_ID, $onTaskAdd = false)
{
	$USER_ID = (int)$USER_ID;
	$TASK_ID = (int)$TASK_ID;

	$list = BitrixTasksInternalsTaskViewedTable::getList([
		"select" => ["TASK_ID", "USER_ID"],
		"filter" => [
			"=TASK_ID" => $TASK_ID,
			"=USER_ID" => $USER_ID,
		],
	]);
	if ($item = $list->fetch())
	{
		BitrixTasksInternalsTaskViewedTable::update($item, [
			"VIEWED_DATE" => new BitrixMainTypeDateTime(),
		]);
	}
	else
	{
		BitrixTasksInternalsTaskViewedTable::add([
			"TASK_ID" => $TASK_ID,
			"USER_ID" => $USER_ID,
			"VIEWED_DATE" => new BitrixMainTypeDateTime(),
		]);
	}

	$pullData = [
		'USER_ID' => $USER_ID,
		'TASK_ID' => $TASK_ID,
	];
	self::EmitPullWithTag([$USER_ID], 'TASKS_TASK_' . $TASK_ID, 'task_view', $pullData);

	$event = new BitrixMainEvent(
		'tasks',
		'onTaskUpdateViewed',
		[
			'taskId' => $TASK_ID,
			'userId' => $USER_ID,
		]
	);
	$event->send();
}