Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Разграничение доступа в 1С:Предприятии 8          
Batchir Подменю пользователя
сообщение 09.02.09, 11:37
Сообщение #1

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1426 раз
Рейтинг: 0

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

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



Права

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

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

В отличие от интерактивных, обычные права проверяются во всех случаях (обращения из встроенного языка, Automation и т.д.) и включают в себя аналогичные интерактивные права - как, например, "Удаление" и "Интерактивное удаление". Устанавливая такие права в "запрещено", разработчик полностью отключает определяемый этими правами доступ к объектам. В случае если доступ к объектам все же требуется (как в вышеописанном примере для запроса данных), можно запретить только интерактивный доступ.

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

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

Роли

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

Как установка прав, так и роли могут проверяться во встроенном языке 1С:Предприятия 8 - для этого служат соответственно функции ПравоДоступа() и РольДоступна(). Списки прав для объектов фиксированы и не изменяются, поэтому для проверки возможности некоторого специфического способа доступа (например, возможности печати чеков на кассе) можно использовать два различных подхода:
проверять доступность уже существующей роли (например, "Кассир"); 
создать отдельную роль и затем проверять во встроенном языке доступность этой роли при доступе к объекту (например, "ПечатьЧеков"). 

Для вышеприведенного примера Кассир, Менеджер, Управляющий логично реализовать именно как роли - различным сочетаниям этих ролей соответствуют пользователи.


Пользователи

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

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 24.04.24, 14:07
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!