• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/timeline/factorybasedcontroller.php
  • Класс: Bitrix\Crm\Timeline\FactoryBasedController
  • Вызов: FactoryBasedController::onModify
public function onModify($entityID, array $params): void
{
	$entityID = $this->prepareEntityIdFromArgs($entityID);

	$previousFields = (array)($params['PREVIOUS_FIELDS'] ?? []);
	$currentFields = (array)($params['CURRENT_FIELDS'] ?? []);

	if (empty($previousFields) || empty($currentFields))
	{
		return;
	}

	foreach ($currentFields as $fieldName => $currentValue)
	{
		if (!$this->isFieldIncludedInTimeline($fieldName))
		{
			continue;
		}

		if (!$this->isFieldChangeShouldBeRegistered($fieldName, $previousFields, $currentFields))
		{
			continue;
		}

		$entryParams = $this->prepareModificationEntryParams(
			$entityID,
			$previousFields,
			$currentFields,
			$fieldName
		);

		$timelineEntryId = $this->getTimelineEntryFacade()->create(
			TimelineEntry\Facade::MODIFICATION,
			$entryParams
		);

		if ($timelineEntryId <= 0)
		{
			continue;
		}
		$this->sendPullEventOnAdd(new ItemIdentifier($this->getEntityTypeID(),$entityID), $timelineEntryId);
	}
}