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