• Модуль: documentgenerator
  • Путь к файлу: ~/bitrix/modules/documentgenerator/lib/document.php
  • Класс: BitrixDocumentGeneratorDocument
  • Вызов: Document::upload
static function upload(
	Template $template,
	$value,
	string $title,
	string $number,
	int $fileId,
	int $pdfId = null,
	int $imageId = null
): Result
{
	$result = new Result();

	$fileData = FileTable::getById($fileId);
	if(!$fileData)
	{
		return $result->addError(new Error('Wrong fileId - data not found'));
	}
	if($pdfId)
	{
		$fileData = FileTable::getById($pdfId);
		if(!$fileData)
		{
			return $result->addError(new Error('Wrong pdfId - data not found'));
		}
	}
	if($imageId)
	{
		$fileData = FileTable::getById($imageId);
		if(!$fileData)
		{
			return $result->addError(new Error('Wrong imageId - data not found'));
		}
	}

	$data = [
		'ACTIVE' => 'Y',
		'TEMPLATE_ID' => $template->ID,
		'VALUE' => $value,
		'FILE_ID' => $fileId,
		'PROVIDER' => $template->getSourceType(),
		'IMAGE_ID' => $imageId,
		'PDF_ID' => $pdfId,
		'UPDATE_TIME' => new DateTime(),
		'TITLE' => $title,
		'NUMBER' => $number,
		'CREATED_BY' => Driver::getInstance()->getUserId(),
		'VALUES' => [
			CreationMethod::CREATION_METHOD_PLACEHOLDER => CreationMethod::METHOD_REST,
		],
	];
	$result = DocumentTable::add($data);
	if($result->isSuccess())
	{
		$document = static::loadById($result->getId());
		EventManager::getInstance()->send(new Event(Driver::MODULE_ID, 'onCreateDocument', ['document' => $document]));

		$result = $document->getFile(true, true);
	}

	return $result;
}