Разработка отчетов на системе компоновки данных (СКД) в экосистеме 1С — задача стандартная, но при переносе готового решения в рабочую базу под ограниченные права пользователей разработчики часто сталкиваются с неприятным сюрпризом. Под учетной записью с полными правами отчет функционирует идеально, отображая все элементы управления. Однако стоит зайти под пользователем с ограниченными правами, как кнопка «Настройки» на форме отчета бесследно исчезает. При этом права на сам отчет и все используемые в нем справочники, документы и регистры добавлены в конфигураторе и назначены пользователю.
Давайте подробно разберем, почему возникает эта проблема в конфигурациях, использующих Библиотеку стандартных подсистем (БСП) — таких как ЗУП 3.1, ERP 2, Комплексная автоматизация или Управление торговлей, и выясним, как вернуть пользователям возможность настраивать отчеты.
В современных конфигурациях 1С, построенных на базе БСП, управление вариантами отчетов и правами на их изменение вынесено на уровень специальной подсистемы. Простого доступа к метаданным самого отчета на уровне роли (права «Просмотр» и «Использование») недостаточно для полноценной работы с его структурой.
Для того чтобы у пользователя появилась возможность открывать настройки отчета и изменять его структуру под свои нужды, в его профиль групп доступа обязательно должна быть включена роль «Добавление изменение личных вариантов отчета» (в метаданных она может называться ДобавлениеИзменениеЛичныхВариантовОтчетов).
Эта роль позволяет механизмам БСП открыть пользователю доступ к изменению группировок, полей, отборов и сортировок, а также сохранять измененные настройки в качестве индивидуальных пользовательских вариантов. Если у пользователя этой роли нет, система считает, что редактировать отчет ему запрещено, и скрывает соответствующую кнопку с формы.
Даже если вы добавили пользователю все необходимые роли БСП, кнопка «Настройки» может не появиться, если в назначенных ему ролях отключено стандартное право платформы «Сохранение данных пользователя». Разберем подробнее, как это работает:
Когда открывается форма отчета, платформа и механизмы БСП обращаются к хранилищу настроек для загрузки или сохранения параметров текущего пользователя. Если у пользователя нет права СохранениеДанныхПользователя, запись любых персональных настроек (включая настройки СКД, отборы, размеры окон и т. д.) блокируется на уровне ядра платформы. БСП определяет это ограничение программно и автоматически скрывает кнопку вызова настроек, так как пользователь физически не сможет их применить и сохранить.
Чтобы решить эту проблему, выполните следующие шаги:
Большинство нетиповых отчетов в современных конфигурациях не имеют собственных уникальных форм. Разработчики обычно оставляют поле «Вспомогательная форма отчета» пустым, доверяя генерацию интерфейса системе. В этом случае БСП подставляет общую форму ОбщиеФормы.ФормаОтчета.
В момент создания этой формы на сервере срабатывает программный код инициализации панели инструментов. БСП анализирует права текущего пользователя и заполняет структуру параметров отчета. Посмотрим на упрощенную схему того, как это происходит под капотом библиотечных модулей:
ПараметрыОтчета = ВариантыОтчетов.ПолучитьПараметрыЭкраннойФормы(ЭтотОбъект);
Если Не ПравоДоступа("ИнтерактивнаяПометкаУдаленияПроведение", Метаданные.Справочники.ВариантыОтчетов) Тогда
// Если у пользователя нет прав на запись вариантов, блокируются расширенные настройки
ПараметрыОтчета.РазрешеноИзменятьСтруктуру = РольДоступна("ДобавлениеИзменениеЛичныхВариантовОтчетов");
КонецЕсли;
Если Не ПараметрыОтчета.РазрешеноИзменятьСтруктуру Тогда
Элементы.КнопкаНастройки.Видимость = Ложь;
КонецЕсли;
Если параметры РазрешеноИзменятьСтруктуру или РазрешеноИзменятьВарианты принимают значение Ложь, командная панель перестраивается, и кнопка настроек скрывается. Наличие роли «Добавление изменение личных вариантов отчета» решает эту проблему, переводя флаг изменения структуры в значение Истина.
В некоторых случаях БСП требует явной регистрации новых нетиповых отчетов в своих внутренних реестрах. Если отчет добавлен в конфигурацию недавно, система может не знать о существовании его вариантов, из-за чего права доступа распределяются некорректно.
Чтобы зарегистрировать новый отчет в системе БСП и обновить права доступа к его вариантам, можно воспользоваться инструментами разработчика, поставляемыми вместе с дистрибутивом БСП. Для этого выполните следующие действия:
C:\Users\[ИмяПользователя]\AppData\Roaming\1C\1cv8\tmplts\1c\SSL\[ВерсияБСП]\ExtFiles\Инструменты разработчика\.ВариантыОтчетов и сопоставит его с существующими профилями безопасности.Если под ограниченными правами у пользователя пропала кнопка настроек СКД-отчета, пройдите по следующему чеклисту для быстрого решения проблемы:
Добавление изменение личных вариантов отчета (или она включена в его профиль групп доступа).Сохранение данных пользователя (SaveUserData).Чтение вариантов отчетов, которая обеспечивает базовый доступ к механизмам компоновки данных в интерфейсе БСП.Хранилище настроек. По умолчанию БСП рекомендует использовать ХранилищеВариантовОтчетов.Применение этих правил гарантирует, что интерфейс отчета будет формироваться корректно, предоставляя пользователям всю необходимую гибкость настроек СКД без предоставления избыточных полных прав администратора.