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