- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/integrity/volatile/eventhandler.php
- Класс: Bitrix\Crm\Integrity\Volatile\EventHandler
- Вызов: EventHandler::onUserFieldDelete
static function onUserFieldDelete(array $fields, int $id)
{
$ufEntityTypeMap = [
CCrmLead::GetUserFieldEntityID() => [CCrmOwnerType::Lead],
CCrmCompany::GetUserFieldEntityID() => [CCrmOwnerType::Company],
CCrmContact::GetUserFieldEntityID() => [CCrmOwnerType::Contact],
EntityRequisite::getSingleInstance()->getUfId() => [CCrmOwnerType::Company, CCrmOwnerType::Contact],
];
if (
is_string($fields['FIELD_NAME'])
&& $fields['FIELD_NAME'] !== ''
&& is_string($fields['ENTITY_ID'])
&& isset($ufEntityTypeMap[$fields['ENTITY_ID']])
)
{
$filterEntityTypeIds = $ufEntityTypeMap[$fields['ENTITY_ID']];
$fieldName = $fields['FIELD_NAME'];
$volatileTypeIds = [];
$entityTypeIds = [];
$res = DuplicateIndexTypeSettingsTable::getList(
[
'select' => ['ID', 'ENTITY_TYPE_ID'],
'filter' => [
'@ENTITY_TYPE_ID' => $filterEntityTypeIds,
'=FIELD_NAME' => $fieldName,
]
]
);
while ($row = $res->fetch())
{
$volatileTypeIds[] = (int)$row['ID'];
$entityTypeIds[] = (int)$row['ENTITY_TYPE_ID'];
}
$eventHandler = new static(
static::EVENT_USER_FIELD_DELETE,
$volatileTypeIds,
$entityTypeIds
);
$eventHandler->makeCleaningActions();
}
}