• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/Service/EventHistory.php
  • Класс: Bitrix\Crm\Service\EventHistory
  • Вызов: EventHistory::registerRelation
private function registerRelation(
	int $eventType,
	TrackedObject $parent,
	TrackedObject $child,
	Context $context = null
): Result
{
	$event = $this->createEventTableRecord($eventType, $context);

	$result = $this->saveRecord($event, []);
	if (!$result->isSuccess())
	{
		return $result;
	}

	$relationParent = $this->createEventRelationsTableRecord($event->getId(), $context);
	$relationParent
		->setEntityType($parent->getEntityType())
		->setEntityId($parent->getEntityId())
	;

	$relationChild = $this->createEventRelationsTableRecord($event->getId(), $context);
	$relationChild
		->setEntityType($child->getEntityType())
		->setEntityId($child->getEntityId())
	;

	foreach ([$relationParent, $relationChild] as $record)
	{
		$relationResult = $this->saveRecord($record, []);
		if (!$relationResult->isSuccess())
		{
			$result->addErrors($relationResult->getErrors());
		}
	}

	return $result;
}