Smlplita.ru

СМ Плита
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как установить привилегированный режим на клиенте

1С включить привилегированный режим

Область применения: управляемое приложение, обычное приложение.

1.1. Привилегированный режим позволяет

  • выполнить операции с данными от лица пользователей, которым данные недоступны;
  • ускорить работу, так как в привилегированном режиме не накладываются ограничения на доступ к данным.

1.2. Привилегированный режим следует использовать

  • когда требуется с логической точки зрения отключить проверку прав;
  • когда допустимо отключить проверку прав, чтобы ускорить работу и при этом работа с данными от лица пользователя логически не нарушает установленные для него права доступа.

2. Далее приведем некоторые типовые сценарии использования привилегированного режима.

2.1. Если подчиненные регистры (движения документов) требуются пользователю для получения отчетов , то такие регистры следует оставлять доступными только для чтения, а запись в такие регистры следует выполнять переходом в привилегированный режим. При таком подходе, проверка прав на запись выполняется только для регистратора.

Например, в конфигурации имеются объекты метаданных:

  • Документ.ОприходованиеТоваров
  • РегистрНакопления.ОстаткиНаСкладах
  • Отчет.ОстаткиНаСкладах.

Документ ОприходованиеТоваров делает движения по регистру накопления ОстаткиНаСкладах при проведении в привилегированном режиме. Пользователю не требуется напрямую изменять регистр, но требуется формировать отчет ОстаткиНаСкладах , который читает данные регистра. Поэтому пользователю достаточно дать только право чтения регистра.

2.2. Если регистры не требуются пользователю ни для получения отчетов, ни в командном интерфейсе , то следует не давать пользователю права на их чтение. Чтение или запись данных в такие регистры выполняется переходом в привилегированный режим.

Например, в конфигурации имеется регистр сведений ВерсииПодсистем , данные которого не выводятся в отчетах, а доступ к нему осуществляется только через специальные функции общего модуля. В этом случае следует не давать пользователям какие-либо права доступа к регистру.

2.3. Если для выполнения разрешенной пользователю операции требуются заранее недоступные данные , тогда следует их получать переходом в привилегированный режим, но с гарантией предотвращения передачи этих данных на клиентскую сторону и с гарантией их использования на сервере только для выполнения запланированной операции.

Например, в случае если в конфигурации есть объекты метаданных

  • Документ.РеализацияТоваровИУслуг
  • РегистрНакопления.Продажи
  • РегистрНакопления.Взаиморасчеты

и необходимо, чтобы

  • проведение документа от лица кладовщика изменяло регистр продаж, но кладовщику регистр продаж оставался недоступным.
  • при проведении документа от лица кладовщика проверялось состояние взаиморасчетов, но кладовщику регистр взаиморасчетов оставался недоступным.

2.4. Привилегированный режим также следует использовать с целью повышения производительности в тех случаях, когда это не приводит к выполнению действий или получению данных, не разрешенных пользователю.

Пример 1. Выполняется запрос, у которого значения параметров отбора уже прошли проверку ограничения прав на уровне записей. Тогда сам запрос допустимо выполнить в привилегированном режиме для повышения его производительности. Переход в привилегированный режим, например, при получении данных для отчета, следует тщательно рассчитывать, чтобы предотвратить получение данных, не разрешенных пользователю.

Пример 2. Параметр сеанса «Текущий пользователь» не доступен ни в одной роли. Для получения значения используется функция:

Функция ТекущийПользователь() Экспорт
УстановитьПривилегированныйРежим(Истина);
Возврат ПараметрыСеанса.ТекущийПользователь;
КонецФункции

3. В то же время, неоправданное использование привилегированного режима может привести к проблемам безопасности пользовательских данных.

3.1. Потенциально опасны любые экспортные процедуры и функции, которые выполняют на сервере какие-либо действия с предварительной безусловной установкой привилегированного режима, так как это отключает проверку прав доступа текущего пользователя. Особого внимания требуют экспортные процедуры и функции клиентского прикладного программного интерфейса сервера 1С:Предприятия.

Процедура ИзменитьИлиУдалитьДанные(. ) Экспорт

УстановитьПривилегированныйРежим(Истина); // Отключаем проверку прав доступа
// Изменяем данные в привилегированном режиме
.

Процедура ИзменитьИлиУдалитьДанные(. ) Экспорт

// Изменяем данные
// (при этом если у пользователя недостаточно прав для выполнения операции над данными, то будет вызвано исключение)
.

Исключение составляют случаи, когда действие, выполняемое процедурой, должно быть разрешено (или возвращаемое значение функции должно быть доступно) абсолютно всем категориям пользователей.

3.2. В случаях, когда к экспортной процедуре или функции выполняется обращение в сеансе с недостаточным уровнем прав доступа, должно вызываться исключение стандартного вида (см. метод платформы ВыполнитьПроверкуПравДоступа ).

Как правило, для этого не требуется предусматривать в коде каких-либо проверок, так как при наличии в конфигурации ролей и ограничений доступа к данным на уровне записей (RLS) при попытке обращения к недоступным данным возникнет исключение:

  • при выполнении запроса без ключевого слова РАЗРЕШЕННЫЕ ;
  • при вызове метода ПолучитьОбъект «от» недоступной ссылки на объект;
  • при вызове недоступного метода глобального контекста;
  • и в других аналогичных случаях.

При необходимости выполнить проверку прав доступа вручную, следует использовать метод ВыполнитьПроверкуПравДоступа .
Пример предварительной проверки перед выполнением действий в привилегированном режиме:

Процедура ИзменитьИлиУдалитьДанные(. ) Экспорт

ВыполнитьПроверкуПравДоступа(. ); // Если у пользователя недостаточно прав, то будет вызвано исключение
УстановитьПривилегированныйРежим(Истина); // Отключаем проверку прав доступа

// Изменяем данные в привилегированном режиме
.

3.3. Включать привилегированный режим следует точечно, чтобы остальной код не терял возможности проверки прав пользователя.
Для этого нужно:

  • установить привилегированный режим точно перед выполнением действия;
  • выполнить действие без проверки прав;
  • отключить привилегированный режим сразу же после выполнения действия;
  • продолжить выполнение кода в непривилегированном режиме.

// Код подготовки запроса, которому требуется проверка прав

// Код выполнения запроса, для которого требуется отключить проверку прав
Выборка = Запрос.Выполнить().Выбрать();

// Обработка результатов запроса, где требуется проверка прав.

// Код подготовки запроса

УстановитьПривилегированныйРежим(Истина);
Выборка = Запрос.Выполнить().Выбрать();
УстановитьПривилегированныйРежим(Ложь);

// Обработка результатов запроса

4. Для перехода в привилегированный режим следует использовать следующие возможности платформы 1С:Предприятие :

    При реализации логики проведения и отмены проведения документов в обработчиках модуля документа ОбработкаПроведения и ОбработкаУдаленияПроведения :

УстановитьПривилегированныйРежим(Истина)
// фрагмент кода в привилегированном режиме
// …
УстановитьПривилегированныйРежим(Ложь)

– Использовать привилегированный модуль
Размещение программного кода, который должен выполняться БЕЗ КОНТРОЛЯ ОГРАНИЧЕНИЙ, в общий модуль с установкой у модуля флага ПРИВИЛЕГИРОВАННЫЙ.
– Использовать привилегированный режим исполнения программного кода

Аналогичный режиму работы кода привилегированных модулей. Режим можно включить/выключить средствами встроенного языка:
Код 1C v 8.х
Параметр (обязательный)
Тип: Булево. Определяет, будет ли включен привилегированный режим:
Истина – включить режим;
Ложь – выключить режим.

Функция:
Код 1C v 8.х
позволяет определить, включен привилегированный режим, или нет.

Использование привилегированного режима позволяет, во-первых, ускорить работу, так как не будут накладываться ограничения на доступ к данным, а во-вторых, позволяет выполнять операции с данными от лица пользователей, которым эти данные недоступны.

Привилегированный режим рекомендуется использовать тогда, когда с логической точки зрения нужно отключить проверку прав, или когда можно отключить проверку прав, чтобы ускорить работу. Допустимо использовать привилегированный режим тогда, когда работа с данными от лица некоторого пользователя не нарушает установленные для этого пользователя права доступа.

Читать еще:  Как установить светильники в ванной своими руками

3. Как использовать методы, запрещенные в безопасном режиме

3.1. Безопасный режим

Все расширения конфигурации, дополнительные отчеты/обработки выполняются в сервисе в безопасном режиме с использованием профилей безопасности.

В безопасном режиме запрещены следующие операции:

  • Выполнение методов Выполнить() и Вычислить()
  • Привилегированный режим
  • Работа с внешними компонентами
  • Работа с файловой системой, кроме временных файлов
  • Работа с приложениями операционной системы
  • COM-объекты (серверный код может выполняться на Linux, мы не можем гарантировать наличие COM-объектов на сервере)
  • Доступ к Интернету и др.

3.2. Профили безопасности

Некоторые действия, запрещенные в безопасном режиме, могут быть разрешены с помощью профилей безопасности.

Профиль безопасности — это набор явно заданных разрешений на выполнение определенных действий, который можно назначать информационным базам, расширениям конфигурации, дополнительным отчетам и обработкам. Профили безопасности хранятся в кластере серверов «1С:Предприятия».

Профили безопасности автоматически формируются (при необходимости) для расширений конфигурации, дополнительных отчетов и обработок, загружаемых в сервис:

  • для расширений конфигурации — на основании запросов разрешений на выполнение небезопасных действий, указанных при загрузке расширения в сервис, а также результатов автоматической проверки расширения конфигурации;
  • для дополнительных отчетов и обработок конфигурации — на основании запросов разрешений на выполнение небезопасных действий, указанных в функции СведенияОВнешнейОбработке дополнительного отчета или обработки.

Подробнее о профилях безопасности можно прочесть в документации по «1С:Предприятию» по ссылке и в разделах Профили безопасности глав «Настройка и использование подсистем при разработке конфигурации» и «Программный интерфейс» документации Библиотеки стандартных подсистем (БСП), см. здесь и здесь.

3.3. Какие небезопасные методы можно, и какие нельзя использовать

В расширениях конфигурации, дополнительных отчетах и обработках, предназначенных для использования в сервисе 1cfresh.com, можно использовать следующие небезопасные операции:

  • доступ к каталогу временных файлов (на чтение и/или на запись);
  • доступ к интернет-ресурсам;
  • привилегированный режим;
  • доступ к внешним компонентам, входящим в состав конфигурации, для которой разработаны расширение конфигурации, дополнительный отчет или обработка.
  • доступ к файловой системе (кроме доступа к каталогу временных файлов);
  • доступ к COM-объектам (поскольку серверный код может выполняться на Linux, мы не можем гарантировать наличие COM-объектов на сервере);
  • доступ к внешним компонентам, не входящим в состав конфигурации, для которой разработаны расширение конфигурации, дополнительный отчет или обработка;
  • приложения операционной системы;
  • средства криптографии на стороне сервера.

Учтите, что небезопасные операции запрещены только на сервере!

3.4. Запрос разрешений для расширений конфигурации

Если в расширении конфигурации используются операции, не разрешенные в безопасном режиме, то при загрузке версии расширения в сервис необходимо указать необходимые разрешения на выполнение небезопасных операций (подробнее см. в статье по ссылке):

Разрешения на доступ к внешним компонентам, входящим в состав конфигурации, запрашивать не надо, они будут предоставлены автоматически.

3.5. Запрос разрешений для дополнительных отчетов и обработок

При необходимости использования в дополнительном отчете или обработке операций, не разрешенных в безопасном режиме:

Запрашивайте в функции СведенияОВнешнейОбработке дополнительного отчета или обработки нужные разрешения с помощью вызовов функций:

  • РаботаВБезопасномРежиме.РазрешениеНаИспользованиеВнешнейКомпоненты
  • РаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса

Описания указанных выше функций см. по ссылке. Пример использования вызовов этих функций показан в обработке _ДемоЗагрузкаНоменклатурыИзПрайсЛистаПрофилиБезопасности из Демонстрационной конфигурации «Библиотека стандартных подсистем».

  • В функции СведенияОВнешнейОбработке дополнительного отчета или обработки указывайте режим работы дополнительного отчета или обработки Безопасный.
  • Параметры сеанса задаются только программно, универсального интерфейса для установки параметров сеанса в системе нет. Обычно они задаются при старте системы, в «Модуле сеанса». Если параметр не определен, во время обращения к нему будет вызвана ошибка.

    Рассмотрим типичный пример использования параметров сеанса — установку текущего пользователя. Пример я возьму из подготовки к .

    В древе метаданных создадим новый параметр сеанса — ТекущийПользователь, назначим ему тип — СправочникСсылка.ФизическиеЛица:

    Получите 267 видеоуроков по 1С бесплатно:

    В модуле сеанса создадим процедуру, в которой будет определяться текущий параметр сеанса:

    Процедура УстановкаПараметровСеанса(ТребуемыеПараметры) //ищем физ. лицо по имени пользователя ТекПользователь = Справочники. ФизическиеЛица. НайтиПоНаименованию(ИмяПользователя() ) ; //если не нашли — создадим нового Если ТекПользователь. Пустая() Тогда НовПользователь = Справочники. ФизическиеЛица. СоздатьЭлемент() ; НовПользователь. Наименование = ИмяПользователя() ; НовПользователь. Записать() ; ТекПользователь = НовПользователь. Ссылка; КонецЕсли ; //присваиваем параметру сеанса ТекущийПользователь ссылку на справочник физ.лиц ПараметрыСеанса. ТекущийПользователь = ТекПользователь; КонецПроцедуры

    5
    Когда требуется более тонкая настройка доступа, на помощь приходит механизм RLS — Record Level Security. Конфигурации системы «1С:Предприятие» 8 изначально позиционировалась как программа для многофирменного учета, и один из. 3
    Начиная с платформы 8.0 системы 1С Предприятие, существует возможность ограничивать права доступа пользователей на уровне записей. Для этого используется механизм RLS (Record Level Security). Такая «тонкая» настройка может быть. 3
    Часто встречаю вопросы касаемые программного создания и настройки прав пользователей. В этот статье я приведу примеры для Обычного и Управляемого приложений, которые программно создают пользователя в. 2
    Вопрос: У меня добавлен новый пользователь. Создаю новый интерфейс (копированием существующего) и указываю этот интерфейс в качестве основного для данного пользователя. Проблема в том, что созданный новый интерфейс.

    • АКТУАЛЬНЫЕ РЕЛИЗЫ 1С
    • ПРИМЕРЫ КОДА НА ПЛАТФОРМЕ 1С
    Роли, права доступа в 1С 8.x
    Как узнать, доступна ли определенная роль текущему пользователю?
    Как получить информацию о ролях конфигурации?
    Как выполнить код без проверки прав?

    Рассматриваемы параметры в 1С:Предприятие представлены в виде объекта метаданных. По существу, это не что иное, как глобальная переменная, привязанная к текущему сеансу.

    Глобальная переменная – такая же переменная, как и любая другая, но особенность ее в том, что обратиться к ней можно из любой точки программы, а в случае с параметром сеанса это работает только в пределах текущего сеанса.

    Поскольку параметр сеанса является объектом метаданных, он имеет определенные особенности:

    • Он может быть определенного типа. Разрешенные типы определяются платформой. Перечень их достаточно обширный, но даже если в данном списке нет нужного для вас, всегда можно сериализовать значение и хранить его в параметре в виде строки.

    • Права на него, как и на любой другой объект метаданных, можно ограничивать ролями (как на запись, так и на чтение). При этом существует особенность при использовании его в RLS, но об этом будет написано ниже.
    • Он имеет ограничение на объем помещаемых данных в сериализованном виде. Их объем не должен превышать 4 Гб.
    Читать еще:  Как установить смеситель в ванной на старые трубы

    Если тип параметра сеанса:

    • ФиксированныйМассив
    • ФиксированнаяКоллекция
    • ФиксированнаяСтруктура

    Тогда значение элемента коллекции может быть Неопределено.

    Основная область параметров – применение их значений в запросах RLS (ограничение доступа на уровне записей).

    Например, нам нужно в запросе RLS установить условие по текущему пользователю. Для этого заводим параметр сеанса «ТекущийПользователь», из кода встроенного языка устанавливаем значение:

    При таком использовании параметра сеанса права на чтение параметра не учитываются, однако можно попытаться получить их значение из встроенного языка:

    Установить параметр сеанса, то есть его значение, можно только программно и только на сервере. Для этого с клиента потребуется вызвать серверную процедуру. При обращении к параметру сеанса (установка, получение), если параметр не инициализирован, будет вызвана процедура УстановкаПараметровСеанса в модуле сеанса. Данная процедура имеет один параметр ТребуемыеПараметры – массив устанавливаемых идентификаторов параметров сеанса. УстановкаПараметровСеанса вызывается также при установке соединения с информационной базой до вызова всех остальных обработчиков. В этом случае ТребуемыеПараметры будет равен Неопределено.

    Рекомендовано использовать отложенную (ленивую) инициализацию, то есть инициализировать параметры сеанса по требованию, а не при старте системы, так как не все параметры сеанса требуются непосредственно при старте системы. Отложенная инициализация выполняется так:

    Процедура УстановкаПараметровСеанса(ИменаПараметровСеанса) Если ИменаПараметровСеанса Неопределено Тогда Если ИмяПараметра = «ТекущийПользователь» Тогда ПараметрыСеанса.ТекущийПользователь = ; ИначеЕсли ИмяПараметра = » ТекущаяОрганизация» Тогда ПараметрыСеанса.ТекущаяОрганизация = ; // и т.д. КонецЕсли; КонецЕсли; КонецПроцедурызначение>значение>>

    Так как параметр сеанса привязан к сеансу, не получится обратиться к параметру сеанса из метода, выполняющегося в фоне, поскольку это будет уже другой сеанс. Этот нюанс может стать неожиданностью, поэтому лучше к нему подготовиться заранее, передав нужное значение как параметр метода и инициализировав из параметра сеанса в начале процедуры.

    Настройка объекта «Роли» 1С

    Окно настройки объекта «Роли» содержит две вкладки:

    1. Права (основная)
    2. Шаблоны ограничений (для настройки прав на уровне записей — RLS, Row Level Security).

    Настройка объекта «Роли» на вкладке «Права»

    Вкладка «Права» окна настройки объекта «Роль» содержит:

    • Список «Объекты» — список метаданных, на которые могут устанавливаться права доступа.
    • Список «Права» — список доступных для настроек прав.
    • Табличную часть «Ограничение доступа к данным» — поля роли для настройки RLS (настроек прав на уровне записей).
    • Флаг «Устанавливать права для новых объектов» — если флаг установлен, на новые объекты метаданных будут автоматически установлены разрешающие права.
    • Флаг «Устанавливать права для реквизитов и табличных частей по умолчанию» — если флаг установлен, реквизиты и табличные части будут наследовать права владельца (справочника, документа и т.д.).
    • Флаг «Независимые права подчиненных объектов» — если флаг установлен, то права родительского объекта не учитываются. Если флажок снят, то при определении права подчиненного объекта анализируется соответствующее право родительского объекта: если у родительского объекта право отсутствует, у подчиненного объекта также отсутствует право, вне зависимости от состояния права у подчиненного объекта.

    Список прав на всю конфигурацию 1С:

    1. Администрирование — администрирование информационной базы (требуется наличие права «Администрирование данных»).
    2. Администрирование данных — право на административные действия над конкретной областью данных. К этим действиям относятся:
      • просмотр записей журнала регистрации и получение значений отбора без ограничений;
      • установка часового пояса информационной базы (области данных) (вызов метода УстановитьЧасовойПоясИнформационнойБазы());
      • создание начального образа подчиненного узла распределенной информационной базы (вызов метода СоздатьНачальныйОбраз());
      • обновление нумерации объектов (вызов метода ОбновитьНумерациюОбъектов());
      • выполнение методов объекта СтандартноеХранилищеНастроекМенеджер в тех случаях, если выполняется работа с настройками пользователя, отличными от текущего.
    3. Обновление конфигурации базы данных — право на обновление конфигурации базы данных.
    4. Монопольный режим — особый режим работы базы 1С, при котором к базе имеет доступ только 1 сеанс. Монопольный режим целесообразно использовать когда необходимо выполнить существенные изменения данных и при этом исключить влияние других сеансов на результаты работы (например, при выполнении некоторых сервисных процедур -удаление помеченных объектов, вызове некоторых методов встроенного языка). ( подробнее )
    5. Активные пользователи — право на получение информации о том, кто из пользователей работает с информационной базой в данный момент. Список активных пользователей содержит информацию об имени пользователя, режиме, в котором пользователь использует систему, времени начала его работы и пр. Кроме этого, из списка активных пользователей можно открыть журнал регистрации системы, или просмотреть историю работы пользователя — содержимое журнала регистрации, отфильтрованное по тому пользователю, на котором установлен курсор.
    6. Журнал регистрации — доступ к журналу регистрации, в котором отображаются события, произошедшие в информационной базе с указанием времени, имени компьютера и пользователя и ссылки на изменяемые данные. При аутентификации пользователей в журнале также создаются записи с указанием способа входа в программу.
    7. Тонкий клиент — право запуска тонкого клиента.
    8. Веб клиент — право запуска веб-клиента.
    9. Толстый клиент — право запуска толстого клиента.
    10. Внешнее соединение — право запуска внешнего соединения, одного из механизмов интеграции с другими системами, с помощью которого обеспечивается быстрого программного доступа к данным 1С:Предприятия 8 из внешних приложений. Основные отличия от Automation-сервера:
      • Automation-сервер запускает полноценное приложение 1С:Предприятие 8, а в случае внешнего соединения запускается относительно небольшой внутрипроцессный COM-сервер.
      • При работе через внешнее соединение недоступны функциональные возможности так или иначе связанные с организацией пользовательского интерфейса.
      • При работе внешнего соединения не используется модуль приложения. Его роль при работе с внешним соединением играет модуль внешнего соединения.
    11. Automation — право на использование Automation-сервера.
    12. Режим «Все функции» — доступ к пункту меню «Все функции» в режиме управляемого приложения (доступ ко всем объектам метаданных).
    13. Регистрация системы взаимодействия — право на регистрацию системы взаимодействия, т.е. механизма, позволяющего пользователям одной информационной базы системы 1С:Предприятие общаться друг с другом в режиме реального времени с помощью текстовых сообщений и видеозвонков (голосовая информация и изображение). ( подробнее )
    14. Сохранение данных пользователя — разрешение или запрет на сохранение данных пользователя (настроек, избранного, истории). Актуально для управляемых форм 1С .
    15. Администрирование расширений конфигурации — доступ к администрированию расширений, которые представляют собой что-то вроде параллельных конфигураций, автоматически объединяющихся с основной конфигурацией поставщика. В расширениях можно добавлять как свои объекты, так и заимствовать объекты основной конфигурации.
    16. Интерактивное открытие внешних обработок — открытие внешних обработок (возможность запуска обработок из внешних источников, внимание, вирусная опасность! ). Не рекомендуется выносить во внешние обработки функционал, который может одновременно использоваться большим количеством пользователей ( подробнее ). Такой код следует встраивать в конфигурацию, либо, в крайнем случае, использовать механизм расширений.
    17. Интерактивное открытие внешних отчетов — открытие внешних отчетов.
    18. Вывод — вывод на печать, сохранение в файл и копирование в буфер обмена.
    1. Чтение — чтение (программное).
    2. Добавление — добавление (программное).
    3. Изменение — изменение (программное).
    4. Удаление — удаление (программное).
    5. Просмотр — просмотр.
    6. Интерактивное добавление — интерактивное добавление.
    7. Редактирование — редактирование.
    8. Интерактивная пометка удаления — интерактивная пометка на удаление.
    9. Интерактивное снятие пометки удаления — снятие пометки на удаление.
    10. Интерактивное удаление помеченных— удаление помеченных объектов.
    11. Ввод по строке — использование режима ввода по строке.
    12. Интерактивное удаление — непосредственное удаление (shift +del).
    1. Интерактивное проведение — проведение.
    2. Отмена проведения — отмена проведения документов.
    3. Интерактивное проведение неоперативное — проведение (стандартными командами форм) документа в неоперативном режиме.
    4. Интерактивная отмена проведения — интерактивная отмена проведения.
    5. Интерактивное изменение проведенных — право на редактирование проведенного документа. Если право у роли не установлено, то форма такого документа открывается в режиме просмотра и пользователь не может:
      • удалить проведенный документ,
      • установить пометку удаления,
      • перепровести или
      • сделать непроведенным.
    Читать еще:  Как установить акриловую ванну на ножках с экраном

    УправлениеИтогами — управление итогами регистра бухгалтерии и регистра накопления (установка периода, по который рассчитаны итоги, и пересчет итогов).

    Роли пользователя

    После настройки прав доступа для роли ее можно назначить пользователю. Причем можно указать сразу несколько ролей. Состав ролей указывается в карточке пользователя на закладке Прочие:

    Если хотя бы у одной роли есть права на объект, то у пользователя будет доступ к этому объекту. То есть сочетание прав разных ролей работает по условию «ИЛИ». Если ни в одной роли нет прав на объект, то у пользователя не будет доступа к этому объекту.

    При создании новой роли автоматические устанавливаются следующие права на конфигурацию:

    • Тонкий клиент
    • Веб-клиент
    • Мобильный клиент
    • Все режимы основного окна
    • Клиент системы аналитики
    • Сохранение данных пользователя
    • Вывод

    А также для всех существующих объектов метаданных устанавливаются права на подчиненные объекты:

    • Реквизиты
    • Табличные части
    • Стандартные реквизиты
    • Команды

    При этом на сами объекты метаданных права сняты.

    В результате достаточно дать права на объект, а права на подчиненные объекты уже установлены. При необходимости их можно снять.

    Если для роли установлен флаг Устанавливать права для реквизитов и табличных частей по умолчанию, то при добавлении в конфигурацию нового объекта у роли автоматически будут проставлены права для его подчиненных объектов:

    Если данный флаг снят, то при добавлении нового объекта в конфигурацию для его подчиненных объектов не будут установлены права. В этом случае при добавлении прав на этот объект, нужно не забыть дать права и на его подчиненные объекты.

    Флаг Независимые права подчиненных объектов позволяет складывать права на объекты с правами подчиненных объектов из разных ролей.

    Например, в одной роли настроены права на справочник, но нет прав на подчиненные объекты справочника (реквизиты, табличные части и т.п.). А в другой роли нет прав на справочник но зато есть права на подчиненные объекты справочника.

    Если флаг Независимые права подчиненных объектов снят, то у пользователя с двумя этими ролями не будет прав на подчиненные объекты справочника. Права из второй роли не применились, потому что нет прав на справочник.

    Если установить данный флаг в настройках второй роли, где заданы права на подчиненные объекты, то у пользователя будут права как на справочник, так и на подчиненные объекты. Права из второй роли на подчиненные объекты считаются независимыми и были сложены с правами из первой роли.

    Если щелкнуть правой кнопкой по корню конфигурации или по узлу дерева Роли, то можно выбрать пункт меню Все роли:

    В результате будет открыто окно, где слева представлены все объекты конфигурации, а справа список прав на выделенный объект и наличие права у той или иной роли:

    Программная проверка прав доступа

    Для проверки доступности у пользователя какой-либо роли служит следующая функция:

    • РольДоступна(«АдминистраторСистемы»)

    В том случае, когда проверяемая роль назначена пользователю, функция вернет значение «Истина». В противном случае – «Ложь».

    Для того чтобы выполнить какие-либо действия с объектом, к которому нет доступа, можно воспользоваться следующим методом:

    • УстановитьПривилегированныйРежим(Истина)

    После включения привилегированно режима никаких проверок прав не производится. По окончании действий над недоступными объектами необходимо снова вызвать данный метод с параметром «Ложь» для отключения данного режима. Помните, что в клиент — серверном варианте при выполнении на клиенте данный метод не выполняет никаких действий.

    Для проверки того, установлен привилегированный режим служит функция (возвращает «Истина» или «Ложь»):

    • ПривилегированныйРежим()

    Методы Создать() и Подключить() объекта ВнешниеОбработки имеют входящий параметр БезопасныйРежим — признак подключения внешней обработки в безопасном режиме. Если параметр не указан, подключение будет осуществлено в безопасном режиме.
    Безопасный режим работы предназначен для защиты системы от выполнения на сервере «ненадежного» программного кода. Потенциальную опасность представляют внешние обработки или программный код, вводимый пользователем для использования в методах Выполнить() и Вычислить().
    В безопасном режиме накладываются следующие ограничения:

    • привилегированный режим отменяется, если он был установлен;
    • попытки перехода в привилегированный режим игнорируются;
    • запрещены операции с COM-объектами;
    • запрещена загрузка и подключение внешних компонентов;
    • запрещен доступ к файловой системе (кроме временных файлов);
    • запрещен доступ к Интернету.

    Обработки, открытые интерактивно, выполняются не в безопасном режиме, поэтому рекомендуется реализация механизма открытия внешних обработок в безопасном режиме, а так же на уровне прав запретить пользователю интерактивное открытие внешних обработок.
    Для запрета интерактивного открытия обработок, во всех ролях, назначенных пользователю, необходимо снять право «Интерактивное открытие внешних обработок» (см. рисунок 1).

    Рисунок 1. Права интерактивного открытия внешних обработок/отчетов

    Право «Интерактивное открытие внешних обработок» никак не влияет на объект ВнешниеОбработки.

    Программное открытие внешних отчетов, аналогично внешним обработкам, только следует использовать объект глобального контекста ВнешниеОтчеты, который имеет тип ВнешниеОтчетыМенеджер .

    голоса
    Рейтинг статьи
    Ссылка на основную публикацию
    ВсеИнструменты
    Adblock
    detector