• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/lib/V2/MessageCollection.php
  • Класс: BitrixImV2MessageCollection
  • Вызов: MessageCollection::fillFiles
public function fillFiles(): self
{
	if (!$this->isFileFilled)
	{
		$fileIdsByMessages = $this->getFileIds();

		$fileIds = [];
		foreach ($fileIdsByMessages as $fileIdsByMessage)
		{
			foreach ($fileIdsByMessage as $fileId)
			{
				$fileIds[] = $fileId;
			}
		}

		$files = FileCollection::initByDiskFilesIds($fileIds);

		foreach ($this as $message)
		{
			$messagesFiles = new FileCollection();
			foreach ($fileIdsByMessages[$message->getId()] ?? [] as $fileId)
			{
				$file = $files->getById($fileId);
				if ($file !== null)
				{
					$messagesFiles[] = $file->setChatId($message->getChatId());
				}
			}
			$message->setFiles($messagesFiles);
		}

		$this->isFileFilled = true;
	}

	return $this;
}