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