• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/automation/starter.php
  • Класс: Bitrix\Crm\Automation\Starter
  • Вызов: Starter::runOnUpdate
public function runOnUpdate(array $fields, array $prevFields): Result
{
	$triggerApplied = false;
	$changedFields = $this->compareFields($fields, $prevFields);

	if ($changedFields)
	{
		Factory::onFieldsChanged($this->entityTypeId, $this->entityId, $changedFields);
	}

	if ($this->isResponsibleChanged($changedFields))
	{
		$result = ResponsibleChangedTrigger::execute([[
				'OWNER_TYPE_ID' => $this->entityTypeId,
				'OWNER_ID' => $this->entityId
			]],
			$fields
		);
		$data = $result->getData();
		$triggerApplied = $data['triggersApplied'];
	}

	if (!$triggerApplied && $changedFields)
	{
		$result = FieldChangedTrigger::execute(
			[['OWNER_TYPE_ID' => $this->entityTypeId, 'OWNER_ID' => $this->entityId]],
			['CHANGED_FIELDS' => $changedFields]
		);
		$data = $result->getData();
		$triggerApplied = $data['triggersApplied'];
	}

	if (!$triggerApplied && $this->isStatusChanged($changedFields))
	{
		return Factory::runOnStatusChanged($this->entityTypeId, $this->entityId);
	}

	return new Result();
}