Как ограничить права доступа в 1С:Бухгалтерия 3.0 через расширение и обеспечить запуск программы

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

При настройке прав доступа в типовой конфигурации 1С:Бухгалтерия предприятия 3.0 (БП 3.0) специалисты часто сталкиваются с дилеммой: стандартные роли либо дают слишком много прав, либо их недостаточно для нормальной работы системы. Типичная задача — предоставить пользователю доступ только на чтение определенных разделов (например, «Продажи» и «Покупки»), полностью исключив видимость разделов «Банк и касса» и «Зарплата и кадры». Рассмотрим, почему стандартное копирование профилей не всегда работает и как элегантно решить эту задачу с помощью механизма расширений. Для быстрого решения этой задачи можно использовать готовое расширение для ограничения доступа пользователей только к определенным документам в 1С:Бухгалтерии 3.0.

Анализ проблемы: ловушка роли ЧтениеДанныхБухгалтерии

Многие администраторы пытаются создать новый профиль, копируя штатный профиль Только просмотр. Однако при попытке исключить доступ к банковским или зарплатным документам выясняется, что за просмотр большинства объектов отвечает одна массивная роль — ЧтениеДанныхБухгалтерии. Если мы снимем эту роль в профиле, пользователь при попытке входа получит ошибку «Нарушение прав доступа» еще до загрузки главного меню.

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

Минимальный набор ролей для запуска системы

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

  1. ЗапускТонкогоКлиента (или ЗапускВебКлиента) — разрешает само открытие приложения.
  2. БазовыеПраваБП — ключевая роль для «Бухгалтерии предприятия», дающая доступ к необходимым константам (например, ИспользоватьНесколькоОрганизаций, ВалютаРегламентированногоУчета) и базовым классификаторам.
  3. БазовыеПраваБСП — обеспечивает работу системных механизмов: версионирование, дополнительные реквизиты, настройки пользователей.
  4. ВыводНаПечатьСохранениеФайлов — если пользователю требуется просматривать печатные формы документов.

Только обеспечив этот фундамент, мы можем переходить к настройке содержательной части прав через расширение.

Работа с ролями в расширении: принцип сложения

Важно понимать технологическую особенность: роли в расширении работают только по принципу объединения (сложения) прав. Рассмотрим пример: если в основной конфигурации у пользователя есть роль с правом на чтение документа РеализацияТоваровУслуг, то добавление этого же документа в расширение и снятие галочки «Чтение» в новой роли не запретит доступ. Система увидит, что право разрешено хотя бы в одной из действующих ролей.

Поэтому правильная стратегия выглядит так:

Пошаговая инструкция по созданию ограниченной роли в расширении

Шаг 1. Создание расширения. Создадим новое расширение (тип «Адаптация») и снимем в его свойствах галочки «Безопасный режим» и «Защита от опасных действий», чтобы иметь возможность гибко управлять правами.

Шаг 2. Добавление объектов метаданных. Нам не нужно добавлять в расширение всю конфигурацию. Выберем в дереве объектов основной конфигурации только те справочники и документы, которые нужны пользователю (например, Контрагенты, Номенклатура, РеализацияТоваровУслуг, ПоступлениеТоваровУслуг). Нажмем правую кнопку мыши и выберем Добавить в расширение.

Шаг 3. Создание роли в расширении. В расширении создадим новую роль, например, пр_ПросмотрПродажиПокупки. Для добавленных объектов установим только права Чтение и Просмотр. Важный нюанс: чтобы быстро настроить права, воспользуемся в окне редактирования роли кнопкой «Установить права по подсистемам». Выберем только подсистемы «Продажи» и «Покупки».

Шаг 4. Настройка прав на регистры. Это критический момент, который часто упускают. Даже если вы закроете доступ к документам «Начисление зарплаты» или «Платежное поручение», пользователь может увидеть суммы выплат через Регистр бухгалтерии (Хозрасчетный), формируя отчет «Оборотно-сальдовая ведомость». Чтобы исключить это, проанализируем ситуацию: нам нужно либо запретить чтение регистра Хозрасчетный целиком (но тогда не будут работать никакие отчеты), либо использовать RLS (Row Level Security).

Если задача стоит жестко — скрыть данные по счетам 50, 51, 70, то в нашей роли в расширении для объекта РегистрБухгалтерии.Хозрасчетный на право Чтение необходимо добавить условие (RLS):


Хозрасчетный ГДЕ НЕ (Счет.Код ПОДОБНО "50%" ИЛИ Счет.Код ПОДОБНО "51%" ИЛИ Счет.Код ПОДОБНО "70%")

Таким образом, даже в стандартных отчетах пользователь просто не увидит записей по этим счетам.

Финальная настройка в режиме Предприятие

После обновления конфигурации базы данных перейдем в режим «1С:Предприятие»:

  1. Создадим новый Профиль групп доступа.
  2. В списке ролей этого профиля отметим:
    • Базовые права БП (из основной конфигурации);
    • Запуск тонкого клиента (из основной конфигурации);
    • Просмотр продаж и покупок (наша роль из расширения).
  3. Создадим Группу доступа, выберем созданный профиль и добавим в нее нашего пользователя.

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

← На главную