Как определить доступна ли роль пользователю через ссылку? #718805


#0 by Elf56
Всем доброго времени суток. Имеется 1с 8.3 УТ 11. Необходимо определять кто создал документ это легко Объект.Автор, но еще нужно делать так если скажем открыл другой пользователь этот же документ не АВтор то нужно выполнять определенные действия если у данного документа автором был пользователей с доступной ролью РОЛЬ1 если же автором этого документа был пользователей с доступностью РОЛЬ2 то выполнять уже другие действия. Вопрос как это определить через ссылку Объект.Автор принадлежит ли роль этому пользователю РОЛЬ1 или РОЛЬ2 как это сделать? Пробовал вот так, выдает вот такую ошибку Пользователю недостаточно прав для выполнения операции. но это и правильно потому что менеджеру запрещено менять в справочнике Пользователи информацию, а только просмотр Если же сделать по другому то выдает ошибку что данного метода не найдено РольДоступна Как это сделать? Всем заранее спасибо
#1 by Fish
Чтобы пользователю хватало прав, используй привилегированный режим или привилегированный модуль.
#2 by Elf56
соответственно АвторСобытия это Объект.Автор
#3 by Elf56
а как его установить а затем снять?
#4 by Fish
Это надо СП читать: "Глобальный контекст (Global context) УстановитьПривилегированныйРежим (SetPrivilegedMode) Синтаксис: УстановитьПривилегированныйРежим(<Включить>) Параметры: Тип: Булево. Определяет, будет ли включен привилегированный режим: Ложь - выключить режим. Описание: В файловом варианте информационной базы или на сервере в клиент-серверном варианте информационной базы управляет (включает или выключает) привилегированный режим исполнения кода, аналогичный режиму работы кода привилегированных модулей. В привилегированном режиме никакие проверки прав не выполняются и разрешены любые операции. В клиент-серверном варианте при выполнении на клиенте данный метод не выполняет никаких действий. Первое выполнение метода с параметром Истина в файловом варианте информационной базы или на сервере в клиент-серверном варианте информационной базы включает привилегированный режим. Для явного выключения привилегированного режима необходимо внутри процедуры или функции, в которой он был включен, вызвать метод с параметром Ложь столько же раз, сколько раз в этой же процедуре или функции был вызван метод с параметром Истина. Если этого сделано не было, то при возврате из процедуры/ функции, в которой был включен привилегированный режим, он будет выключен автоматически (неявно). Если в процедуре или функции вызовов метода с параметром Ложь сделано больше, чем вызовов с параметром Истина, то будет вызвано исключение. Доступность: Сервер, толстый клиент, внешнее соединение. Примечание: По умолчанию привилегированный режим выключен. См. также: Глобальный контекст, метод ПривилегированныйРежим"
#5 by Elf56
спасибо получилось установить но теперь вылезает другая ошибка типо Значение не является значением объектного типа (Роли) в строке кода Может быть можно как нибудь по другому решить мою задачу?
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С