- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_company.php
- Класс: \CAllCrmCompany
- Вызов: CAllCrmCompany::RebuildDuplicateIndex
static function RebuildDuplicateIndex($IDs)
{
if(!is_array($IDs))
{
$IDs = array($IDs);
}
$dbResult = self::GetListEx(
[],
array('@ID' => $IDs, 'CHECK_PERMISSIONS' => 'N'),
false,
false,
array('ID', 'TITLE')
);
if(!is_object($dbResult))
{
return;
}
$entityMultifields = DuplicateCommunicationCriterion::prepareBatchEntityMultifieldValues(
CCrmOwnerType::Company,
$IDs
);
$duplicateCriterionRegistrar = DuplicateManager::getCriterionRegistrarForReindex(\CCrmOwnerType::Company);
while($fields = $dbResult->Fetch())
{
$ID = (int)$fields['ID'];
$fields['FM'] = $entityMultifields[$ID] ?? null;
$data =
(new Crm\Integrity\CriterionRegistrar\Data())
->setEntityTypeId(\CCrmOwnerType::Company)
->setEntityId($ID)
->setCurrentFields($fields)
;
$duplicateCriterionRegistrar->register($data);
DuplicateRequisiteCriterion::registerByEntity(CCrmOwnerType::Company, $ID);
DuplicateBankDetailCriterion::registerByEntity(CCrmOwnerType::Company, $ID);
}
}