Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Волшебство программирования на 1С:Предприятие 7.7 и 8.0 . Выпуск 89


Информационный Канал Subscribe.Ru

Волшебство программирования на 1С:Предприятие 7.7 и 8.0
Выпуск 89 / 01.03.2005

v8: Права пользователей в 1С:Предприятии 8.0

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


1.1.1 Базовые возможности


Список пользователей задается в Конфигураторе, редактируется "на лету", т.е. без монопольного захвата базы.

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

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

Два режима идентификации:

∙    аутентификация средствами 1С:Предприятия (логин и пароль):
при запуске пользователь должен выбрать (ввести) свое имя и ввести пароль
можно настроить ярлык для быстрого доступа к базе

∙    аутентификация средствами Windows (имя пользователя в домене)
пароль вводить вообще не нужно, просто запустить 1С и выбрать базу
меньше списков пользователей и паролей – меньше работы администратору

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

--------
1.1.2 Ограничения на права доступа (на уровне записей - RLS)

Новый релиз позволяет реализовать то, что называется RLS – Record Level Security, или «ограничение доступа на уровне записей». Для каждого вида права из нижеперечисленных можно задавать ограничения:
∙    Чтение
∙    Добавление
∙    Изменение
∙    Удаление

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

Если условие дает значение ИСТИНА, то доступ разрешен, иначе – доступ запрещен.

Ограничение на право «чтение» может задаваться для каждого поля в отдельности или для списка полей. То есть можно организовать так, чтобы поля ЗакупочнаяЦена и МаксимальнаяСкидка справочника Номенклатура были видны, если только уровень доступа пользователя (число) позволяет обращаться к данной позиции номенклатуры.

В условии запись «МаксимальныйУровеньДоступа» является ссылкой на параметр сеанса (см. v8: Параметры сеанса). Так же можно задействовать поле «Пользователь», например, организовать доступ менеджеров к «своим» контрагентам.

Заданные ограничения добавляются системой к КАЖДОМУ запросу, даже тем, которые платформа генерирует самостоятельно для реализации пользовательского интерфейса или других функций. Отсюда – значительное снижение производительности. Поля, по которым накладывается ограничение (УровеньДоступа в вышеприведенном запросе) должны быть проиндексированы.

Ограничения на доступ к данным работают в двух режимах:

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

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

--------
1.1.3 Ключевое слово РАЗРЕШЕННЫЕ языка запросов

В язык запросов было введено новое ключевое слово «Разрешенные», которое пишется сразу после «Выбрать». Если оно указано, то запрос выбирает только разрешенные записи, а остальные «не видит».

Такое простое изменение конфигурации возможно путем замены в каждом запросе «ВЫБРАТЬ» на «ВЫБРАТЬ РАЗРЕШЕННЫЕ».

--------
1.1.4 Привилегированные общие модули

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

В трехзвенной архитектуре (клиент-сервер) привилегированные модули выполняются на сервере 1С:Предприятия 8.0.

«Защитное» программирование привилегированных процедур и функций

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

--------
1.1.5 Неожиданные эффекты

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

∙ резкому снижению производительности (спр. Контрагенты – 10 тысяч элементов, спр. Номенклатура – 30 тыс. элементов, регистр ЗначенияСвойствОбъектов – 50 тыс. записей).

∙ нарушению прав доступа в неожиданных местах, например, при формировании отчета по остаткам сработает ограничение на доступ к складам, возникнет - исключение.

∙ если используется ключевое слово Разрешенные или динамические списки, то возможны неожиданные визуальные эффекты:

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

  б) в справочнике пропали все элементы, потому что при задании ограничения не был учтен доступ к ГРУППАМ иерархического справочника

Статья опубликована в новой базе знаний: http://kb.mista.ru/article.php?id=3


База знаний kb.mista.ru

База знаний kb.mista.ru - это организованное хранилище статей по различным областям, в основном по 1С:Предприятие 7.7 и 8.0. База знаний состоит из статей, взаимосвязанных друг с другом с помощью гиперссылок и отсортированных по рубрикам.

Структура базы знаний следующая:

Раздел "1С" - 1С:Предприятие 7.7 и 8.0

  по версиям: 7.7 и 8.0
  по теме:
      Общие вопросы
      Приемы программирования
      Объекты конфигурации
     Администрирование
      Типовые конфигурации

Раздел "IT" - Информационные технологии

Раздел "LIFE" - О жизни

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

----------
ИНЖЕНЕРЫ ЗНАНИЙ

Право добавления новых и редактирования существующих статей есть только у доверенных людей - инженеров знаний. Стать инженером знаний несложно:
1. Нужно согласие самого человека, желающего стать инженером знаний.
2. Нужно набрать 3 голоса "за" модераторов и НЕ набрать 3 голоса "против"

Чтобы голосование по вашей кандидатуре прошло успешно нужно быть уравновешенным человеком, желательно проявить себя на форуме http://www.forum.mista.ru, отвечая на вопросы, давая развернутые ответы. Список инженеров знаний будет опубликован на специальной странице:

-----------
РЕДАКТИРОВАНИЕ СТАТЕЙ

Редактировать статью может любой инженер знаний, для чего он должен зайти в нее и щелкнуть ссылку "Редактировать статью". На время редактирования устанавливается блокировка и другой инженер знаний не может отредактировать эту статью (похоже на "хранилище конфигурации" в 8.0). Блокировка автоматически снимается при сохрании статьи. Кроме того, инженер знаний может снять блокировку без сохранения (освободить статью).

Вся история редактирования сохраняется и любая предыдущая версия статьи (редакция) может быть просмотрена.

Идея позаимствована у ru.wikipedia.org - свободной энциклопедии.


Смелее задавайте вопросы по 8.0 и 7.7 на форуме www.forum.mista.ru
Заходите на Волшебный форум. С нами интересно!


См. также:
1С:Предприятие 7.7: учебник, курс лекций, статьи, ссылки

Официальный сайт рассылки - www.mista.ru
Волшебный форум -
www.forum.mista.ru
Архив выпусков этой рассылки - http://www.mista.ru/subscribe

База знаний kb.mista.ru (новое!)

С уважением,
Станислав Митичкин (Волшебник)
stasmit@mail.ru


http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.magic1c
Отписаться

В избранное