- Модуль: bizproc
- Путь к файлу: ~/bitrix/modules/bizproc/lib/service/user.php
- Класс: BitrixBizprocServiceUser
- Вызов: User::getUserUserFields
public function getUserUserFields(): array
{
static $fields;
if (isset($fields))
{
return $fields;
}
$fields = [];
$userFieldIds = MainUserFieldTable::getList([
'select' => ['ID'],
'filter' => [
'=ENTITY_ID' => 'USER',
'%=FIELD_NAME' => 'UF_USR_%',
],
])->fetchAll();
foreach ($userFieldIds as $fieldId)
{
$field = MainUserFieldTable::getFieldData($fieldId['ID']);
$fieldName = $field['FIELD_NAME'];
$fieldType = FieldType::convertUfType($field['USER_TYPE_ID']) ?? "UF:{$field['USER_TYPE_ID']}";
$name = in_array(LANGUAGE_ID, $field['LANGUAGE_ID'])
? $field['LIST_COLUMN_LABEL'][LANGUAGE_ID]
: $field['FIELD_NAME']
;
$fields[$fieldName] = [
'Name' => $name,
'Type' => $fieldType,
'Multiple' => $field['MULTIPLE'] === 'Y',
];
if ($fields[$fieldName]['Type'] === 'select')
{
$fields[$fieldName]['Options'] = array_combine(
array_column($field['ENUM'], 'XML_ID'),
array_column($field['ENUM'], 'VALUE'),
);
$fields[$fieldName]['Settings'] = ['ENUM' => $field['ENUM']];
}
}
return $fields;
}