1с отключить проверку прав

Объект 1С «Роли». Привилегированный режим 1С

Объект 1С «Роли»

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

Роль в конфигурации может соответствовать:

для работы которых предназначена данная конфигурация (например, «Администратор» или «Продавец»).

В процессе ведения списка пользователей прикладного решения каждому пользователю ставится в соответствие одна или несколько ролей (т.е. в версии 1C 8.х каждый пользователь может иметь несколько ролей).

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

Rol 1C 1

Rol 1C 2

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

Можно изначально выдать не полный доступ к справочнику, а отфильтровать с помощью RLS данные, на которые мы даем доступ.

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

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

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

Rol 1C 3

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

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

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

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

Источник

Использование привилегированного режима

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Программная работа с Ролями в 1С

Ограничение прав доступа в 1С

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

narushenie prav dostupa

В ролях можно управлять доступом не только на уровне объектов метаданных, но и на уровне объектов базы данных. Например, можно указать, что пользователю с определенной ролью разрешено изменять справочник Номенклатура, но только те его элементы, которые не помечены на удаление. Этот механизм называется RLS — Row Level Security (ограничение доступа на уровне записей).

Привилегированный режим работы

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

Включение привилегированного режима осуществляется методом

Получить текущее значение привилегированного режима можно функцией

которая возвращает значение типа Булево.

Безопасный режим работы

В безопасном режиме:

Включение безопасного режима осуществляется методом

Получить текущее значение безопасного режима можно функцией

которая возвращает значение типа Булево.

Программная работа с Ролями

Для проверки доступности Роли текущему пользователю:

Для определения права доступа (чтение, изменение и т.д.) к объекту метаданных:

Для проверки прав доступа текущего пользователя на объект метаданных:

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

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

Для получения представления права по имени:

ПредставлениеПрава ( ИмяПрава >)
//Пример использования:
Представление = ПредставлениеПрава ( «ИнтерактивноеОткрытиеВнешнихОбработок» );
// Переменная Представление будет содержать строку «Интерактивное открытие внешних обработок»

Программная работа с Ролями в БСП

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

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

Остались вопросы?
Спросите в комментариях к статье.

Источник

Система прав доступа

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

Кроме этого, для объектов, хранящихся в базе данных (справочники, документы, регистры и т. д.) могут быть определены права доступа к отдельным полям и записям. Например, пользователь может оперировать документами (накладными, счетами и т. д.) определенных контрагентов и не иметь доступа к аналогичным документам других контрагентов.

Для реализации ограничения прав доступа в прикладных решениях предназначены специальные объекты конфигурации — Роли. Подробнее.

Интерактивные и основные права

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

Основные и интерактивные права взаимосвязаны. Например, существует основное право Удаление, которому соответствуют два интерактивных права: Интерактивное удаление и Интерактивное удаление помеченных. Если пользователю запрещено Удаление, то и все интерактивные «удаления» также будут запрещены для него. В то же время, если пользователю разрешено Интерактивное удаление помеченных, это значит, что Удаление ему также разрешается.

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

Например, для того, чтобы пользователь имел право Итерактивное удаление помеченных, ему необходимо обладать интерактивными правом Редактирование. Это право, в свою очередь, требует наличия интерактивного права Просмотр.

Право Интерактивное удаление помеченных требует наличия основного права Удаление. Интерактивное право Редактирование требует наличия основного права Изменение. Интерактивное право Просмотр требует наличия основного права Чтение.

Кроме этого основные права Изменение и Удаление требуют наличия основного права Чтение.

Ограничение доступа к данным на уровне записей и полей

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

ogranichenie dostupa k dannym

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

ogranicheniya dlya razlichnyh polej tablicy

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

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

Параметры сеанса

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

Выполнение на сервере без проверки прав

Привилегированные модули

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

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

Привилегированный режим исполнения программного кода

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

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

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

Источник

Роли и права доступа в 1С 8.3

reklama http

Права доступа

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

roli

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

roli 1

Рассмотрим основные из них:

Права на прикладные объекты можно поделить на два типа:

Например, если для роли указать только четыре права на справочник:

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

Если добавить право на просмотр:

roli 5

То справочник будет доступен, но только для просмотра:

roli 6

Право редактирование позволит изменять существующие элементы, но в форме списка не будет кнопки добавления нового элемента:

roli 7

Если добавить право Интерактивное добавление, то появится кнопка для создания нового элемента:

roli 8

У справочника можно отдельно настроить права для предопределенных элементов:

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

У каждого объекта можно отдельно настраивать права на подчиненные объекты:

Например, можно дать все права на документ, а для табличной части дать права только на просмотр:

roli 12

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

roli 13

Также стоит отметить, что если у пользователя есть права доступа на документ, но нет прав на справочник, значения которого используются в документе, то вместо значения справочников будет надпись «Объект не найден», как на картинке выше в реквизите Вид расчета.

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

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

roli 14

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

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

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

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

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

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

roli 16

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

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

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

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

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

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

roli 17

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

roli 18

Роль Полные права

Как правило в конфигурации создается роль Полные права, которая предоставляет полный доступ к конфигурации. Чтобы установить все права для роли нужно в окне редактирования роли в верхнем меню выбрать Действия — Установить все права:

roli 19

А также внизу устанавливается флаг Устанавливать права для новых объектов:

roli 20

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

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

roli 21

В этом случае элемент справочника или документ будет удален без проверки ссылочной целостности. И если данный элемент был использован где-то, то на его месте будет надпись «Объект не найден»:

roli 22

Контроль ссылочной целостности подразумевает удаление объектов в два этапа:

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

roli 23

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

Основные роли

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

roli 26

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

Привилегированный режим

В привилегированном режиме не выполняется проверка прав доступа. Привилегированный режим можно включить только на сервере, на клиенте включение привилегированного режима игнорируется. Включается данный режим с помощью метода УстановитьПривилегированныйРежим. Если параметром передать Истина, то привилегированный режим будет включен. Если передать Ложь, то выключен:

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • 1с отборстрок в табличной части управляемые формы
  • 1с отбор строк табличной части управляемые формы