Внешний отчёт .erf: как его запустить, разобрать на исходники и выгрузить результат

· 10 мин

Содержание

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

ERF-файл не открывается в Excel, Блокноте или архиваторе: внутри бинарный контейнер платформы 1С. Чтобы получить таблицу с цифрами, отчёт нужно запустить в базе и сохранить результат. Чтобы увидеть код — открыть файл в Конфигураторе или выгрузить его в XML.

Что такое ERF-файл и чем он отличается от EPF

Расширение расшифровывают как External Report File. Это формат платформы 1С:Предприятие 8.х. У внешних объектов есть «пара»:

РасширениеЧто этоГлавное назначение
.erfвнешний отчётвывести данные базы в табличный документ
.epfвнешняя обработкаизменить данные, загрузить, выгрузить, распечатать
.ertвнешний отчёт 1С 7.7то же, но для старой платформы 7.7
.cfeрасширение конфигурациидоработка самой конфигурации, хранится в базе

Отчёт и обработка в 8.3 — разные типы объектов. Отчёт умеет работать с системой компоновки данных (СКД): у него есть основная схема, варианты, пользовательские настройки. Обработка такого механизма «из коробки» не имеет.

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

Если файл .erf пришёл не от программиста 1С, а с фотоаппарата, это другой формат — RAW-снимок камер Epson. С 1С он не связан, открывают его графическими редакторами.

Почему внешний файл требует осторожности

ERF содержит исполняемый код на встроенном языке 1С. Код выполняется с правами пользователя, который открыл отчёт. Отчёт «из интернета» теоретически может не только читать данные, но и менять их или передавать наружу.

Запускайте внешние отчёты только из доверенных источников. Незнакомый файл сначала откройте в Конфигураторе и посмотрите модуль объекта и модули форм.

Как открыть ERF-файл в 1С 8.3: три способа

Способ выбирают по задаче: разово посмотреть, пользоваться постоянно или проверить код.

СпособКогда подходитЧто нужно
Файл → Открытьразовый запуск, проверкаправо на интерактивное открытие внешних отчётов
Дополнительные отчётыпостоянная работа нескольких пользователейправа администратора для подключения
Конфигураторпросмотр и правка кодадоступ к Конфигуратору

Способ 1. Через меню «Файл»

  1. Запустите базу в режиме 1С:Предприятие.
  2. Нажмите кнопку главного меню (три полоски в левом верхнем углу) и выберите Файл → Открыть. Или нажмите Ctrl+O.
  3. Укажите файл .erf на диске.
  4. Если платформа покажет предупреждение о том, что файл может быть небезопасен, подтвердите открытие только для проверенного файла.
  5. Откроется форма отчёта. Задайте период и отборы, нажмите Сформировать.

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

Способ 2. Через справочник дополнительных отчётов

В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11 и другие) внешний отчёт можно «прописать» в базе. Тогда он хранится внутри базы, и пользователям не нужен файл.

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

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

Способ 3. В Конфигураторе

  1. Запустите базу в режиме Конфигуратор (подойдёт и пустая база на той же версии платформы).
  2. Меню Файл → Открыть, выберите .erf.
  3. Откроется окно внешнего отчёта: реквизиты, табличные части, формы, макеты, схема компоновки.

Здесь можно читать и править код, а затем сохранить файл . Запустить отчёт из этого окна нельзя: для этого нужен режим 1С:Предприятие.

Двойной щелчок по файлу .erf в проводнике обычно запускает стартер 1С. Он попросит выбрать базу и откроет в ней отчёт. Если ассоциация файлов не настроена, пользуйтесь меню «Файл».

Как сохранить результат ERF-отчёта в Excel, PDF и другие форматы

Сам файл .erf ни во что «сконвертировать» нельзя: это программа, а не таблица. Конвертируют результат — табличный документ, который отчёт формирует.

  1. Сформируйте отчёт.
  2. Нажмите кнопку Сохранить (значок дискеты) на панели отчёта или выберите сохранение в меню Ещё.
  3. В окне выбора укажите тип файла.
ФорматДля чего
.xlsxдальнейшая обработка в Excel
.pdfотправка контрагенту или руководителю без правок
.mxlтабличный документ 1С: откроется в любой 1С с сохранением оформления
.odsLibreOffice и аналоги
.docx, .html, .txtвставка в текст, публикация, простая выгрузка

При выгрузке в Excel объединённые ячейки и группировки переносятся не всегда аккуратно. Если нужна «плоская» таблица для сводной, отключите в настройках отчёта итоги и группировки перед сохранением.

Можно ли превратить ERF в EPF

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

Что внутри внешнего отчёта и как разобрать его на исходники

Внешний отчёт устроен так же, как отчёт в конфигурации. Основные части:

  • 🧩 Модуль объекта — код: формирование, обработка расшифровки, функция регистрации для БСП.
  • 🖼 Формы — основная форма, форма настроек, форма варианта.
  • 📐 Макеты — схема компоновки данных и макеты печати.
  • 📦 Реквизиты и табличные части — параметры, которые пользователь заполняет перед формированием.
  • ⚙️ Свойства — основная схема компоновки, основная форма, хранилище вариантов.

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

Выгрузка ERF в XML

Чтобы хранить отчёт в Git или сравнивать версии, его разбирают на файлы. В Конфигураторе откройте внешний отчёт, щёлкните правой кнопкой по корню дерева и выберите выгрузку в файлы. То же делают из командной строки, без открытия окна:

"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F "D:\Bases\Empty" ^
  /DumpExternalDataProcessorOrReportToFiles "D:\src\MyReport" "D:\in\MyReport.erf" ^
  /Out "D:\log.txt"

Обратная сборка из файлов в .erf:

"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F "D:\Bases\Empty" ^
  /LoadExternalDataProcessorOrReportFromFiles "D:\src\MyReport\MyReport.xml" "D:\out\MyReport.erf" ^
  /Out "D:\log.txt"

Путь к 1cv8.exe замените на свою версию платформы. База /F нужна любая, можно пустую. После выгрузки модули лежат обычными текстовыми файлами .bsl, их удобно сравнивать любым инструментом diff.

1С:EDT импортирует внешние отчёты в проект напрямую. Если команда уже работает в EDT, отдельный пакетный скрипт не нужен.

Если код не виден

Поставщик может сохранить отчёт без исходного текста модуля. Тогда в Конфигураторе модуль пуст или недоступен, а отчёт работает. Восстановить исходник штатно нельзя — запросите его у разработчика или работайте с отчётом как с «чёрным ящиком».

Программное подключение ERF из кода

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

&НаКлиенте
Процедура СформироватьИзФайла(Команда)
	Оповещение = Новый ОписаниеОповещения("ПослеПомещенияФайла", ЭтотОбъект);
	НачатьПомещениеФайла(Оповещение, , , Истина, УникальныйИдентификатор);
КонецПроцедуры

&НаКлиенте
Процедура ПослеПомещенияФайла(Результат, Адрес, ВыбранноеИмя, ДопПараметры) Экспорт
	Если Не Результат Тогда
		Возврат;
	КонецЕсли;
	СформироватьНаСервере(Адрес);
КонецПроцедуры

&НаСервере
Процедура СформироватьНаСервере(Адрес)
	ИмяОтчета = ВнешниеОтчеты.Подключить(Адрес, , Истина);
	Отчет = ВнешниеОтчеты.Создать(ИмяОтчета);
	ТабДок = Новый ТабличныйДокумент;
	Отчет.СкомпоноватьРезультат(ТабДок);
	ТабДок.Записать("D:\Выгрузка\Отчет.xlsx", ТипФайлаТабличногоДокумента.XLSX);
КонецПроцедуры

Что важно в примере:

  • ВнешниеОтчеты.Подключить с третьим параметром Истина включает безопасный режим. Отчёт не сможет работать с файлами и внешними ресурсами без разрешения.
  • СкомпоноватьРезультат подходит для отчётов на СКД. Если отчёт формирует данные своим кодом, вызывайте его экспортную процедуру.
  • Путь в Записать — путь на сервере 1С. В клиент-серверном варианте у служебной учётной записи сервера должны быть права на эту папку.

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

Ошибки при открытии и формировании ERF-отчётов

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

Диагностика: выберите симптом

Если отчёт рассчитан на обычное приложение (старые конфигурации на 8.2), его формы не откроются в интерфейсе «Такси». Признак — у отчёта в Конфигураторе только обычные формы, без управляемых. Решение одно: заказать или сделать версию на управляемых формах.

Как хранить и вести версии ERF-файлов

Через год в папке «Отчёты» обычно лежат Отчет_новый.erf, Отчет_новый2.erf и Отчет_финал.erf, и никто не помнит, какой рабочий. Порядок наводится простыми правилами.

Правила именования и хранения

  • 📁 Одна папка на отчёт, в имени файла — конфигурация и версия: ОстаткиПоСкладам_БП30_v1.3.erf.
  • 📝 Рядом — короткий файл с описанием: что делает, под какой релиз конфигурации проверен, кто автор.
  • 🔐 Исходники в XML — в Git. Сам .erf собирается из них командой загрузки из файлов.
  • 🧾 Контрольная сумма для файлов, которые передают клиентам или в филиалы: certutil -hashfile ОстаткиПоСкладам_БП30_v1.3.erf SHA256. Получатель сверяет сумму и убеждается, что файл не изменён.

Что делать с отчётами внутри базы

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

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

Проверка внешнего отчёта перед вводом в работу
Выполнено: 0 / 5

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

Можно ли открыть ERF без установленной 1С?
Сформировать отчёт без платформы и базы нельзя: он берёт данные из базы. Посмотреть структуру можно сторонними утилитами-распаковщиками контейнера 1С, но для работы нужен Конфигуратор.
Откроется ли ERF из 1С 8.3 в версии 7.7?
Нет. В 7.7 внешние отчёты имеют формат .ert и другой встроенный язык. Отчёт придётся писать заново.
Подходит ли один ERF для Бухгалтерии и ЗУП?
Только если отчёт обращается к объектам, которые есть в обеих конфигурациях. Обычно отчёт пишут под конкретную конфигурацию и её релиз.
Работает ли внешний отчёт в базе 1С:Фреш или другом облаке?
В облачных сервисах внешние отчёты обычно запускаются только после проверки и в безопасном режиме. Порядок подключения уточняйте у провайдера.
Чем ERF лучше доработки конфигурации?
Конфигурация остаётся типовой, обновления ставятся без объединения. Минус — отчёт нужно проверять после каждого обновления вручную.