Как настроить права на отчеты ОСВ и «Остатки товаров» для новой роли в 1С:Бухгалтерия 3.0?

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

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

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

Шаг 1. Настройка прав на уровне команд и интерфейса подсистем

Первая проблема, с которой мы сталкиваемся: флаги «Чтение» и «Использование» для объекта отчета установлены, но сам отчет не появляется в меню и недоступен для добавления. Выясним причину этого поведения платформы.

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

  1. Откроем дерево метаданных, найдем требуемый отчет (например, ОборотноСальдоваяВедомость или ОстаткиТоваров).
  2. Развернем ветку отчета и найдем раздел Команды.
  3. Для каждой команды открытия отчета в свойствах новой роли обязательно установим флаг Просмотр.

Также важно обратить внимание на подсистемы. Если отчет должен отображаться в конкретном разделе меню (например, «Склад» или «Отчеты»), новая роль должна обладать правом Просмотр на саму подсистему и входящие в нее элементы интерфейса. Обратите внимание, что устаревшие подсистемы (например, содержащие в названии постфикс «82», такие как НоменклатураИСклад82) в современных версиях БП 3.0 не используются. Нам необходимо давать права только на актуальные подсистемы конфигурации.

Шаг 2. Разрешение прав на источники данных для ОСВ

После того как отчет появился в интерфейсе («Все функции» или командная панель), при попытке его сформировать мы можем получить ошибку вида: Отчет не сформирован! Поле объекта не обнаружено (ОсновнойНаборДанных). Или система выдаст предупреждение о нехватке прав к таблице.

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

Шаг 3. Устранение проблемы «пустого отчета» (на примере «Остатки товаров»)

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

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

  1. Выясним, из какого регистра отчет получает данные. Для отчета «Остатки товаров» (или «Остатки материалов») источником служит регистр накопления (например, РегистрНакопления.ТоварыНаСкладах).
  2. В конфигураторе для нашей новой роли найдем этот регистр накопления.
  3. Установим флаги Чтение и Просмотр для данного регистра.

Шаг 4. Настройка динамических панелей отчетов (БСП «Варианты отчетов»)

В БП 3.0 интерфейс разделов (в том числе раздел «Отчеты») формируется динамически с использованием подсистемы БСП «Варианты отчетов». ОСВ и другие стандартные отчеты выводятся в интерфейс из специального справочника вариантов отчетов, а не только напрямую из структуры метаданных подсистем.

Чтобы отчеты корректно регистрировались в панели отчетов и отображались в разделах программы, у новой роли обязательно должны быть права на служебные объекты БСП:

Шаг 5. Обновление вспомогательных данных информационной базы

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

Рассмотрим, как запустить обновление вспомогательных данных БСП:

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

/С ЗапуститьОбновлениеИнформационнойБазы

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

Способ 2. Программный вызов обновления параметров работы пользователей
Если мы хотим выполнить обновление программно из консоли кода или внешней обработки, выполним следующий вызов:


Константы.ПараметрыРаботыПользователей.СоздатьМенеджерЗначения().ОбновитьОбщиеПараметры();

После выполнения этой команды кэш ролей обновится, и права начнут применяться в строгом соответствии с нашими настройками в конфигураторе.

Рекомендуемый подход: Использование расширений конфигурации

В современной практике разработки под 1С крайне не рекомендуется вносить изменения напрямую в типовую конфигурацию (снимать с поддержки, создавать роли в основной конфигурации). Это существенно усложняет последующие обновления программы.

Разберем правильный и безопасный подход с использованием расширений:

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

Благодаря этому подходу конфигурация останется на полной поддержке, а все доработки прав доступа будут локализованы в безопасном контейнере расширения.

← На главную