- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/controller/item.php
- Класс: Bitrix\Crm\Controller\Item
- Вызов: Item::updateAction
public function updateAction(int $entityTypeId, int $id, array $fields): ?array
{
$factory = $this->getFactory($entityTypeId);
if (!$factory)
{
return null;
}
$item = $factory->getItem($id);
if (!$item)
{
$this->addError(new Error(
Loc::getMessage('CRM_TYPE_ITEM_NOT_FOUND'),
ErrorCode::NOT_FOUND
));
return null;
}
if (!Container::getInstance()->getUserPermissions()->canUpdateItem($item))
{
$this->addError(\Bitrix\Crm\Controller\ErrorCode::getAccessDeniedError());
return null;
}
$fields = $this->convertKeysToUpper($fields);
$this->processFields($item, $fields, $factory->getFieldsCollection());
$operation = $factory->getUpdateOperation($item);
if (
$this->getScope() === static::SCOPE_REST
&& !RestSettings::getCurrent()->isRequiredUserFieldCheckEnabled()
)
{
$operation->disableCheckRequiredUserFields();
}
$result = $operation->launch();
if ($result->isSuccess())
{
$item = $operation->getItem();
return [
'item' => $this->getJsonForItems($factory, [$operation->getItem()])[$item->getId()],
];
}
$this->addErrors($result->getErrors());
return null;
}