• Модуль: 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;
}