При настройке прав доступа в типовой конфигурации 1С:Бухгалтерия предприятия 3.0 (БП 3.0) специалисты часто сталкиваются с дилеммой: стандартные роли либо дают слишком много прав, либо их недостаточно для нормальной работы системы. Типичная задача — предоставить пользователю доступ только на чтение определенных разделов (например, «Продажи» и «Покупки»), полностью исключив видимость разделов «Банк и касса» и «Зарплата и кадры». Рассмотрим, почему стандартное копирование профилей не всегда работает и как элегантно решить эту задачу с помощью механизма расширений. Для быстрого решения этой задачи можно использовать готовое расширение для ограничения доступа пользователей только к определенным документам в 1С:Бухгалтерии 3.0.
Многие администраторы пытаются создать новый профиль, копируя штатный профиль Только просмотр. Однако при попытке исключить доступ к банковским или зарплатным документам выясняется, что за просмотр большинства объектов отвечает одна массивная роль — ЧтениеДанныхБухгалтерии. Если мы снимем эту роль в профиле, пользователь при попытке входа получит ошибку «Нарушение прав доступа» еще до загрузки главного меню.
Выясним причину: роль ЧтениеДанныхБухгалтерии в БП 3.0 содержит не только права на просмотр документов, но и критически важные права на чтение системных констант, технических справочников и параметров сеанса. Без доступа к этим «служебным» объектам программный код конфигурации (особенно механизмы Библиотеки стандартных подсистем) просто не может инициализировать интерфейс пользователя. Проанализируем ситуацию подробнее: система не может проверить функциональные опции, не может определить валюту учета или параметры заголовка программы, что приводит к аварийному завершению сеанса.
Для того чтобы 1С запустилась без использования «тяжелых» стандартных ролей, нам необходимо собрать «скелет» прав доступа. Разберем по шагам, какие стандартные роли должны быть включены в профиль группы доступа в любом случае:
ЗапускВебКлиента) — разрешает само открытие приложения.ИспользоватьНесколькоОрганизаций, ВалютаРегламентированногоУчета) и базовым классификаторам.Только обеспечив этот фундамент, мы можем переходить к настройке содержательной части прав через расширение.
Важно понимать технологическую особенность: роли в расширении работают только по принципу объединения (сложения) прав. Рассмотрим пример: если в основной конфигурации у пользователя есть роль с правом на чтение документа РеализацияТоваровУслуг, то добавление этого же документа в расширение и снятие галочки «Чтение» в новой роли не запретит доступ. Система увидит, что право разрешено хотя бы в одной из действующих ролей.
Поэтому правильная стратегия выглядит так:
Шаг 1. Создание расширения. Создадим новое расширение (тип «Адаптация») и снимем в его свойствах галочки «Безопасный режим» и «Защита от опасных действий», чтобы иметь возможность гибко управлять правами.
Шаг 2. Добавление объектов метаданных.
Нам не нужно добавлять в расширение всю конфигурацию. Выберем в дереве объектов основной конфигурации только те справочники и документы, которые нужны пользователю (например, Контрагенты, Номенклатура, РеализацияТоваровУслуг, ПоступлениеТоваровУслуг). Нажмем правую кнопку мыши и выберем Добавить в расширение.
Шаг 3. Создание роли в расширении.
В расширении создадим новую роль, например, пр_ПросмотрПродажиПокупки. Для добавленных объектов установим только права Чтение и Просмотр.
Важный нюанс: чтобы быстро настроить права, воспользуемся в окне редактирования роли кнопкой «Установить права по подсистемам». Выберем только подсистемы «Продажи» и «Покупки».
Шаг 4. Настройка прав на регистры.
Это критический момент, который часто упускают. Даже если вы закроете доступ к документам «Начисление зарплаты» или «Платежное поручение», пользователь может увидеть суммы выплат через Регистр бухгалтерии (Хозрасчетный), формируя отчет «Оборотно-сальдовая ведомость».
Чтобы исключить это, проанализируем ситуацию: нам нужно либо запретить чтение регистра Хозрасчетный целиком (но тогда не будут работать никакие отчеты), либо использовать RLS (Row Level Security).
Если задача стоит жестко — скрыть данные по счетам 50, 51, 70, то в нашей роли в расширении для объекта РегистрБухгалтерии.Хозрасчетный на право Чтение необходимо добавить условие (RLS):
Хозрасчетный ГДЕ НЕ (Счет.Код ПОДОБНО "50%" ИЛИ Счет.Код ПОДОБНО "51%" ИЛИ Счет.Код ПОДОБНО "70%")
Таким образом, даже в стандартных отчетах пользователь просто не увидит записей по этим счетам.
После обновления конфигурации базы данных перейдем в режим «1С:Предприятие»:
Базовые права БП (из основной конфигурации);Запуск тонкого клиента (из основной конфигурации);Просмотр продаж и покупок (наша роль из расширения).Итог: Мы получили конфигурацию, которая остается на полной поддержке. Мы не изменяли типовые роли, а создали «надстройку». Пользователь сможет успешно войти в систему, будет видеть только разрешенные документы, а при попытке сформировать отчеты по банку или зарплате получит пустой результат благодаря механизму RLS. Этот метод является наиболее профессиональным и безопасным при работе с типовыми решениями 1С.