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

	if (!\CCrmOwnerType::isCorrectEntityTypeId((int)$fields['entityTypeId']))
	{
		$this->errorCollection[] = new Error('Wrong "entityTypeId" field value');
		return null;
	}
	if ($fields['entityId'] <= 0)
	{
		$this->errorCollection[] = new Error('Wrong "entityId" field value');
		return null;
	}

	$providersMap = DocumentGeneratorManager::getInstance()->getCrmOwnerTypeProvidersMap();
	if(!isset($providersMap[$fields['entityTypeId']]))
	{
		$this->errorCollection[] = new Error('No provider for entityTypeId');
		return null;
	}
	$fields['providerClassName'] = $providersMap[$fields['entityTypeId']];
	unset($fields['entityTypeId']);

	$fields['fileId'] = $this->uploadFile($fields['fileContent']);
	if(!$fields['fileId'])
	{
		return null;
	}
	unset($fields['fileContent']);

	$fields['pdfId'] = $this->uploadFile($fields['pdfContent'], [
		'fileParamName' => 'pdf',
		'required' => false,
		'fileName' => $fields['title'].'.pdf',
	]);
	unset($fields['pdfContent']);
	$fields['imageId'] = $this->uploadFile($fields['imageContent'], [
		'fileParamName' => 'image',
		'required' => false,
		'fileName' => $fields['title'].'.jpg',
	]);
	unset($fields['imageContent']);
	$fields['moduleId'] = static::MODULE_ID;
	$fields['value'] = $fields['entityId'];
	unset($fields['entityId']);

	$result = $this->proxyAction('uploadAction', [$fields, $restServer]);

	if(is_array($result))
	{
		$result['document'] = $this->prepareDocumentData($result['document']);
	}

	return $result;
}