...Человеческий поиск в разработке...
- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/Relation/Registrar.php
- Класс: Bitrix\Crm\Relation\Registrar
- Вызов: Registrar::registerByBindingsChange
public function registerByBindingsChange( ItemIdentifier $child, int $parentEntityTypeId, array $previousBindings, array $currentBindings, array $itemsToIgnore = [], Context $context = null ): Result { $result = new Result(); [$bound, $unbound] = EntityBinding::prepareBoundAndUnboundEntities( $parentEntityTypeId, $previousBindings, $currentBindings ); foreach (EntityBinding::prepareEntityIDs($parentEntityTypeId, $unbound) as $removedParentId) { $oldParent = new ItemIdentifier($parentEntityTypeId, $removedParentId); // intentional not strict comparison. it doesn't matter here if objects are the same instance if (!in_array($oldParent, $itemsToIgnore, false)) { $unbindResult = $this->registerUnbind($oldParent, $child, $context); if (!$unbindResult->isSuccess()) { $result->addErrors($unbindResult->getErrors()); } } } foreach (EntityBinding::prepareEntityIDs($parentEntityTypeId, $bound) as $addedParentId) { $newParent = new ItemIdentifier($parentEntityTypeId, $addedParentId); // intentional not strict comparison. it doesn't matter here if objects are the same instance if (!in_array($newParent, $itemsToIgnore, false)) { $bindResult = $this->registerBind($newParent, $child, $context); if (!$bindResult->isSuccess()) { $result->addErrors($bindResult->getErrors()); } } } return $result; }