• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/comments/viewed/task.php
  • Класс: BitrixTasksCommentsViewedTask
  • Вызов: Task::readAll
public function readAll($groupId = null, $userId = null, string $role = null): bool
{
	$currentUserId = (int)CurrentUser::get()->getId();

	$groupId = (int)$groupId;

	$groupCondition = '';
	if ($groupId)
	{
		$groupCondition = "AND TS.GROUP_ID = {$groupId}";
	}

	$userJoin = "INNER JOIN b_tasks_member TM ON TM.TASK_ID = T.ID AND TM.USER_ID = {$currentUserId}";

	$memberRole = null;
	if (
		$role
		&& array_key_exists($role, Role::ROLE_MAP)
	)
	{
		$memberRole = Role::ROLE_MAP[$role];
	}

	if ($memberRole)
	{
		$userJoin .= " AND TM.TYPE = '". $memberRole ."'";
	}

	$this->markAsRead($currentUserId, $userJoin, $groupCondition);


	CounterService::addEvent(
		EventDictionary::EVENT_AFTER_COMMENTS_READ_ALL,
		[
			'USER_ID' => $currentUserId,
			'GROUP_ID' => $groupId,
			'ROLE' => $memberRole
		]
	);

	PushService::addEvent($currentUserId, [
		'module_id' => 'tasks',
		'command' => PushCommand::COMMENTS_VIEWED,
		'params' => [
			'USER_ID' => $currentUserId,
			'GROUP_ID' => $groupId,
			'ROLE' => $role,
		]
	]);

	return true;
}