• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/recycling/contactbinder.php
  • Класс: Bitrix\Crm\Recycling\ContactBinder
  • Вызов: ContactBinder::unbindEntities
public function unbindEntities($associatedEntityTypeID, $associatedEntityID, array $entityIDs)
{
	if(empty($entityIDs))
	{
		return;
	}

	$entity = new \CCrmContact(false);
	if($associatedEntityTypeID === \CCrmOwnerType::Company)
	{
		$bindingMap = Crm\Binding\ContactCompanyTable::getBulkContactBindings($entityIDs);
		foreach($bindingMap as $entityID => $bindings)
		{
			Crm\Binding\EntityBinding::removeEntityBinding(\CCrmOwnerType::Company, $associatedEntityID, $bindings);
			if(!empty($bindings) && !Crm\Binding\EntityBinding::findPrimaryBinding($bindings))
			{
				Crm\Binding\EntityBinding::markFirstAsPrimary($bindings);
			}

			$fields = array('COMPANY_BINDINGS' => $bindings);
			$entity->Update(
				$entityID,
				$fields,
				false,
				false,
				$this->getUnbindUpdateOptions((int)$associatedEntityTypeID, [$associatedEntityID]),
			);
		}
	}
	else
	{
		$entityTypeName = \CCrmOwnerType::ResolveName($associatedEntityTypeID);
		throw new Main\NotSupportedException("Entity '{$entityTypeName}' not supported in current context.");
	}
}