К статье
Практический материал

Отчеты и Аналитика · 10 мин

Как из отчета сделать внешний отчет в 1С

Как преобразовать встроенный отчет 1С во внешний файл .erf: сохранение через конфигуратор, подключение через дополнительные отчеты, проверка и типичные ошибки.

Внешний отчет в 1С — это файл с расширением .erf, который работает без изменения конфигурации и подключается к базе через механизм дополнительных отчетов и обработок. Такой подход нужен, когда нельзя или нежелательно править типовую конфигурацию: доработка не слетит при обновлении, а отчет можно передавать между базами и дорабатывать отдельно от основного решения.

Есть два типовых сценария. Первый — у вас уже есть отчет, встроенный в конфигурацию (типовой или самописный), и его нужно вынести во внешний файл. Второй — отчет существует только как макет СКД или обработка, и его нужно оформить как полноценный внешний отчет. Оба сценария выполняются через конфигуратор и занимают несколько минут, если понимать порядок действий.

Что понадобится перед началом работы

Для преобразования отчета во внешний нужны права на запуск конфигуратора и доступ к объекту отчета. Если конфигурация находится на поддержке без возможности изменения, просматривать и сохранять отчет всё равно можно — режим поддержки не мешает выгрузке объекта в файл.

Проверьте, что в базе включен механизм дополнительных отчетов и обработок: в типовых конфигурациях это настройка «Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки». Без этого флага подключить внешний отчет штатным способом не получится — файл можно будет открыть только через «Файл → Открыть», что неудобно для постоянной работы пользователей.

Подготовьте тестовую копию базы, если планируете менять схему компоновки данных или модуль отчета. Само сохранение в файл безопасно и не трогает данные, но последующая доработка внешнего отчета может привести к ошибкам у пользователей, если сразу подключить его в рабочую базу.

Сохранение встроенного отчета во внешний файл

Основной способ — сохранение объекта конфигурации в файл. Откройте конфигуратор, в дереве конфигурации найдите ветку «Отчеты» и нужный объект. Откройте его двойным щелчком, затем в главном меню выберите «Файл → Сохранить копию» (в некоторых версиях платформы — «Сохранить как») и укажите имя файла с расширением .erf.

Полученный файл уже является работоспособным внешним отчетом: его можно открыть в режиме 1С:Предприятие через «Файл → Открыть» и убедиться, что он формируется. При этом в файле сохраняются схема компоновки данных, формы, макеты и модуль объекта — всё, что было в исходном отчете.

Порядок действий
  1. 1
    Откройте конфигуратор и найдите отчет в ветке «Отчеты» дерева конфигурации
  2. 2
    Откройте отчет и выберите «Файл → Сохранить копию», укажите имя файла .erf
  3. 3
    Проверьте файл: откройте его в режиме 1С:Предприятие через «Файл → Открыть»
  4. 4
    Сформируйте отчет и сравните результат со встроенной версией
  5. 5
    Подключите файл через механизм дополнительных отчетов и обработок

Альтернатива: создание внешнего отчета с нуля на основе макета

Если исходного объекта отчета нет — например, у вас есть только запрос или макет СКД — создайте внешний отчет напрямую. В конфигураторе выберите «Файл → Новый → Внешний отчет», задайте имя и откройте основную схему компоновки данных.

В схему добавьте набор данных (запрос, объект или объединение), настройте связи, ресурсы и параметры, затем сформируйте настройки по умолчанию на закладке «Настройки». Если у вас уже есть готовая схема из другого отчета, её можно загрузить: откройте схему компоновки, нажмите кнопку «Загрузить схему из файла» (доступна в расширенном режиме редактирования) и укажите XML-файл схемы.

Перенос схемы СКД из типового отчета

Чтобы выгрузить схему из существующего отчета, откройте его схему компоновки данных в конфигураторе и сохраните её в XML через контекстное меню конструктора. Затем загрузите этот XML в схему нового внешнего отчета. Так переносят сложные типовые отчеты, когда нужно изменить только часть логики, не копируя объект целиком.

Регистрация через сведения о внешней обработке

Просто открытый через «Файл → Открыть» отчет не появится в интерфейсе пользователей. Чтобы он корректно зарегистрировался в подсистеме дополнительных отчетов, добавьте в модуль объекта экспортную функцию СведенияОВнешнейОбработке. Она возвращает структуру с видом обработки, версией и командами.

Минимальный пример модуля объекта:

Функция СведенияОВнешнейОбработке() Экспорт

ПараметрыРегистрации = Новый Структура;

ПараметрыРегистрации.Вставить("Вид", "ДополнительныйОтчет");

ПараметрыРегистрации.Вставить("Версия", "1.0");

ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);

Команды = Новый ТаблицаЗначений;

Команды.Колонки.Добавить("Идентификатор");

Команды.Колонки.Добавить("Представление");

Команды.Колонки.Добавить("Использование");

Команда = Команды.Добавить();

Команда.Идентификатор = "МойОтчет";

Команда.Представление = "Мой внешний отчет";

Команда.Использование = "ОткрытиеФормы";

ПараметрыРегистрации.Вставить("Команды", Команды);

Возврат ПараметрыРегистрации;

КонецФункции

Точный состав параметров зависит от версии библиотеки стандартных подсистем в вашей конфигурации. Если при подключении появляется ошибка о неизвестном параметре, посмотрите пример функции в любом типовом внешнем отчете из поставки или в документации к БСП вашей версии.

Подключение внешнего отчета в режиме 1С:Предприятие

В режиме 1С:Предприятие перейдите в «Администрирование → Печатные формы, отчеты и обработки», включите флаг «Дополнительные отчеты и обработки» и откройте одноименный справочник. Создайте новый элемент, укажите файл .erf — программа прочитает сведения из модуля объекта и заполнит карточку автоматически.

После записи укажите размещение: разделы командного интерфейса, в которых отчет будет доступен пользователям. Затем проверьте, что команда появилась в выбранных разделах, и сформируйте отчет под обычной учетной записью пользователя, а не только под администратором — права могут отличаться.

Если конфигурация без БСП

В самописных или старых конфигурациях механизма дополнительных отчетов может не быть. Тогда внешний отчет открывают через «Файл → Открыть» либо добавляют в меню «Сервис → Дополнительные отчеты и обработки» (в старых платформах). Альтернатива — написать простую обработку-запускалку или добавить отчет в конфигурацию расширением.

Способы вынесения отчета

Сохранить копию в .erf

Быстро, сохраняет всё содержимое объекта; подходит, когда нужна точная копия встроенного отчета

Новый внешний отчет + загрузка схемы XML

Подходит, когда нужна только схема СКД без форм и модулей исходного отчета

Расширение конфигурации

Не внешний файл, но тоже не меняет типовую конфигурацию; удобно при тесной интеграции с интерфейсом

Проверка результата и типичные ошибки

После подключения сравните результат внешнего отчета со встроенным аналогом на одинаковых настройках и периоде. Цифры должны совпадать полностью. Расхождения обычно означают, что при копировании потерялись параметры, отборы по умолчанию или код в модуле, влияющий на компоновку.

Частые проблемы: отчет не открывается из-за несовместимости версий платформы (файл сохранен на более новой платформе, чем работает база), не заполняются параметры периода, не хватает прав у пользователя на данные, которые читает запрос. Последнее проявляется как пустой отчет без сообщений об ошибке — проверяйте права на регистры и справочники, задействованные в запросе.

Типичные ошибки
01
Сохранение файла на новой платформе и попытка открыть его на старой — файл не откроется, нужно пересохранить на совместимой версии
02
Отсутствие функции СведенияОВнешнейОбработке — отчет подключается, но команда не появляется в интерфейсе
03
Проверка только под администратором — у рядовых пользователей отчет пустой из-за прав на данные
04
Подключение доработанного отчета сразу в рабочую базу без теста на копии — риск выдать пользователям неверные данные
05
Дублирование имени команды с уже подключенным отчетом — конфликт при регистрации
Контрольные точки

Как проверить результат

Формирование отчета
Норма

Отчет строится, цифры совпадают со встроенной версией

Тревожный признак

Пустой результат, ошибка СКД или расхождение сумм

Команда в интерфейсе
Норма

Отчет виден в выбранных разделах у пользователей

Тревожный признак

Команда есть только у администратора или отсутствует

Права доступа
Норма

Отчет формируется под обычным пользователем

Тревожный признак

Под пользователем отчет пустой или падает с ошибкой доступа

Ограничения внешних отчетов

Внешний отчет не может использовать общие модули и объекты, которых нет в конфигурации базы, где он запускается. Если исходный отчет вызывал процедуры общих модулей, эти вызовы будут работать только при наличии тех же модулей в целевой базе — при переносе файла в другую конфигурацию код придется адаптировать.

Ещё одно ограничение — безопасный режим. В файловых и клиент-серверных базах с включенным профилем безопасности внешние отчеты могут выполняться с ограничениями: запрет на работу с файловой системой, COM-объектами и внешними компонентами. Если отчет использует такие возможности, согласуйте с администратором настройку профиля безопасности.

Итог

Что важно запомнить

Внешний отчет создается сохранением объекта конфигурации в файл .erf или созданием нового внешнего отчета с загрузкой схемы СКД. Для полноценной работы добавьте функцию СведенияОВнешнейОбработке, подключите файл через дополнительные отчеты и обработки и проверьте результат под обычным пользователем на тестовой базе.

Частые вопросы

Можно ли сделать внешний отчет без конфигуратора?

Напрямую — нет: файл .erf создается только в конфигураторе. Однако готовый файл может подключить любой пользователь с правами на справочник дополнительных отчетов, без доступа к конфигуратору.

Чем внешний отчет отличается от расширения конфигурации?

Внешний отчет — отдельный файл, который подключается и отключается без изменения структуры базы. Расширение встраивается в конфигурацию и может менять формы, модули и роли, но требует более аккуратного сопровождения при обновлениях.

Почему внешний отчет не открывается на другой базе?

Чаще всего причина в разных версиях платформы или в том, что отчет обращается к объектам метаданных, которых нет в целевой конфигурации. Проверьте версию платформы и зависимости запроса и модуля.

Как обновить уже подключенный внешний отчет?

Откройте карточку отчета в справочнике дополнительных отчетов и обработок и загрузите новую версию файла вместо старой. Рекомендуется при этом поднимать номер версии в СведенияОВнешнейОбработке, чтобы отслеживать изменения.

Безопасно ли подключать внешние отчеты из сторонних источников?

Файл .erf содержит исполняемый код, поэтому подключайте только отчеты из доверенных источников. Перед подключением желательно открыть файл в конфигураторе и просмотреть модуль объекта, а также держать включенным безопасный режим.

Можно ли вернуть внешний отчет обратно в конфигурацию?

Да. В конфигураторе откройте файл .erf через «Файл → Открыть», затем используйте сравнение и объединение с конфигурацией либо создайте новый объект отчета и перенесите в него схему, формы и модуль из внешнего файла.