- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_field_multi.php
- Класс: \CCrmFieldMulti
- Вызов: CCrmFieldMulti::Add
public function Add($arFields, array $options = null)
{
$err_mess = (self::err_mess()).'
Function: Add
Line: ';
if(isset($arFields['VALUE']))
{
$arFields['VALUE'] = trim($arFields['VALUE']);
}
if (!$this->CheckFields($arFields))
return false;
$arFields_i = Array(
'ENTITY_ID' => $arFields['ENTITY_ID'],
'ELEMENT_ID'=> intval($arFields['ELEMENT_ID']),
'TYPE_ID' => $arFields['TYPE_ID'],
'VALUE_TYPE'=> $arFields['VALUE_TYPE'],
'COMPLEX_ID'=> $arFields['TYPE_ID'].'_'.$arFields['VALUE_TYPE'],
'VALUE' => $arFields['VALUE'],
);
$ID = $this->cdb->Add('b_crm_field_multi', $arFields_i);
if(is_array($options) && (!isset($options['ENABLE_NOTIFICATION']) || $options['ENABLE_NOTIFICATION']))
{
$entityTypeId = CCrmOwnerType::ResolveID($arFields_i['ENTITY_ID']);
//region Register volatile duplicate criterion fields
DuplicateCommunicationCriterion::processMultifieldsChange($entityTypeId, $arFields_i['ELEMENT_ID']);
DuplicateVolatileCriterion::register(
$entityTypeId,
$arFields_i['ELEMENT_ID'],
[FieldCategory::MULTI]
);
//endregion Register volatile duplicate criterion fields
}
$valueCountryCode = static::fetchCountryCode($arFields_i['TYPE_ID'], $arFields);
if ($arFields_i['TYPE_ID'] === static::PHONE && !empty($valueCountryCode))
{
FieldMultiPhoneCountryTable::add([
'FM_ID' => $ID,
'COUNTRY_CODE' => $valueCountryCode,
]);
}
return $ID;
}