• Модуль: documentgenerator
  • Путь к файлу: ~/bitrix/modules/documentgenerator/lib/controller/document.php
  • Класс: BitrixDocumentGeneratorControllerDocument
  • Вызов: Document::uploadAction
public function uploadAction(array $fields, CRestServer $restServer)
{
	$emptyFields = $this->checkArrayRequiredParams($fields, ['moduleId', 'providerClassName', 'fileId', 'region', 'value', 'title', 'number']);
	if(!empty($emptyFields))
	{
		$this->errorCollection[] = new Error('Empty required fields: '.implode(', ', $emptyFields));
		return null;
	}

	if(!Loader::includeModule($fields['moduleId']))
	{
		$this->errorCollection[] = new Error('Module '.$fields['moduleId'].' is not installed');
		return null;
	}

	if(!DataProviderManager::checkProviderName($fields['providerClassName']))
	{
		$this->errorCollection[] = new Error('Wrong provider '.$fields['providerClassName']);
		return null;
	}

	$restTemplate = $this->getRestTemplate($restServer, $fields['moduleId'], $fields['region']);
	if(!$restTemplate)
	{
		$this->errorCollection[] = new Error('Error getting template');
		return null;
	}
	$restTemplate->setSourceType($fields['providerClassName']);

	$result = BitrixDocumentGeneratorDocument::upload($restTemplate, $fields['value'], $fields['title'], $fields['number'], $fields['fileId'], $fields['pdfId'], $fields['imageId']);
	if($result->isSuccess())
	{
		return ['document' => $result->getData()];
	}
	else
	{
		$this->errorCollection->add($result->getErrors());
		return null;
	}
}