- Модуль: 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;
}