BitCount: Integer;
Свойство BitCount определяет количество субъектов безопасности, для которых могут быть сопоставлены биты в маске доступа. По умолчанию свойству установлено значение 32. Максимальное количество - 2048.
Для выполнения примера предполагается наличие табличного справочника с идентификатором Dim_1. В текущем репозитории создано не менее пяти пользователей.
Sub UserProc;
Var
MB: IMetabase;
MDesc: IMetabaseObjectDescriptor;
Users: IMetabaseUsers;
SecDesc: ISecurityDescriptor;
SecLab: ISecurityLabels;
i: Integer;
Begin
MB := MetabaseClass.Active;
MDesc := MB.ItemById("Dim_1");
Users := MB.Security.Users;
SecDesc := MDesc.SecurityDescriptor;
SecDesc.Edit;
SecLab := SecDesc.LabelSecurity;
For i := 0 To SecLab.BitCount - 1 Do
If SecLab.Mapping(i) <> Null Then
SecLab.Mapping(i) := Null;
End If;
End For;
Debug.WriteLine(MB.Security.Users.Count);
Debug.WriteLine(MB.Security.Groups.Count);
SecLab.BitCount := 97;
SecLab.Mapping(0) := Users.Item(0);
SecLab.Mapping(16) := Users.Item(1);
SecLab.Mapping(32) := Users.Item(2);
SecLab.Mapping(64) := Users.Item(3);
SecLab.Mapping(96) := Users.Item(4);
SecDesc.Apply(False);
For i := 0 To MB.Security.Users.Count - 1 Do
Debug.WriteLine(SecLab.ValueStr(Users.Item(i)));
End For;
End Sub UserProc;
После выполнения примера для табличного справочника будут изменены метки безопасности. Для указанных битов маски будут сопоставлены первые пять пользователей, созданных для текущего репозитория. После этого в консоль среды разработки будут выведены значения маски для всех пользователей репозитория.
См. также: