• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/Service/EventHistory/TrackedObject/Item.php
  • Класс: Bitrix\Crm\Service\EventHistory\TrackedObject\Item
  • Вызов: Item::prepareUpdateEventDataForField
protected function prepareUpdateEventDataForField(string $fieldName): array
{
	if ($fieldName === \Bitrix\Crm\Item::FIELD_NAME_FM && !$this->isDependantField($fieldName))
	{
		/** @var \Bitrix\Crm\Multifield\Collection $actual */
		$actual = $this->getActualValue($fieldName);
		/** @var \Bitrix\Crm\Multifield\Collection $current */
		$current = $this->getCurrentValue($fieldName);

		$comparer = new MultifieldComparer();

		$changes = \CCrmFieldMulti::CompareFields(
			$actual->toArray(),
			$comparer->getChangedCompatibleArray($actual, $current),
		);

		$result = [];
		foreach ($changes as $change)
		{
			$data = new EventHistoryData($change);
			$data->setEntityType($this->getEntityType());
			$data->setEntityId($this->getEntityId());

			$result[] = $data;
		}

		return $result;
	}

	return parent::prepareUpdateEventDataForField($fieldName);
}