• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/lib/disk/sender.php
  • Класс: BitrixImDiskSender
  • Вызов: Sender::sendExistingFileToChat
static function sendExistingFileToChat(
	File $file,
	int $chatId,
	string $text,
	$params = [],
	int $userId
): Result
{
	$result = new Result();

	$chat = ChatTable::getByPrimary($chatId, [
		'select' => ['TYPE']
	])->fetch();
	if (!$chat)
	{
		return $result->addError(new Error("Getting chat error"));
	}

	$attach = new CIMMessageParamAttach(null, CIMMessageParamAttach::CHAT);
	$attach->AddMessage($text);
	$addResult = CIMMessenger::Add([
		"TO_CHAT_ID" => $chatId,
		"FROM_USER_ID" => $userId,
		"FILES" => [(int)$file->getId()],
		"MESSAGE_TYPE" => $chat['TYPE'],
		"ATTACH" => $attach,
		"PARAMS" => $params
	]);

	if (!$addResult)
	{
		return $result->addError(new Error("Adding message error"));
	}

	return $result;
}