...Человеческий поиск в разработке...
- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/integrity/duplicatemanager.php
- Класс: Bitrix\Crm\Integrity\DuplicateManager
- Вызов: DuplicateManager::getSupportedDedupeTypes
static function getSupportedDedupeTypes($entityTypeID) { $entityTypeID = (int)$entityTypeID; if($entityTypeID !== CCrmOwnerType::Lead && $entityTypeID !== CCrmOwnerType::Contact && $entityTypeID !== CCrmOwnerType::Company) { return array(); } $result = array(); if($entityTypeID === CCrmOwnerType::Lead || $entityTypeID === CCrmOwnerType::Contact) { $result = array_merge($result, DuplicatePersonCriterion::getSupportedDedupeTypes()); } if($entityTypeID === CCrmOwnerType::Lead || $entityTypeID === CCrmOwnerType::Company) { $result = array_merge($result, DuplicateOrganizationCriterion::getSupportedDedupeTypes()); } $result = array_merge($result, DuplicateCommunicationCriterion::getSupportedDedupeTypes()); if ($entityTypeID === CCrmOwnerType::Contact || $entityTypeID === CCrmOwnerType::Company) { $result = array_merge( $result, DuplicateRequisiteCriterion::getSupportedDedupeTypes(), DuplicateBankDetailCriterion::getSupportedDedupeTypes() ); } // Volatile types $volatileTypesByEntityId = []; $idsByEntityTypes = Volatile\TypeInfo::getInstance()->getIdsByEntityTypes([$entityTypeID]); if (is_array($idsByEntityTypes[$entityTypeID])) { foreach ($idsByEntityTypes[$entityTypeID] as $volatileTypeId) { $data = Volatile\Type\State::getInstance()->get($volatileTypeId)->getData(); if ( in_array( $data['stateId'], [ Volatile\Type\State::STATE_ASSIGNED, Volatile\Type\State::STATE_INDEX, Volatile\Type\State::STATE_READY, ], true ) ) { $volatileTypesByEntityId[] = $volatileTypeId; } } } return array_merge($result, $volatileTypesByEntityId); }