- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_field_multi.php
- Класс: \CCrmFieldMulti
- Вызов: CCrmFieldMulti::DeleteByElement
public function DeleteByElement($entityId, $elementId)
{
$err_mess = (self::err_mess()).'
Function: DeleteByElement
Line: ';
$elementId = intval($elementId);
if ($entityId == '' || $elementId == 0)
{
return false;
}
$idsToRemove = [];
$dbResult = $this->cdb->Query(
"SELECT ID FROM b_crm_field_multi WHERE ENTITY_ID='" . $this->cdb->ForSql($entityId) . "' AND ELEMENT_ID=" . $elementId,
false,
$err_mess . __LINE__
);
while ($row = $dbResult->Fetch())
{
$idsToRemove[] = (int)$row['ID'];
}
$res = $this->cdb->Query(
"DELETE FROM b_crm_field_multi "
. "WHERE ENTITY_ID = '" . $this->cdb->ForSql($entityId) . "' AND ELEMENT_ID = '" . $elementId . "'",
false,
$err_mess . __LINE__
);
$entityTypeId = CCrmOwnerType::ResolveID($entityId);
//region Register volatile duplicate criterion fields
DuplicateCommunicationCriterion::processMultifieldsChange($entityTypeId, $elementId);
DuplicateVolatileCriterion::register($entityTypeId, $elementId, [FieldCategory::MULTI]);
//endregion Register volatile duplicate criterion fields
if (!empty($idsToRemove))
{
foreach ($idsToRemove as $id)
{
FieldMultiPhoneCountryTable::deleteByByMultiFieldId($id);
}
}
return $res;
}