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

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

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

Анализ проблемы: почему раздел не отображается?

Рассмотрим ситуацию: вы создали расширение, добавили в него новую роль и подсистему (например, БухгалтерскиеОтчеты). Назначили права «Просмотр» на подсистему и права на сами отчеты. Однако в тонком клиенте раздел «Отчеты» все равно отсутствует, хотя через «Функции для технического специалиста» или «Все функции» отчеты открываются и работают корректно.

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

  1. Иерархия подсистем: В БП 3.0 интерфейс строится на многоуровневой вложенности. Если вы добавили дочернюю подсистему, но не включили в расширение родительскую, платформа может «потерять» ветку интерфейса.
  2. Командный интерфейс: Галка «Включать в командный интерфейс» у заимствованных подсистем часто заблокирована. Это означает, что состав команд определяется основной конфигурацией, и расширение должно либо четко следовать этой структуре, либо предлагать свою альтернативу.
  3. Функциональные опции: Многие отчеты и разделы «завязаны» на константы. Если в базе отключен конкретный вид учета, раздел не появится, какие бы права вы ни давали.

Шаг 1. Работа с иерархией подсистем

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

Посмотрим на пример из практики: подсистема СтандартныеОтчеты является дочерней для БухгалтерскиеОтчеты. Чтобы интерфейс отобразился корректно, необходимо добавить в расширение всю цепочку. Однако в БП 3.0 существует специальная структура для раздела «Отчеты». Как выяснилось в ходе обсуждения, правильный путь часто лежит через подсистему Отчеты и её дочернюю ветку СтандартныеОтчеты.

Шаг 2. Создание кастомной подсистемы в расширении

Если заимствование типовых подсистем не дает нужного результата из-за ограничений прав или сложности структуры, наиболее надежным способом будет создание собственной подсистемы верхнего уровня прямо в расширении. Разберем этот алгоритм:

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

Этот метод позволяет полностью контролировать видимость раздела, не вступая в конфликт с типовыми настройками командного интерфейса 1С:Бухгалтерии.

Шаг 3. Настройка прав доступа и объектов БСП

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

Минимальный набор прав для работы интерфейса:

Рассмотрим пример кода, который может потребоваться, если вы решите программно обновлять параметры интерфейса или проверять доступность объектов:


// Пример проверки доступности роли в коде
Если РольДоступна("МояНоваяРольИзРасширения") Тогда
    // Выполняем действия по настройке интерфейса
    Сообщить("Пользователю доступен раздел отчетов");
КонецЕсли;

Шаг 4. Регистрация в профилях групп доступа

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

  1. Перейдем в раздел Администрирование — Настройки пользователей и прав — Профили групп доступа.
  2. Создадим новый профиль, назовем его «Только отчеты (из расширения)».
  3. В списке ролей найдем нашу роль из расширения и отметим её флагом.
  4. Создадим «Группу доступа», выберем в ней созданный профиль и добавим нужного пользователя.

Важный нюанс: После добавления новой роли в расширение система может не сразу «увидеть» изменения в справочнике профилей. Иногда требуется обновить справочник ролей. Это можно сделать через запуск информационной базы с параметром /С ЗапуститьОбновлениеИнформационнойБазы или через консоль кода:


// Принудительное обновление справочника идентификаторов объектов метаданных
Справочники.ИдентификаторыОбъектовМетаданных.ОбновитьДанныеСправочника();

Шаг 5. Проверка функциональных опций

Если раздел все еще не виден, проанализируем настройки самой программы. В БП 3.0 многие отчеты скрыты, если не включены соответствующие настройки. Например, если в «Параметрах учета» не стоит флаг «Вести учет по подразделениям», то отчеты в разрезе подразделений не появятся в интерфейсе, даже если у роли есть на них полные права.

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

Резюме и решение

Подведем итог. Чтобы успешно вывести раздел «Отчеты» через расширение, нужно:

  1. Убедиться, что вы заимствуете правильную иерархию подсистем (включая родительские).
  2. Лучше всего создать свою подсистему в расширении с установленным флагом включения в командный интерфейс.
  3. Дать права на Просмотр подсистемы и Просмотр всех включенных в нее отчетов.
  4. Назначить роль пользователю через Профиль групп доступа в пользовательском режиме.
  5. Очистить кэш клиента, если изменения не отобразились сразу.

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

← На главную