• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/requisite/entitylink.php
  • Класс: Bitrix\Crm\Requisite\EntityLink
  • Вызов: EntityLink::copyRequisiteLink
static function copyRequisiteLink(Item $source, Item $destination): void
{
	$companyId = null;
	if ($source->hasField(Item::FIELD_NAME_COMPANY_ID))
	{
		$companyId = $source->getCompanyId();
	}

	$contactId = null;
	if ($source->hasField(Item::FIELD_NAME_CONTACTS))
	{
		$contactId = $source->getPrimaryContact() ? $source->getPrimaryContact()->getId() : null;
	}

	$requisiteBindings = EntityRequisite::getSingleInstance()->getEntityRequisiteBindings(
		$source->getEntityTypeId(),
		$source->getId(),
		$companyId,
		$contactId,
	);
	$requisiteId = isset($requisiteBindings['REQUISITE_ID']) ? (int)$requisiteBindings['REQUISITE_ID'] : 0;
	$bankDetailId = isset($requisiteBindings['BANK_DETAIL_ID']) ? (int)$requisiteBindings['BANK_DETAIL_ID'] : 0;

	[$mcRequisiteId, $mcBankDetailId] = self::getMcRequisiteLink($source);

	if ($requisiteId > 0 || $mcRequisiteId > 0)
	{
		self::register(
			$destination->getEntityTypeId(),
			$destination->getId(),
			$requisiteId,
			$bankDetailId,
			$mcRequisiteId,
			$mcBankDetailId,
		);
	}
}