• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/Service/Operation.php
  • Класс: Bitrix\Crm\Service\Operation
  • Вызов: Operation::save
protected function save(): Result;

public function processFieldsAfterSave(): Result
{
	$result = new Result();

	if (!$this->fieldsCollection)
	{
		return $result;
	}

	$isChanged = false;
	foreach ($this->fieldsCollection as $field)
	{
		if ($this->item->isFieldDisabled($field->getName()))
		{
			continue;
		}

		$fieldResult = $field->processAfterSave($this->itemBeforeSave, $this->item, $this->getContext());
		if (!$fieldResult->isSuccess())
		{
			$result->addErrors($fieldResult->getErrors());
		}
		elseif ($fieldResult->hasNewValues())
		{
			foreach($fieldResult->getNewValues() as $fieldName => $value)
			{
				$this->item->set($fieldName, $value);
			}
			$isChanged = true;
		}
	}

	if ($isChanged)
	{
		$saveAfterSaveResult = $this->save();
		if (!$saveAfterSaveResult->isSuccess())
		{
			$result->addErrors($saveAfterSaveResult->getErrors());
		}
	}

	return $result;
}