• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/lib/V2/Message/CounterService.php
  • Класс: BitrixImV2MessageCounterService
  • Вызов: CounterService::addStartingFrom
public function addStartingFrom(int $messageId, Relation $relation): void
{
	$query = MessageTable::query()
		->setSelect([
			'ID_CONST' => new ExpressionField('ID_CONST', '0'),
			'USER_ID_CONST' => new ExpressionField('USER_ID_CONST', (string)$this->getContext()->getUserId()),
			'CHAT_ID_CONST' => new ExpressionField('CHAT_ID', (string)$relation->getChatId()),
			'MESSAGE_ID' => 'ID',
			'IS_MUTED' => new ExpressionField('IS_MUTED', $relation->getNotifyBlock() ? "'Y'" : "'N'"),
			'CHAT_TYPE' => new ExpressionField('CHAT_TYPE', "'{$relation->getMessageType()}'"),
			'DATE_CREATE'
		])
		->where('CHAT_ID', $relation->getChatId())
		->where('MESSAGE_ID', '>=', $messageId)
	;
	if ($relation->getMessageType() !== IM_MESSAGE_SYSTEM)
	{
		$query->whereNot('AUTHOR_ID', $this->getContext()->getUserId());
	}
	MessageUnreadTable::insertSelect($query);
	static::clearCache($this->getContext()->getUserId());
}