Работа с правами доступа в конфигурации «Управление производственным предприятием» (УПП) — одна из самых трудоемких задач для разработчика. Создание новой роли «с нуля», особенно когда требуется предоставить доступ к сотням объектов (документам, справочникам, регистрам), превращается в монотонный процесс «прощелкивания» каждого реквизита в конфигураторе. В этой статье мы разберем, как автоматизировать этот процесс, какие инструменты использовать и как сделать настройку прав изящной и быстрой.
Одним из самых эффективных способов решения проблемы является использование специализированного софта. Проанализируем возможности комплекса «Инструменты разработчика» (IR). Это мощный набор инструментов, который позволяет работать с метаданными гораздо быстрее, чем стандартный конфигуратор 1С.
Для нашей задачи наиболее полезен модуль «Редактор прав доступа». Рассмотрим его преимущества:
Часто возникает вопрос: нужно ли встраивать такие инструменты в саму базу УПП? На самом деле, в этом нет необходимости. Разберем по шагам, как запустить инструменты в портативном режиме:
ирПортативный.epf.Это позволяет анализировать роли и даже вносить некоторые изменения (в зависимости от версии) без монопольного доступа и лишних обновлений конфигурации.
Если задача стоит создать роль, которая очень похожа на существующую, проанализируем метод «от обратного». Вместо того чтобы создавать пустую роль и добавлять в нее объекты, выполним следующие действия:
Важный момент: В УПП права на объекты часто связаны. Например, если вы даете право на проведение документа, обязательно нужно дать права на чтение и запись в соответствующие регистры накопления и бухгалтерии, иначе пользователь получит ошибку прав доступа при попытке проведения.
Самая большая сложность в УПП — это не просто «галочки» на объектах, а ограничения на уровне записей. При создании новой роли вручную легко забыть про RLS. Если не настроить ограничения по Организациям или Складам, пользователь либо увидит все данные, либо (что чаще в УПП) система будет выдавать ошибку «У пользователя недостаточно прав для исполнения операции над базой данных».
Посмотрим на пример того, как правильно переносить RLS:
#ОрганизацияВШапке("Организация")).Без использования шаблонов RLS новая роль в 90% случаев будет работать некорректно в многофирменном учете.
Для продвинутых разработчиков существует способ массового редактирования ролей через XML-файлы. Выясним, как это работает:
Read и View на все справочники, это можно сделать автозаменой текста в XML.Этот метод требует осторожности, но он в разы быстрее, чем работа мышкой в интерфейсе 1С.
Прежде чем создавать новую роль в конфигураторе, проанализируем, нельзя ли решить задачу в режиме «1С:Предприятие». В УПП реализован механизм Профилей полномочий пользователей.
Вместо создания одной роли «БухгалтерМатериалист» можно:
Чтобы понять, к каким еще таблицам (регистрам, справочникам) нужно дать доступ для корректной работы документа, воспользуемся консолью запросов или инструментом «Анализ движений документа». Если документ ПоступлениеТоваровУслуг делает движения по регистру Закупки, то в роли «БухгалтерМатериалист» обязательно должны быть права на этот регистр. Использование отчетов по метаданным позволяет получить список всех связанных регистров за считанные секунды.
Резюмируем: Для эффективной работы с ролями в УПП забудьте о ручном проставлении галочек. Используйте портативные «Инструменты разработчика» для массового редактирования, копируйте шаблоны RLS из типовых ролей и рассматривайте возможность комбинирования прав через Профили полномочий в пользовательском режиме.