if ($res) { //Save default value for 'SHOW_IN_LIST' if ($arResult['NEW_FIELD']) { $defaultShowInList = CUserOptions::GetOption('crm', 'uf_show_in_list', 'N'); if ($arField['SHOW_IN_LIST'] === 'N' && $defaultShowInList !== 'N') { CUserOptions::DeleteOption('crm', 'uf_show_in_list'); } elseif ($arField['SHOW_IN_LIST'] === 'Y' && $defaultShowInList !== 'Y') { CUserOptions::SetOption('crm', 'uf_show_in_list', 'Y'); } } //Register/Unregister fild in entity list --> $gridID = CCrmGridOptions::GetDefaultGrigID(CCrmOwnerType::ResolveIDByUFEntityID($arResult['ENTITY_ID'])); if ($arField['SHOW_IN_LIST'] === 'Y') { CCrmGridOptions::AddVisibleColumn($gridID, $arResult['FIELD_ID']); } else { CCrmGridOptions::RemoveVisibleColumn($gridID, $arResult['FIELD_ID']); } //<-- Register/Unregister fild in entity list //Clear components cache $GLOBALS['CACHE_MANAGER']->ClearByTag('crm_fields_list_' . $arResult['ENTITY_ID']); //And go to proper page if (isset($_POST['save'])) { LocalRedirect($arResult['~FIELDS_LIST_URL']); } elseif (isset($_POST['apply'])) { LocalRedirect(str_replace(array('#entity_id#', '#field_id#'), array($arResult['ENTITY_ID'], $arResult['FIELD_ID']), $arParams['~FIELD_EDIT_URL'])); } else { LocalRedirect($arResult['~FIELDS_LIST_URL']); } } else { $ex = $APPLICATION->GetException(); ShowError($ex->GetString());
if (strpos($k, '~') === 0) { continue; } $arField[$k] = $v; } if (empty($arField)) { continue; } if (!$CCrmFields->UpdateField($ID, $arField)) { continue; } if (isset($arField['SHOW_IN_LIST']) && $arField['SHOW_IN_LIST'] !== $arPresetField['SHOW_IN_LIST']) { if ($arField['SHOW_IN_LIST'] === 'Y') { CCrmGridOptions::AddVisibleColumn($gridID, $arPresetField['FIELD_NAME']); } else { CCrmGridOptions::RemoveVisibleColumn($gridID, $arPresetField['FIELD_NAME']); } } } unset($arPostField); //Clear components cache $CACHE_MANAGER->ClearByTag('crm_fields_list_' . $arResult['ENTITY_ID']); } if ($_POST['action_all_rows_' . $arResult['GRID_ID']] == 'Y' && $_POST['action_button_' . $arResult['GRID_ID']] == 'delete') { $arFields = $CCrmFields->GetFields(); foreach ($arFields as $ID => $arField) { $CCrmFields->DeleteField($arField['ID']); } //Clear components cache $CACHE_MANAGER->ClearByTag('crm_fields_list_' . $arResult['ENTITY_ID']); }