CCrmRestProxyBase::add

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. CCrmRestProxyBase
  4. add
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/classes/general/restservice.php
  • Класс: \CCrmRestProxyBase
  • Вызов: CCrmRestProxyBase::add
public function add(&$fields, array $params = null)
{
	$fieldsInfo = $this->getFieldsInfo();

	$isImportMode = (bool)($params['IMPORT'] ?? false);
	if ($isImportMode)
	{
		// allow set system fields in import
		$systemFields = [
			'DATE_CREATE',
			'DATE_MODIFY',
			'CREATED_BY_ID',
			'MODIFY_BY_ID',
		];

		foreach ($systemFields as $systemField)
		{
			if (isset($fieldsInfo[$systemField]) && is_array($fieldsInfo[$systemField]['ATTRIBUTES']))
			{
				$readonlyAttrPos = array_search(\CCrmFieldInfoAttr::ReadOnly, $fieldsInfo[$systemField]['ATTRIBUTES']);
				if ($readonlyAttrPos !== false)
				{
					unset($fieldsInfo[$systemField]['ATTRIBUTES'][$readonlyAttrPos]);
				}
			}
		}
	}
	$fieldsInfo['TRACE'] = [
		'TYPE' => 'string',
		'ATTRIBUTES' => [\CCrmFieldInfoAttr::Immutable]
	];
	$this->internalizeFields($fields, $fieldsInfo, array());

	$errors = array();
	$result = $this->innerAdd($fields, $errors, $params);
	if(!$this->isValidID($result))
	{
		throw new RestException(implode("\n", $errors));
	}

	return $result;
}

Добавить комментарий