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