Исходный текст
Option Explicit
Call CreateRole(ThisObject)
'==============================================================================
' Создать тип роли Согласование, если она отсутствует в системе.
'Выполнять данный скрипт может только пользователь с правами системного администратора.
'==============================================================================
Sub CreateRole(ObjToCopy)
Dim RoleDefs, NewRoleDef
Dim TestRoleDef as new TDMSRoleDef
'Получить ссылку на коллекцию типов ролей
Set RoleDefs = ThisApplication.RoleDefs
'Если нет информации о ролях, выйти из процедуры
If RoleDefs.Count = 0 Then
MsgBox "Роли в системе отсутствуют.", _
vbInformation, "Информация о текущей настройке"
Exit Sub
End If
' Если роль уже есть в системе, сообщить об этом
If RoleDefs.Has("ROLE_AGREE") Then
MsgBox "Роль ""Согласование"" уже определена в системе."
Exit Sub
End If
' Создать новый тип роли
Set NewRoleDef = RoleDefs.Create
NewRoleDef.SysName = "ROLE_AGREE"
NewRoleDef.Description = "Согласование"
NewRoleDef.Comments(0) = "Роль для согласования универсальная"
'Роль не является системной
NewRoleDef.System = False
' Копировать права доступа с указанного объекта
NewRoleDef.Permissions = ObjToCopy.Permissions
'В логах отладчика выводим идентификатор и номер роли в коллекции
ThisApplication.DebugPrint("Идентификатор нового определения роли - " & NewRoleDef.Handle &_
Chr(13) & "Порядковый номер определния роли - " & RoleDefs.Index(NewRoleDef))
' Добавить тестовую роль
TestRoleDef.SysName = "ROLE_TEST"
TestRoleDef.Description = "Тестовая роль"
RoleDefs.Add TestRoleDef
End Sub
'==============================================================================