• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_field_multi.php
  • Класс: \CCrmFieldMulti
  • Вызов: CCrmFieldMulti::Update
public function Update($ID, $arFields, array $options = null)
{
	$err_mess = (self::err_mess()).'
Function: Update
Line: '; $ID = (int)$ID; if($ID <= 0) { return false; } if(isset($arFields['VALUE'])) { $arFields['VALUE'] = trim($arFields['VALUE']); } if (!$this->CheckFields($arFields)) return false; $arFields_u = Array( 'TYPE_ID' => $arFields['TYPE_ID'], 'VALUE_TYPE'=> $arFields['VALUE_TYPE'], 'COMPLEX_ID'=> $arFields['TYPE_ID'].'_'.$arFields['VALUE_TYPE'], 'VALUE' => $arFields['VALUE'], ); $strUpdate = $this->cdb->PrepareUpdate('b_crm_field_multi', $arFields_u); if (!$this->cdb->Query("UPDATE b_crm_field_multi SET $strUpdate WHERE ID=$ID", false, $err_mess.__LINE__)) return false; if(is_array($options) && (!isset($options['ENABLE_NOTIFICATION']) || $options['ENABLE_NOTIFICATION'])) { $info = $this->GetOwerInfo($ID); if(is_array($info) && isset($info['ENTITY_ID']) && isset($info['ELEMENT_ID'])) { $entityTypeId = CCrmOwnerType::ResolveID($info['ENTITY_ID']); $entityId = (int)$info['ELEMENT_ID']; //region Register volatile duplicate criterion fields DuplicateCommunicationCriterion::processMultifieldsChange($entityTypeId, $entityId); DuplicateVolatileCriterion::register( $entityTypeId, $entityId, [FieldCategory::MULTI] ); //endregion Register volatile duplicate criterion fields } } if ($arFields_u['TYPE_ID'] === static::PHONE) { $curData = FieldMultiPhoneCountryTable::getDataByMultiFieldId([$ID])[0] ?? []; $valueCountryCode = static::fetchCountryCode($arFields_u['TYPE_ID'], $arFields); if (empty($valueCountryCode)) { if (isset($curData['ID'])) { FieldMultiPhoneCountryTable::delete($curData['ID']); } } else { if (isset($curData['ID'])) { FieldMultiPhoneCountryTable::update($curData['ID'], ['COUNTRY_CODE' => $valueCountryCode]); } else { FieldMultiPhoneCountryTable::add([ 'FM_ID' => $ID, 'COUNTRY_CODE' => $valueCountryCode, ]); } } } return $ID; }