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