HasAccessMandatory: Boolean;
Свойство HasAccessMandatory возвращает признак использования мандатного контроля доступа для элементов справочника НСИ.
True. Мандатный контроль доступа используется для элементов справочника НСИ;
False. Мандатный контроль доступа не используется для элементов справочника НСИ.
Значение свойства соответствует значению IRdsDictionary.HasMandatoryAccess.
Признак того, применяется ли дискреционный контроль доступа к элементам справочника НСИ, определяет свойство ISecurityDescriptor.AccessSecured.
Для выполнения примера предполагается наличие в репозитории справочника НСИ с идентификатором RDS_DICT. Пользователь, выполняющий пример, должен обладать привилегией «Изменение метки безопасности и списка контроля доступа любого объекта».
Добавьте ссылки на системные сборки: Metabase, Rds.
Sub UserProc;
Var
MB: IMetabase;
Object: IMetabaseObject;
SD: ISecurityDescriptor;
Dict: IRdsDictionary;
MObj: IMetabaseObjectDescriptor;
Begin
// Получим текущий репозиторий
MB := MetabaseClass.Active;
// Получим справочник НСИ
MObj := MB.ItemById("RDS_DICT");
Object := MObj.Edit;
Dict := Object As IRdsDictionary;
// Получим параметры управления доступом
SD := Object.SecurityDescriptor;
// Проверим использование мандатного контроля доступа для элементов справочника НСИ
If SD.HasAccessMandatory Then
// Отключим применение мандатного контроля доступа, если он используется
Dict.HasMandatoryAccess := False;
// Сохраним изменения
Object.Save;
SD.Apply(True);
End If;
End Sub UserProc;
При выполнении примера для справочника НСИ будет отключен мандатный контроль доступа для элементов, если ранее он был включен.
См. также: