• Модуль: catalog
  • Путь к файлу: ~/bitrix/modules/catalog/lib/controller/document/element.php
  • Класс: BitrixCatalogControllerDocumentElement
  • Вызов: Element::addAction
public function addAction(array $fields): ?array
{
	$documentId = (int)($fields['DOC_ID'] ?? 0);
	if (!$documentId)
	{
		$this->setDocumentNotFoundError();

		return null;
	}

	$documentFields = $this->getDocumentFields($documentId);
	if (!$documentFields)
	{
		$this->setDocumentNotFoundError();

		return null;
	}
	elseif (!$this->checkDocumentAccess(ActionDictionary::ACTION_STORE_DOCUMENT_MODIFY, $documentFields))
	{
		return null;
	}
	elseif (!$this->checkStoresAccess(0, $fields))
	{
		return null;
	}

	switch ($this->getDocumentStatusById($documentId))
	{
		case self::DOCUMENT_STATUS_ALLOWED:
			$addResult = CCatalogStoreDocsElement::add($fields);
			if ($addResult)
			{
				return ['DOCUMENT_ELEMENT' => $this->get($addResult)];
			}

			$this->addError(new Error('Error of adding new document element'));
			break;

		case self::DOCUMENT_STATUS_CONDUCT:
			$this->setDocumentConductError();
			break;

		default:
			$this->setDocumentNotFoundError();
			break;
	}

	return null;
}