...Человеческий поиск в разработке...
- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_usertype.php
- Класс: \CCrmUserType
- Вызов: CCrmUserType::PrepareUpdate
public function PrepareUpdate(&$arFields, $arOptions = null) { $isNew = is_array($arOptions) && isset($arOptions['IS_NEW']) && $arOptions['IS_NEW']; $arUserFields = $this->GetAbstractFields(); foreach($arUserFields as $FIELD_NAME => $arUserField) { $typeID = $arUserField['USER_TYPE']['USER_TYPE_ID']; // Skip datetime - there is custom logic. if($typeID === 'datetime' || $typeID === 'date') { continue; } if($isNew && $arUserField['EDIT_IN_LIST'] === 'N' && isset($arUserField['SETTINGS']['DEFAULT_VALUE']) && !isset($arFields[$FIELD_NAME])) { $arFields[$FIELD_NAME] = $arUserField['SETTINGS']['DEFAULT_VALUE']; } if ($typeID == 'boolean' && isset($arFields[$FIELD_NAME])) { if ($arUserField['MULTIPLE'] == 'Y' && is_array($arFields[$FIELD_NAME])) { foreach ($arFields[$FIELD_NAME] as $k => $val) { if (!empty($val) && ($val == 'Y' || $val == 1 || $val === true)) $arFields[$FIELD_NAME][$k] = 1; else $arFields[$FIELD_NAME][$k] = 0; } } else { if (!empty($arFields[$FIELD_NAME]) && ($arFields[$FIELD_NAME] == 'Y' || $arFields[$FIELD_NAME] == '1' || $arFields[$FIELD_NAME] === true)) $arFields[$FIELD_NAME] = 1; else $arFields[$FIELD_NAME] = 0; } } elseif ($typeID == 'employee' && $arUserField['MULTIPLE'] == 'N') { if (is_array($arFields[$FIELD_NAME])) { $arFields[$FIELD_NAME] = current($arFields[$FIELD_NAME]); } } elseif ($typeID == 'crm' && isset($arFields[$FIELD_NAME])) { if (!is_array($arFields[$FIELD_NAME])) { $arFields[$FIELD_NAME] = explode(';', $arFields[$FIELD_NAME]); } else { $ar = []; foreach ($arFields[$FIELD_NAME] as $value) { if (!is_array($value)) { $value = explode(';', $value); } foreach ($value as $val) { if (!empty($val)) { $ar[$val] = $val; } } } $arFields[$FIELD_NAME] = $ar; } if ($arUserField['MULTIPLE'] != 'Y') { if (isset($arFields[$FIELD_NAME][0])) $arFields[$FIELD_NAME] = $arFields[$FIELD_NAME][0]; else $arFields[$FIELD_NAME] = ''; } } } }