Function DoEvent(UserSession, CardFrame, CardData, ActivateFlags, ModeID, FolderID) 'ID Справочника сотрудников и секции "Сотрудники" Const DIC_STAFF = "6710B92A-E148-4363-8A6F-1AA0EB18936C" Const SEC_STAFF = "DBC8AE9D-C1D2-4D5E-978B-339D22B32482" Dim Groups, oRows, FindUserID 'Получаем пользователя, который открыл карточку Set RefStaff = UserSession.CardManager.DictionaryData(DIC_STAFF) Set oRows = RefStaff.Sections.Item(SEC_STAFF).FindRows( _ "") If oRows.Count = 0 Then 'Не найден MsgBox ("ОШИБКА! Невозможно найти вашу учетную запись в справочнике") Exit Function End If 'Это ID пользователя, открывшего карточку FindUserID = oRows.Item(0).ID End Function AccountName STREQ '" & _ UserSession.Properties("AccountName") & "'
Развитие темы. Определение, входит ли пользователь в определенную группу.
Function DoEvent(UserSession, CardFrame, CardData, ActivateFlags, ModeID, FolderID) 'ID Справочника сотрудников и секции "Сотрудники" Const DIC_STAFF = "6710B92A-E148-4363-8A6F-1AA0EB18936C" Const SEC_STAFF = "DBC8AE9D-C1D2-4D5E-978B-339D22B32482" Dim Groups, oRows, FindUserID 'Получаем пользователя, который открыл карточку Set RefStaff = UserSession.CardManager.DictionaryData(DIC_STAFF) 'Поиск по справочнику сотрудников Set oRows = RefStaff.Sections.Item(SEC_STAFF).FindRows( _ "") If oRows.Count = 0 Then 'Не найден MsgBox ("ОШИБКА! Невозможно найти вашу учетную запись в справочнике") Exit Function End If 'Это ID пользователя, открывшего карточку FindUserID = oRows.Item(0).ID 'Поиск в группах Dim StaffObject Set StaffObject = CreateObject("TOHelperObjects.StaffObject") Set StaffObject.UserSession = UserSession Const GROUPID = "ID группы" If StaffObject.IsEmployeeInGroup(FindUserID, GROUPID) = True Then 'Пользователь, открывающий карточку - в группе. End If Set StaffObject = Nothing End Function AccountName STREQ '" & _ UserSession.Properties("AccountName") & "'
Читать дальше
7 коммент.:
Я как понимаю, это просто пример работы со Справочником сотрудников, так как задача получения идентификатора пользователя решается вроде чуть по проще :-)
Для это можно просто использовать свойства сессии:
UserSession.Properties("CurrentUserID")
Вообще в свойствах текущей сессии можно много что узнать :-)
Хочется получить ФИО пользователя в скрипте XSLT по его ID...
Свойство CurrentUserID появилось только в 4.1, когда стало возможно выбирать учетную запись при входе.
"sergejh" - Выложу пример в одной из статей.
Михаил, гарантирую, что свойство CurrentUserID было ещё в 3.6 SR1, мы сами его активно используем
Действительно, проверил. Есть такое свойство. Ну можно использовать как пример поиска по справочнику :)
А как узнать из скрипта, заблокирована ли карточка и кем?
Посмотрите в сторону свойства UserSession.LockManager.LockedResources. Оно возвращает список заблокированных объектов
Отправить комментарий