При разработке специализированных ролей в 1С:Бухгалтерия предприятия 3.0 (БП 3.0) программисты часто сталкиваются с ситуацией, когда добавленная в расширение роль и выбранные подсистемы не приводят к появлению нужного раздела в интерфейсе тонкого клиента. Разберем по шагам, почему это происходит и как правильно настроить командный интерфейс, чтобы пользователь видел только необходимые инструменты.
Рассмотрим ситуацию: вы создали расширение, добавили в него новую роль и подсистему (например, БухгалтерскиеОтчеты). Назначили права «Просмотр» на подсистему и права на сами отчеты. Однако в тонком клиенте раздел «Отчеты» все равно отсутствует, хотя через «Функции для технического специалиста» или «Все функции» отчеты открываются и работают корректно.
Основная причина кроется в архитектуре управляемого интерфейса и особенностях типовых конфигураций на базе БСП (Библиотеки стандартных подсистем). Выделим три ключевых фактора:
Проанализируем структуру подсистем в типовом решении. Часто разработчики ошибочно выбирают технические подсистемы вместо интерфейсных. Для вывода раздела «Отчеты» в БП 3.0 необходимо убедиться, что в расширение добавлены правильные объекты.
Посмотрим на пример из практики: подсистема СтандартныеОтчеты является дочерней для БухгалтерскиеОтчеты. Чтобы интерфейс отобразился корректно, необходимо добавить в расширение всю цепочку. Однако в БП 3.0 существует специальная структура для раздела «Отчеты». Как выяснилось в ходе обсуждения, правильный путь часто лежит через подсистему Отчеты и её дочернюю ветку СтандартныеОтчеты.
Если заимствование типовых подсистем не дает нужного результата из-за ограничений прав или сложности структуры, наиболее надежным способом будет создание собственной подсистемы верхнего уровня прямо в расширении. Разберем этот алгоритм:
МоиОтчеты.Просмотр на подсистему МоиОтчеты.Этот метод позволяет полностью контролировать видимость раздела, не вступая в конфликт с типовыми настройками командного интерфейса 1С:Бухгалтерии.
Просто дать права на отчеты и подсистему недостаточно. Для работы в тонком клиенте пользователю необходим определенный технический минимум. Выясним, какие права должны быть в роли (или в профиле групп доступа):
Минимальный набор прав для работы интерфейса:
Запуск тонкого клиента (стандартная роль из конфигурации).Пользователи, Организации, Валюты (без них многие отчеты упадут с ошибкой при инициализации).Рассмотрим пример кода, который может потребоваться, если вы решите программно обновлять параметры интерфейса или проверять доступность объектов:
// Пример проверки доступности роли в коде
Если РольДоступна("МояНоваяРольИзРасширения") Тогда
// Выполняем действия по настройке интерфейса
Сообщить("Пользователю доступен раздел отчетов");
КонецЕсли;
В современных конфигурациях 1С (на БСП) права назначаются не просто пользователю в конфигураторе, а через справочник «Профили групп доступа». Выполним следующие действия в режиме «1С:Предприятие»:
Важный нюанс: После добавления новой роли в расширение система может не сразу «увидеть» изменения в справочнике профилей. Иногда требуется обновить справочник ролей. Это можно сделать через запуск информационной базы с параметром /С ЗапуститьОбновлениеИнформационнойБазы или через консоль кода:
// Принудительное обновление справочника идентификаторов объектов метаданных
Справочники.ИдентификаторыОбъектовМетаданных.ОбновитьДанныеСправочника();
Если раздел все еще не виден, проанализируем настройки самой программы. В БП 3.0 многие отчеты скрыты, если не включены соответствующие настройки. Например, если в «Параметрах учета» не стоит флаг «Вести учет по подразделениям», то отчеты в разрезе подразделений не появятся в интерфейсе, даже если у роли есть на них полные права.
Чтобы проверить это, найдем нужный отчет в конфигураторе (в основной конфигурации), откроем его свойства и посмотрим вкладку «Использование». Там будет указан список функциональных опций, влияющих на его видимость.
Подведем итог. Чтобы успешно вывести раздел «Отчеты» через расширение, нужно:
Просмотр подсистемы и Просмотр всех включенных в нее отчетов.Использование собственных подсистем в расширениях — это наиболее стабильный путь, который гарантирует, что ваши изменения не «затрутся» при обновлении типовой конфигурации и будут корректно отображаться у пользователей с ограниченными правами.