При разработке и внедрении внешних отчетов в конфигурации 1С:Управление нашей фирмой 1.6 многие разработчики сталкиваются с ситуацией, когда стандартная регистрация в справочнике ДополнительныеОтчетыИОбработки с указанием нужного раздела (например, «Продажи») не приводит к появлению отчета в интерфейсе. Попытка переопределить типовую процедуру ОпределитьРазделыСДополнительнымиОтчетами в общем модуле также не дает результата. Разберем причины такого поведения платформы и детально рассмотрим работающие способы размещения внешних отчетов в подсистемах УНФ 1.6.
Проанализируем архитектуру конфигурации 1С:УНФ 1.6, чтобы выяснить причину проблемы:
ОпределитьРазделыСДополнительнымиОтчетами физически ничего не выводит в интерфейс.Рассмотрим прямое и надежное решение, примененное на практике: добавление специальной команды вызова списка дополнительных отчетов БСП. Чтобы не снимать конфигурацию с поддержки, создадим команду в расширении конфигурации (или непосредственно в дереве метаданных конфигурации, если она уже на доработке).
Разберем по шагам порядок действий:
ДополнительныеОтчетыПродажи).Панель навигации.СмТакже или Панель действий.Отчеты).Продажи или ЗапасыИЗакупки).
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ДополнительныеОтчетыИОбработкиКлиент.ОткрытьФормуКомандДополнительныхОтчетовИОбработок(
ПараметрКоманды,
ПараметрыВыполненияКоманды,
ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительныйОтчет(),
"Продажи"
);
КонецПроцедуры
Обратим внимание на четвертый параметр вызова: строка "Продажи" задает имя подсистемы, отчеты которой необходимо отобразить пользователю. Если требуется команда для раздела закупок, укажем "ЗапасыИЗакупки".
Посмотрим на распространенную ошибку, возникающую при попытке вызова формы отчета или выполнения выборки настроек БСП:
{ОбщийМодуль.ОбщегоНазначения.Модуль(94)}: Ошибка при вызове метода контекста (Выполнить)
Выборка = Запрос.Выполнить().Выбрать();
по причине:
{(3, 2)}: Поле не найдено "Пользовательский"
<<?>>Пользовательский КАК Пользовательский
Выясним причину этой ошибки. В Библиотеке стандартных подсистем варианты отчетов делятся на предопределенные (заложенные разработчиком в схему СКД) и пользовательские (сохраненные пользователем в процессе работы). За это разделение отвечает реквизит Пользовательский справочника ВариантыОтчетов.
Если данная ошибка возникает при вызове команды, проанализируем параметры:
ОбработкаКоманды не должно быть никаких промежуточных запросов или лишнего кода инициализации формы. Вся логика должна делегироваться стандартной процедуре ДополнительныеОтчетыИОбработкиКлиент.ОткрытьФормуКомандДополнительныхОтчетовИОбработок.Рассмотрим альтернативный способ, который позволяет отобразить внешний отчет в типовом окне «Все отчеты» раздела без создания дополнительных команд и расширений. Для этого адаптируем сам внешний отчет под внутренние стандарты подсистемы отчетов УНФ.
Разберем процесс доработки отчета:
ХранилищеВариантовОтчетов.ЭтоОтчетУНФ с типом данных Булево и установим значение по умолчанию в Истина. Этот признак сообщает механизмам конфигурации, что отчет поддерживает оформление и правила панели УНФ.
Процедура ПриОпределенииНастроекОтчета(НастройкиОтчета, НастройкиВариантов) Экспорт
НастройкиВариантов["Основной"].Теги = НСтр("ru = 'Продажи'");
КонецПроцедуры
В приведенном коде "Основной" — это имя предопределенного варианта отчета из схемы компоновки данных (СКД), а 'Продажи' — наименование раздела, в панель которого должен выводиться вариант.
Если отчет уже зарегистрирован в базе через справочник ДополнительныеОтчетыИОбработки, и мы не хотим модифицировать файл, назначим тег в пользовательском режиме. Для этого через меню Функции для технического специалиста (или Все функции) откроем справочник вариантов отчетов УНФ, найдем наш вариант отчета и в строке тегов вручную пропишем название раздела: Продажи.
Проверим дополнительные настройки, если команда или отчет по-прежнему не видны у пользователей:
БазовыеПраваУНФ или специализированную роль менеджера по продажам). Без прав на команду пользователи с ограниченным доступом ее не увидят.Дополнительные отчеты и обработки. В табличной части команд убедимся, что колонка Быстрый доступ содержит список пользователей или групп, которым разрешен вызов отчета.