• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/user.php
  • Класс: BitrixMainUserTable
  • Вызов: UserTable::indexRecord
static function indexRecord($id)
{
	$id = intval($id);
	if($id == 0)
	{
		return false;
	}

	$intranetInstalled = ModuleManager::isModuleInstalled('intranet');

	$select = [
		'ID',
		'NAME',
		'SECOND_NAME',
		'LAST_NAME',
		'WORK_POSITION',
		'PERSONAL_PROFESSION',
		'PERSONAL_WWW',
		'LOGIN',
		'EMAIL',
		'PERSONAL_MOBILE',
		'PERSONAL_PHONE',
		'PERSONAL_CITY',
		'PERSONAL_STREET',
		'PERSONAL_STATE',
		'PERSONAL_COUNTRY',
		'PERSONAL_ZIP',
		'PERSONAL_MAILBOX',
		'WORK_CITY',
		'WORK_STREET',
		'WORK_STATE',
		'WORK_ZIP',
		'WORK_COUNTRY',
		'WORK_MAILBOX',
		'WORK_PHONE',
		'WORK_COMPANY'
	];

	if ($intranetInstalled)
	{
		$select[] = 'UF_DEPARTMENT';
	}

	$record = parent::getList(array(
		'select' => $select,
		'filter' => array('=ID' => $id)
	))->fetch();

	if(!is_array($record))
	{
		return false;
	}

	$record['UF_DEPARTMENT_NAMES'] = array();
	if ($intranetInstalled)
	{
		$departmentNames = UserUtils::getDepartmentNames($record['UF_DEPARTMENT']);
		foreach ($departmentNames as $departmentName)
		{
			$record['UF_DEPARTMENT_NAMES'][] = $departmentName['NAME'];
		}
	}

	$departmentName = $record['UF_DEPARTMENT_NAMES'][0] ?? '';
	$searchDepartmentContent = implode(' ', $record['UF_DEPARTMENT_NAMES']);

	UserIndexTable::merge(array(
		'USER_ID' => $id,
		'NAME' => (string)$record['NAME'],
		'SECOND_NAME' => (string)$record['SECOND_NAME'],
		'LAST_NAME' => (string)$record['LAST_NAME'],
		'WORK_POSITION' => (string)$record['WORK_POSITION'],
		'UF_DEPARTMENT_NAME' => (string)$departmentName,
		'SEARCH_USER_CONTENT' => self::generateSearchUserContent($record),
		'SEARCH_ADMIN_CONTENT' => self::generateSearchAdminContent($record),
		'SEARCH_DEPARTMENT_CONTENT' => MapBuilder::create()->addText($searchDepartmentContent)->build()
	));

	return true;
}