Часто необходимо сделать в списке столбец для отображения сотрудников. Например, это может быть реестр отпусков в виде календаря, или перечень сертификатов и удостоверений. Стандартно SharePoint при создании столбца в списке дает возможность выбрать тип «Пользователь или группа», и он будет хранить ссылку на сотрудника. Но тут можно выбрать только один тип того, что будет отображаться: имя, должность, отдел, офис, именно что-то одно. Если нужно сделать ссылку на сотрудника и выводить сразу несколько столбцов, например, показывать сразу имя, офис и подразделение сотрудника с возможностью раздельной фильтрации, то такой тип столбца не поможет.
Напрашивается вариант использования для нового столбца типа «Подстановка». Казалось бы, если бы можно было выбрать в качестве подстановочного список всех сотрудников, можно было бы легко заполнить нужный список и вывести одновременно любые столбцы смежного списка (и отдел, и должность, и все что угодно в разных столбцах). Но такой список сотрудников недоступен для выбора в интерфейсе, хотя и существует.
Если перейти по URL вида /_catalogs/users/detail.aspx в любой коллекции сайтов, то отобразится таблица со всеми пользователями. У нее будут все нужные нам столбцы, но напрочь ответствует интерфейс управления (в том числе нет ленточной панели). Доступна только сортировка колонок. Но даже без интерфейса этот список можно править. Для правки нужно узнать его идентификатор. Надо правой кнопкой мыши нажать на имя любого сотрудника, скопировать URL через контекстное меню и увидеть в этом URL такое:
/_layouts/listform.aspx?PageType=4&ListId={4C911BA8-C7FB-4562-B2CD-733D8F9276F0}&ID=14
Отсюда надо взять GUID (тот, что в скобках после ListId) и скопировать его в другой URL:
/_layouts/listedit.aspx?List={guid}
После перехода по новому URL, откроется страница «Список сведений о пользователях: Параметры». Здесь в обычном режиме можно настраивать для этого списка пользователей все что угодно, включая представления.
Именно этот список требуется сделать доступным для выбора при создании столбцов подстановки. Он формируется и обновляется автоматически, импортируя данные из Active Directory. Он является служебным и скрыт из интерфейса, но это можно исправить, выполнив код на PowerShell в консоли SharePoint:
# URL коллекции сайтов и имя списка с сотрудниками по умолчанию $siteUrl = "http://sharepoint/sites/collection/" $listName = "Список сведений о пользователях" $site = New-Object Microsoft.SharePoint.SPSite($siteUrl) $web = $site.OpenWeb() $list = $web.Lists[$listName] $list.Hidden = $false $list.Update()
Теперь, если все корректно выполнилось, можно использовать список пользователей в качестве списка подстановки и создавать в своих списках столбцы с именем сотрудника, его должностью, офисом, подразделением. Будет очень удобно фильтровать записи в реестре по офису, например, или должности.