• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/internals/task/viewed.php
  • Класс: BitrixTasksInternalsTaskViewedTable
  • Вызов: ViewedTable::readAll
static function readAll(int $currentUserId, string $userJoin, string $groupCondition = ''): void
{
	$connection = MainApplication::getConnection();
	$sqlHelper = $connection->getSqlHelper();

	$viewedDate = $sqlHelper->convertToDbDateTime(new DateTime());

	$list = static::getListForReadAll($currentUserId, $userJoin, $groupCondition);

	$inserts = [];
	foreach ($list as $row)
	{
		$inserts[] = '(' . (int)$row['ID'] . ', ' . $currentUserId . ', ' . $viewedDate . ')';
	}

	$chunks = array_chunk($inserts, self::STEP_LIMIT);
	unset($inserts);

	foreach ($chunks as $chunk)
	{
		$sql = "
			INSERT INTO b_tasks_viewed (TASK_ID, USER_ID, VIEWED_DATE)
			VALUES " . implode(',', $chunk) . "
			ON DUPLICATE KEY UPDATE VIEWED_DATE = {$viewedDate}
		";
		$connection->query($sql);
	}
}