Почему в УТ 11.5 типовой отчет не выводит данные при наличии прав на регистры и как это исправить

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

При настройке прав доступа в современных конфигурациях на базе 1С:Библиотеки стандартных подсистем (БСП), таких как Управление торговлей 11.5, разработчики часто сталкиваются с парадоксальной ситуацией. Пользователю даны права на чтение всех необходимых справочников и регистров накопления, данные успешно получаются через консоль запросов, но при формировании типового отчета (например, ВедомостьПоТоварамНаСкладах или аналогичный внешний отчет) колонки с ресурсами (количество, суммы) остаются пустыми, а настройки отборов не открываются. Разберем детально, почему так происходит и как правильно настроить систему.

Анализ механизма работы отчетов в УТ 11.5

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

Шаг 1. Разграничение прав «Чтение» и «Просмотр»

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

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

Шаг 2. Подсистема управления вариантами отчетов

В конфигурации Управление торговлей 11.5 права на отчеты управляются не только ролями, но и объектами подсистемы ВариантыОтчетов. Чтобы пользователь мог полноценно взаимодействовать с отчетом, ему необходимы права на:

  1. Чтение справочника ВариантыОтчетов.
  2. Чтение и просмотр справочника ПредопределенныеВариантыОтчетов.
  3. Доступ к регистру сведений НастройкиВариантовОтчетов.

Без прав на эти объекты пользователь может запустить форму отчета, но механизм БСП не сможет загрузить стандартные настройки компоновки, что приведет к «пустому» отчету без возможности выбрать группировки или отборы.

Шаг 3. Влияние функциональных опций

Проанализируем ситуацию с функциональными опциями. В УТ 11 почти каждое поле в отчетах привязано к определенной опции (например, ИспользоватьМногоСкладов, ИспользоватьХарактеристикиНоменклатуры и т.д.). Система компоновки данных проверяет эти опции автоматически.

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

Шаг 4. Регистрация и исправление аналитики учета

Типовые отчеты в УТ 11.5 часто строятся не по «сырым» регистрам накопления, а с использованием ключей аналитики. Например, данные могут браться из регистра, но связываться с регистром сведений АналитикаУчетаНоменклатуры. Рассмотрим по шагам, что нужно сделать:

  1. Проверьте, есть ли у пользователя права на чтение всех регистров, начинающихся с АналитикаУчета....
  2. Если прав на аналитику нет, запрос в отчете не сможет сопоставить идентификатор из регистра накопления с конкретным товаром или складом, и ресурсы (количество) обнулятся.

Шаг 5. Обязательные сервисные роли

Для корректной работы СКД в интерактивном режиме (вывод на экран, расшифровка, сохранение настроек) пользователю недостаточно иметь права только на данные. Выясним список необходимых системных прав:

Шаг 6. Обновление вспомогательных данных метаданных

Если вы добавили роль через расширение и все права настроены верно, но отчет все равно пуст, возможно, система еще «не знает» о новых связях объектов метаданных. В УТ 11 существует механизм кэширования идентификаторов. Попробуем выполнить принудительное обновление:

Запустите систему в режиме «1С:Предприятие» под пользователем с полными правами и выполните в консоли кода (или через обработку «Групповое изменение реквизитов» для вызова метода) обновление справочника идентификаторов объектов метаданных. Также может помочь запуск с параметром:

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

Шаг 7. Проверка «Безопасного режима» расширения

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

Пример настройки прав на уровне кода (RLS)

Иногда проблема кроется в том, что в типовых отчетах используется механизм РАЗРЕШЕННЫЕ. В консоли запросов вы могли его убирать, а в отчете он зашит программно. Чтобы данные появились, убедитесь, что группы доступа пользователя корректно заполнены. Если в системе включен RLS (Ограничение доступа на уровне записей), то даже при наличии прав на справочник Номенклатура, пользователь не увидит данные в отчете, если у него не настроены Группы доступа номенклатуры.

Проверить это можно простым кодом в консоли под проблемным пользователем:


Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |   ТоварыНаСкладахОстатки.В НаличииОстаток
    |ИЗ
    |   РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки";
Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
    Сообщить("Проблема в RLS или отсутствии данных в регистре под этими правами");
КонецЕсли;

Подводя итог, для исправления работы типового отчета в УТ 11.5 недостаточно просто дать права на РегистрНакопления. Нужно обеспечить комплексный доступ к интерфейсным правам (Просмотр), функциональным опциям, подсистеме вариантов отчетов и регистрам аналитики. Только в этом случае компоновщик данных сможет собрать полноценный макет отчета с заполненными ресурсами и активными фильтрами.

← На главную