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

Курс

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

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

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

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

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

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

  • Администрирование и Администрирование данных — позволяют выполнять административные действия в конфигураторе: добавлять и удалять пользователей, настраивать права доступа пользователей, просматривать список активных пользователей, изменять конфигурацию, обновлять конфигурацию базы данных, выгружать и загружать базу данных в файл/из файла, просматривать журнал регистрации и прочие административные действия.
  • Обновление конфигурации базы данных — позволяет выполнить обновление конфигурации базы данных.
  • Активные пользователи — позволяет просматривать список активных пользователей.
  • Журнал регистрации — позволяет просматривать журнал регистрации.
  • Тонкий клиент, Веб-клиент, Мобильный клиент, Толстый клиент — право на запуск определенного вида клиента. Если нет хотя бы одного из этих прав, то пользователь не сможет войти в базу и получит ошибку «Нет прав на запуск требуемого вида клиента».
  • Режим технического специалиста — позволяет использовать функции для технического специалиста в пользовательском режиме.
  • Сохранение данных пользователя — позволяет сохранять различные настройки пользователя между сеансами работы, например размеры и положение окон, форм и т.п.
  • Интерактивное открытие внешних обработок, Интерактивное открытие внешних отчетов — позволяет в пользовательском режиме открывать внешние обработки и внешние отчеты через меню Файл — Открыть.
  • Вывод — позволяет распечатать на принтере данные в пользовательском режиме.

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

  1. Основные — проверка таких прав выполняется как при программном обращении к объектам, так и при интерактивном. Примеры таких прав:
  • Чтение
  • Добавление
  • Изменение
  • Удаление
  • Проведение
  • Отмена проведения
Права доступа
  1. Интерактивные — проверка таких прав выполняется при интерактивном обращении к объекту: просмотр в форме, редактирование в форме и т.д. Примеры таких прав:
  • Просмотр
  • Интерактивное добавление
  • Редактирование
  • Интерактивное удаление
  • Интерактивное проведение
  • Ввод по строке
Права доступа

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

  • Чтение
  • Добавление
  • Изменение
  • Удаление
Права доступа

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

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

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

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

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

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

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

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

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

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

  • Интерактивное удаление предопределенных
  • Интерактивная пометка на удаление предопределенных
  • Интерактивная снятие пометки на удаления предопределенных
  • Интерактивное удаление помеченных предопределенных
Права доступа

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

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

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

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

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

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

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

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

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

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

Роли

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

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

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

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

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

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

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

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

Роли

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

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

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

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

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

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

Все роли

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

Все роли

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

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

Установить все права

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

Устанавливать права для новых объектов

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

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

удаление элемента

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

Объект не найден

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

  1. Установка пометки на удаление
  2. Контроль наличия ссылок на помеченный объект в других объектах. Удаление будет выполнено только если нет ссылок на этот объект.

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

Удаление помеченных объектов

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

  • Интерактивное удаление
  • Интерактивное удаление помеченных
  • Интерактивное удаление предопределенных
  • Интерактивное удаление помеченных предопределенных
Интерактивное удаление

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

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

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

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

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

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

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

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

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

Безопасный режим используется при выполнении «ненадежного» программного кода. В данном режиме:

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

Для установки безопасного режима используется метод УстановитьБезопасныйРежим с параметром Истина. Для снятия — тот же метод с параметром Ложь:

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

Если в безопасном режиме попробовать выполнить запрещенное действие, то будет выброшено исключение «Установлен безопасный режим. Выполнение операции запрещено»:

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

Чтобы проверить включен ли безопасный режим используется метод БезопасныйРежим, который вернет Истина, если он включен и Ложь, если выключен:

Безопасный режим можно использовать для безопасного выполнения кода через Выполнить или Вычислить:

Программная работа с ролями и правами доступа

Для программной работы с ролями пользователя нужно обратиться к свойству Роли пользователя информационной базы:

После изменения состава ролей пользователю нужно перезайти.

Чтобы проверить доступна ли пользователю определенная роль используется метод РольДоступна. Если переданная параметром роль есть у пользователя, то метод вернет Истина, иначе Ложь:

Чтобы проверить определенное право доступа можно воспользоваться методом ПравоДоступа:

Если при выполнении методов РольДоступна или ПравоДоступа был установлен привилегированный режим, то оба метода всегда вернут Истина.

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


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

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

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