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