• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/Service/Factory/Contact.php
  • Класс: Bitrix\Crm\Service\Factory\Contact
  • Вызов: Contact::getUpdateOperation
public function getUpdateOperation(Item $item, Context $context = null): Operation\Update
{
	$operation = parent::getUpdateOperation($item, $context);

	$operation
		->addAction(
			Operation::ACTION_BEFORE_SAVE,
			new Operation\Action\Compatible\SendEvent\WithCancel\Update(
				'OnBeforeCrmContactUpdate',
				'CRM_CONTACT_UPDATE_CANCELED',
			),
		)
		->addAction(
			Operation::ACTION_AFTER_SAVE,
			new Operation\Action\ClearCache(
				null,
				'crm_entity_name_' . $this->getEntityTypeId() . '_',
				[Item::FIELD_NAME_NAME, Item::FIELD_NAME_LAST_NAME, Item::FIELD_NAME_SECOND_NAME]
			)
		)
		->addAction(
			Operation::ACTION_AFTER_SAVE,
			new Operation\Action\ResetEntityCommunicationSettingsInActivities(),
		)
	;

	if ($operation->getItem()->getCategoryId() === 0)
	{
		$operation
			->addAction(
				Operation::ACTION_AFTER_SAVE,
				new Operation\Action\Compatible\SocialNetwork\ProcessUpdate(),
			)
		;
	}

	$operation
		->addAction(
			Operation::ACTION_AFTER_SAVE,
			new Operation\Action\Compatible\SendEvent('OnAfterCrmContactUpdate'),
		)
	;

	return $operation;
}