Переход со старых конфигураций на платформе 1С:Предприятие 8 (таких как Управление производственным предприятием 1.3) на современные прикладные решения (Комплексная автоматизация 2, ERP Управление предприятием) сопряжен с серьезным изменением архитектуры систем. Одним из наиболее значимых изменений является механизм разграничения прав доступа.
В этой статье мы подробно разберем, почему старый и привычный многим подход «скопировать роль Пользователь и добавить туда права» больше не работает в современных конфигурациях. Мы проанализируем архитектуру Библиотеки стандартных подсистем (БСП), на которой построена КА 2, и рассмотрим по шагам, как правильно реализовать доступ к новым объектам для всех пользователей системы.
В старой доброй УПП 1.3 роли назначались пользователям напрямую в Конфигураторе. Существовала одна большая базовая роль Пользователь, которая была назначена абсолютно каждому сотруднику, имеющему доступ к базе. Программисты часто использовали ее для быстрого внедрения новых доработок: достаточно было добавить права на новый справочник или документ в эту роль, и объект автоматически становился доступен всем.
В 1С:Комплексная автоматизация 2 (как и в 1С:ERP, и в 1С:УТ 11) администрирование прав полностью перенесено в режим «1С:Предприятие». Попытка использовать старые привычки в новой среде приведет к ряду проблем:
ПолныеПрава или АдминистраторСистемы другие вспомогательные роли физически не назначаются в СУБД, так как администратор и без них имеет неограниченный доступ ко всему. Попытка завязать какую-то логику на обязательное наличие определенной роли у всех без исключения (включая администраторов) в режиме предприятия не сработает.В современных конфигурациях единая роль Пользователь была разделена на множество мелких «атомарных» ролей. Без них пользователь физически не сможет запустить систему или выполнять простейшие интерфейсные действия. Рассмотрим основные из них:
БазовыеПраваБСП — отвечает за доступ к системным механизмам (работа с дополнительными реквизитами, базовыми классификаторами, просмотр общих разделов).БазовыеПраваКА (или БазовыеПраваУТ / БазовыеПраваERP в зависимости от конфигурации) — обеспечивает видимость общих прикладных объектов (чтение валют, просмотр списка организаций, базовые константы).ЗапускТонкогоКлиента / ЗапускВебКлиента — дает право на запуск клиентского приложения.ВыводНаПринтерВФайлВБуферОбмена — критически важная роль, без которой у пользователя будет заблокирована кнопка печати и сохранения любых табличных документов в Excel.СохранениеДанныхПользователя — позволяет системе запоминать персональные настройки интерфейса, ширину колонок в списках и последние открытые документы.Пытаться модифицировать эти роли крайне не рекомендуется, так как они регулярно обновляются поставщиком конфигурации. Любое изменение приведет к трудностям при последующих обновлениях.
Для того чтобы предоставить доступ к новым объектам конфигурации всем пользователям без изменения типовых ролей, мы применим стандартный и безопасный метод, рекомендуемый фирмой «1С».
Сначала подготовим метаданные нашей роли. Выполним следующие действия:
ДобавлениеИзменениеМоихОбъектов.Устанавливать права для новых объектов. Согласно стандартам разработки, этот флаг должен быть взведен исключительно у роли ПолныеПрава.Современная БСП хранит информацию о метаданных в специальном справочнике. Чтобы система «увидела» нашу новую роль в режиме «1С:Предприятие», выполним обновление вспомогательных данных:
Обычно это происходит автоматически при первом запуске предприятия после изменения номера версии конфигурации. Если вы ведете разработку «на лету» без изменения версии, можно вызвать обновление программно через консоль кода:
Справочники.ИдентификаторыОбъектовМетаданных.ОбновитьДанныеСправочника();
Теперь свяжем нашу роль с пользователями без программирования. Посмотрим на этот процесс пошагово:
Дополнительные права для всех.ДобавлениеИзменениеМоихОбъектов и отметим ее галочкой. Нажмем кнопку «Записать и закрыть».Дополнительные права для всех.Обратите внимание: группу Все пользователи не нужно создавать вручную. Она создается автоматически платформой и БСП. Любой новый пользователь, заведенный в системе, автоматически становится участником этой группы, а значит, мгновенно унаследует права вашей новой роли!
Если вы хотите обновлять систему действительно «за полчаса» и не снимать основную конфигурацию с поддержки, лучшим решением будет вынос ваших доработок в Расширение конфигурации. Механизм расширений предлагает невероятно удобный способ назначения прав всем пользователям.
Разберем по шагам, как это сделать:
Истина.Благодаря этому свойству платформа автоматически назначит данную роль абсолютно всем пользователям информационной базы при подключении расширения. Вам даже не потребуется заходить в режим «1С:Предприятие» и настраивать профили групп доступа!
Важный нюанс при работе с расширениями: не забудьте заимствовать в ваше расширение типовую роль ПолныеПрава. В рамках этой роли в расширении обязательно нужно явно предоставить доступ к вашим новым объектам. В противном случае администраторы системы (пользователи с полными правами) будут получать ошибку «Нарушение прав доступа» при попытке открыть ваши объекты, так как по умолчанию расширение не предоставляет им права автоматически.
Мы рассмотрели, как изменилась концепция работы с правами при переходе от УПП к КА 2. Отказ от прямого редактирования базовых ролей в пользу создания собственных атомарных ролей и их связывания через профили групп доступа и предопределенную группу «Все пользователи» — это стандарт, который гарантирует стабильную работу системы и легкое обновление конфигурации в будущем.