- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/lib/userfield.php
- Класс: BitrixMainUserFieldTable
- Вызов: UserFieldTable::getFieldData
static function getFieldData(int $id): ?array
{
$labelFields = static::getLabelFields();
$field = [];
$list = static::getList([
'select' => array_merge(['*'], UserFieldTable::getLabelsSelect()),
'filter' => [
'=ID' => $id,
],
'runtime' => [
static::getLabelsReference(),
]
]);
foreach($list as $data)
{
if(empty($field))
{
$field = $data;
unset(
$field['LANGUAGE_ID'],
$field['EDIT_FORM_LABEL'],
$field['LIST_COLUMN_LABEL'],
$field['LIST_FILTER_LABEL'],
$field['ERROR_MESSAGE'],
$field['HELP_MESSAGE'],
$field['UALIAS_0']
);
}
foreach($labelFields as $labelField)
{
$field[$labelField][$data['LANGUAGE_ID']] = $data[$labelField];
}
}
if(empty($field))
{
return null;
}
if($field['USER_TYPE_ID'] === 'enumeration')
{
$field['ENUM'] = [];
$enumEntity = new CUserFieldEnum();
$enumList = $enumEntity->GetList(
[
'SORT' => 'ASC'
], [
'USER_FIELD_ID' => $field['ID'],
]
);
while($enum = $enumList->Fetch())
{
$field['ENUM'][] = $enum;
}
}
return $field;
}