• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/binding/entitybinding.php
  • Класс: Bitrix\Crm\Binding\EntityBinding
  • Вызов: EntityBinding::prepareBoundAndUnboundEntities
static function prepareBoundAndUnboundEntities(
	int $entityTypeId,
	array $previousBindings,
	array $currentBindings
): array
{
	static::validateEntityTypeId($entityTypeId);

	$previousIds = static::prepareEntityIDs($entityTypeId, $previousBindings);
	$currentIds = static::prepareEntityIDs($entityTypeId, $currentBindings);

	$addedIds = array_diff($currentIds, $previousIds);
	$removedIds = array_diff($previousIds, $currentIds);

	$bindingsOfAddedEntities = [];
	foreach ($addedIds as $addedId)
	{
		$indexOfAddedBinding = static::findBindingIndexByEntityID($entityTypeId, $addedId, $currentBindings);
		if ($indexOfAddedBinding >= 0)
		{
			$bindingsOfAddedEntities[] = $currentBindings[$indexOfAddedBinding];
		}
	}

	$bindingsOfRemovedEntities = [];
	foreach ($removedIds as $removedId)
	{
		$indexOfRemovedBinding = static::findBindingIndexByEntityID($entityTypeId, $removedId, $previousBindings);
		if ($indexOfRemovedBinding >= 0)
		{
			$bindingsOfRemovedEntities[] = $previousBindings[$indexOfRemovedBinding];
		}
	}

	return [$bindingsOfAddedEntities, $bindingsOfRemovedEntities];
}