Как в 1С:Комплексная автоматизация 2 дать права на новые объекты всем пользователям (аналог роли «Пользователь» из УПП)?

Программист 1С v8.3 (Управляемые формы) 1С:Комплексная автоматизация IT и автоматизация бизнеса
← На главную

Переход со старых конфигураций на платформе 1С:Предприятие 8 (таких как Управление производственным предприятием 1.3) на современные прикладные решения (Комплексная автоматизация 2, ERP Управление предприятием) сопряжен с серьезным изменением архитектуры систем. Одним из наиболее значимых изменений является механизм разграничения прав доступа.

В этой статье мы подробно разберем, почему старый и привычный многим подход «скопировать роль Пользователь и добавить туда права» больше не работает в современных конфигурациях. Мы проанализируем архитектуру Библиотеки стандартных подсистем (БСП), на которой построена КА 2, и рассмотрим по шагам, как правильно реализовать доступ к новым объектам для всех пользователей системы.

Выясним причину: почему подход из УПП не работает в КА 2?

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

В 1С:Комплексная автоматизация 2 (как и в 1С:ERP, и в 1С:УТ 11) администрирование прав полностью перенесено в режим «1С:Предприятие». Попытка использовать старые привычки в новой среде приведет к ряду проблем:

  1. Автоматическое затирание ручных настроек. Если вы зайдете в Конфигуратор и вручную назначите роль пользователю, система БСП при первом же обновлении или редактировании прав этого пользователя в режиме «1С:Предприятие» сотрет ваши ручные изменения. Списки ролей пользователей жестко синхронизируются со справочником групп доступа.
  2. Проблема с полными правами. В БСП заложен алгоритм оптимизации: пользователям с ролью ПолныеПрава или АдминистраторСистемы другие вспомогательные роли физически не назначаются в СУБД, так как администратор и без них имеет неограниченный доступ ко всему. Попытка завязать какую-то логику на обязательное наличие определенной роли у всех без исключения (включая администраторов) в режиме предприятия не сработает.

Проанализируем ситуацию: какие роли пришли на смену роли «Пользователь»?

В современных конфигурациях единая роль Пользователь была разделена на множество мелких «атомарных» ролей. Без них пользователь физически не сможет запустить систему или выполнять простейшие интерфейсные действия. Рассмотрим основные из них:

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

Разберем по шагам правильный алгоритм добавления прав

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

Шаг 1. Действия в Конфигураторе

Сначала подготовим метаданные нашей роли. Выполним следующие действия:

  1. Создадим новую отдельную роль. Дадим ей понятное имя, например, ДобавлениеИзменениеМоихОбъектов.
  2. Настроим в ней права (например, Чтение, Просмотр, Добавление, Изменение) только на наши новые добавленные объекты.
  3. Важное правило: убедимся, что у созданной роли снят флаг Устанавливать права для новых объектов. Согласно стандартам разработки, этот флаг должен быть взведен исключительно у роли ПолныеПрава.

Шаг 2. Обновление вспомогательных данных

Современная БСП хранит информацию о метаданных в специальном справочнике. Чтобы система «увидела» нашу новую роль в режиме «1С:Предприятие», выполним обновление вспомогательных данных:

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

Справочники.ИдентификаторыОбъектовМетаданных.ОбновитьДанныеСправочника();

Шаг 3. Действия в режиме «1С:Предприятие»

Теперь свяжем нашу роль с пользователями без программирования. Посмотрим на этот процесс пошагово:

  1. Перейдем в раздел НСИ и администрирование -> Настройки пользователей и прав -> Профили групп доступа.
  2. Создадим новый профиль, назовем его, например, Дополнительные права для всех.
  3. На вкладке Разрешенные действия (роли) найдем нашу новую роль ДобавлениеИзменениеМоихОбъектов и отметим ее галочкой. Нажмем кнопку «Записать и закрыть».
  4. Перейдем в справочник Группы доступа и создадим новую группу доступа.
  5. В качестве профиля укажем только что созданный нами профиль Дополнительные права для всех.
  6. В табличную часть Участники группы добавим предопределенную группу Все пользователи.

Обратите внимание: группу Все пользователи не нужно создавать вручную. Она создается автоматически платформой и БСП. Любой новый пользователь, заведенный в системе, автоматически становится участником этой группы, а значит, мгновенно унаследует права вашей новой роли!

Рассмотрим современную альтернативу: использование расширений

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

Разберем по шагам, как это сделать:

  1. Создадим новое расширение конфигурации.
  2. Добавим в расширение наши новые объекты (справочники, документы) и создадим там же новую роль.
  3. Перейдем в свойства нашего расширения. Найдем свойство Использовать основные роли для всех пользователей и установим для него значение Истина.
  4. Сделаем созданную в расширении роль Основной ролью данного расширения.

Благодаря этому свойству платформа автоматически назначит данную роль абсолютно всем пользователям информационной базы при подключении расширения. Вам даже не потребуется заходить в режим «1С:Предприятие» и настраивать профили групп доступа!

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

Подведем итоги

Мы рассмотрели, как изменилась концепция работы с правами при переходе от УПП к КА 2. Отказ от прямого редактирования базовых ролей в пользу создания собственных атомарных ролей и их связывания через профили групп доступа и предопределенную группу «Все пользователи» — это стандарт, который гарантирует стабильную работу системы и легкое обновление конфигурации в будущем.

← На главную