$arResult['ELEMENT']['FM'] = array(); while ($ar = $res->Fetch()) { $arResult['ELEMENT']['CONTACT']['FM'][$ar['TYPE_ID']]['n0' . $ar['ID']] = array('VALUE' => $ar['VALUE'], 'VALUE_TYPE' => $ar['VALUE_TYPE']); $arResult['ELEMENT']['COMPANY']['FM'][$ar['TYPE_ID']]['n0' . $ar['ID']] = array('VALUE' => $ar['VALUE'], 'VALUE_TYPE' => $ar['VALUE_TYPE']); } $bVarsFromForm = false; if ($_SERVER['REQUEST_METHOD'] == 'POST' && check_bitrix_sessid()) { if (isset($_POST['save']) || isset($_POST['apply'])) { $bConvertDeal = isset($_POST['CONVERT_DEAL']) && $_POST['CONVERT_DEAL'] == 'Y'; $bConvertCompany = isset($_POST['CONVERT_COMPANY']) && $_POST['CONVERT_COMPANY'] == 'Y'; $bConvertContact = isset($_POST['CONVERT_CONTACT']) && $_POST['CONVERT_CONTACT'] == 'Y'; $arFields = array(); $arEntity = array('CONTACT', 'COMPANY', 'DEAL'); foreach ($arEntity as $sEntity) { if ($sEntity === 'CONTACT') { $entityFields = CAllCrmContact::GetFields(); } elseif ($sEntity === 'COMPANY') { $entityFields = CAllCrmCompany::GetFields(); } elseif ($sEntity === 'DEAL') { $entityFields = CAllCrmDeal::GetFields(); } else { $entityFields = array(); } $entityPrefix = $sEntity . '_'; foreach ($_POST as $k => $v) { if (strpos($k, $entityPrefix) !== 0) { continue; } $fieldKey = substr($k, strlen($entityPrefix)); // Make an exception for CONTACT_ID and COMPANY_ID - special fields. if (isset($entityFields[$fieldKey]) || $sEntity === 'CONTACT' && $fieldKey === 'CONTACT_ID' || $sEntity === 'COMPANY' && $fieldKey === 'COMPANY_ID') {