• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/document/onlyoffice/templates/createdocumentbycalltemplatescenario.php
  • Класс: BitrixDiskDocumentOnlyOfficeTemplatesCreateDocumentByCallTemplateScenario
  • Вызов: CreateDocumentByCallTemplateScenario::create
public function create(int $templateId): Result
{
	$result = new Result();

	$targetFolder = $this->getDefaultFolderForUser();
	$storage = $targetFolder->getStorage();
	if (!$targetFolder->canAdd($storage->getSecurityContext($this->userId)))
	{
		$result->addError(new Error('Bad rights. Could not add file to the folder.'));

		return $result;
	}

	if (!Loader::includeModule('documentgenerator') || !DocumentGeneratorDriver::getInstance()->isEnabled())
	{
		$result->addError(new Error('documentgenerator is not available'));

		return $result;
	}

	$fileResult = $this->buildFileByTemplate($templateId);
	if (!$fileResult->isSuccess())
	{
		return $fileResult;
	}

	$fileArray = $fileResult->getData()['bfile'];
	$chatTitle = $this->getChatTitle($this->call->getAssociatedEntity());

	$newFile = $targetFolder->uploadFile($fileArray, [
		'NAME' => Loc::getMessage("DISK_DOCUMENT_OO_DOC_BY_CALL_TEMPLATE_FILENAME_1", ['#NAME#' => $chatTitle]) . '.docx',
		'CREATED_BY' => $this->userId,
		'CODE' => self::CODE_RESUME,
	], [], true);

	if (!$newFile)
	{
		$result->addErrors($targetFolder->getErrors());

		return $result;
	}

	$result->setData([
		'file' => $newFile,
	]);

	return $result;
}