• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/lib/disk/sender.php
  • Класс: BitrixImDiskSender
  • Вызов: Sender::hasFileInLastMessages
static function hasFileInLastMessages(File $file, int $chatId, int $messageInterval = 10): bool
{
	$result = BitrixImModelMessageTable::getList([
		'select' => [
			'ID',
			'MESSAGE_FILE_ID' => 'FILE.PARAM_VALUE',
		],
		'filter' => [
			'=CHAT_ID' => $chatId
		],
		'runtime' => [
			new BitrixMainEntityReferenceField(
				'FILE',
				'BitrixImModelMessageParamTable',
				[
					"=ref.MESSAGE_ID" => "this.ID",
					"ref.PARAM_NAME" => new BitrixMainDBSqlExpression("?s", "FILE_ID")
				],
				["join_type" => "LEFT"]
			),
		],
		'order' => ['ID' => 'DESC'],
		'limit' => $messageInterval,
	]);
	while ($row = $result->fetch())
	{
		if ($row['MESSAGE_FILE_ID'] == $file->getId())
		{
			return false;
		}
	}

	return true;
}