В процессе разработки и модификации конфигураций на базе 1С часто возникает вопрос: как оптимизировать управление доступом, если пользователям нужны права как на типовой функционал, так и на добавленные нетиповые объекты? В данной статье мы разберем, почему попытка объединения нескольких ролей в одну «супер-роль» является ошибочным путем, и как построить систему прав, которая легко выдержит обновление типовых объектов.
На первый взгляд идея создания единой кастомной роли для конкретной должности кажется удобной. Однако на практике этот подход влечет за собой ряд критических проблем:
Вместо объединения нескольких ролей в одну, рассмотрим атомарный подход. Разделим права на максимально простые функциональные блоки. Например, создадим отдельные роли для чтения справочников, отдельные — для записи документов определенного вида.
Это позволяет нам комбинировать права как конструктор. Если пользователю нужно работать с нетиповым объектом, мы просто добавляем ему одну дополнительную роль, созданную специально для этой задачи, не затрагивая при этом настройки типовых объектов.
Когда вы добавляете свои собственные объекты (нетиповые документы, регистры, справочники), самым верным решением будет использование Расширений конфигурации. Это позволяет инкапсулировать права в рамках расширения.
Рассмотрим порядок действий для реализации этого метода:
Расширение конфигурации.Таким образом, типовая конфигурация остается «на замке» (на поддержке поставщика), а наши права живут изолированно. Это исключает конфликты при обновлении, так как метаданные типовой конфигурации не меняются.
Самый гибкий инструмент, который предоставляет нам БСП (Библиотека стандартных подсистем), — это Профили групп доступа. Этот механизм позволяет создавать наборы прав, включая в них любые сочетания ролей.
Почему это удобно:
Конфигуратор для назначения прав пользователю. Вы создаете профиль, добавляете туда типовые роли и свои кастомные роли из расширений, а затем просто присваиваете этот профиль пользователю.Работа в глубоко модифицированных конфигурациях требует дисциплины. Чтобы система прав не превратилась в «зоопарк», придерживайтесь следующих рекомендаций:
1. Документирование ролей. Обязательно ведите реестр своих ролей: что именно каждая из них делает и к какому функционалу дает доступ. Это поможет вам не создавать дубликаты.
2. Регулярное тестирование. При обновлении конфигурации поставщика обязательно проводите тестирование профилей доступа. Даже если права не менялись в ваших расширениях, логика работы типового функционала могла измениться, что потребует пересмотра набора ролей в профилях.
3. Разделение прав на чтение и запись. По возможности, следуйте принципу разделения прав на чтение и изменение/добавление. Например, создайте две роли:
// Пример логики разделения прав:
// Роль: ЧтениеДокументаРеализация
// Роль: ЗаписьДокументаРеализация
Такой подход позволяет давать пользователям права только на чтение (просмотр) определенных документов без возможности их правки, что является критичным для безопасности данных в крупных организациях.
Подводя итог: не пытайтесь ломать типовые роли, объединяя их в одну кастомную. Это путь к сложностям при каждом обновлении системы. Вместо этого используйте возможности Расширений для своих объектов и Профили групп доступа для гибкого назначения прав пользователям. Такой подход обеспечит стабильность вашей системы, легкость в обслуживании и чистоту кода.