Внешний отчет 1С: создание, открытие и хранение

Дата: 21.09.2026 07:06:43
Отчеты
Внешний отчет
СКД
Дополнительные отчеты и обработки
БСП
Безопасный режим
Комментарий:
0
Платформа:
8.3
Конфигурация:
Любая
Формы:
Управляемые

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

Когда отчёт выносят в отдельный файл

Типичная картина: БП 3.0, УТ 11 или КА 2 стоит на поддержке, а руководителю нужна сводка, которой среди типовых отчётов нет. Новый объект в конфигурации — это включённая возможность изменения и каждое обновление через сравнение и объединение. Файл отчёта обновление не затрагивает, его можно просто переслать заказчику. Внешний вариант хорош, когда:

  • нужен разовый анализ или сверка;
  • отчётом пользуются два-три человека;
  • надо проверить идею до постоянного решения;
  • у разработчика нет доступа к Конфигуратору рабочей базы.

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

Внешний, встроенный или отчет в расширении

Внешний (.erf)В конфигурацииВ расширении (.cfe)
Где хранитсяФайл на диске или карточка в «Дополнительных отчетах и обработках»В дереве метаданных конфигурацииВ расширении, подключённом к базе
Правка типовойНе нужнаНужна: включают возможность измененияНе нужна
Обновление типовойНе мешает; отчёт сломается, только если переименуют таблицы или поляКаждый релиз — сравнение и объединениеОбычно не мешает; после обновления расширение проверяют
Как запускает пользователь«Файл → Открыть» или команда в разделе (через БСП)Команда в разделеКоманда в разделе
Кто получает доступПраво на открытие внешних файлов или настройка в карточкеРоли конфигурацииРоли расширения
Когда выбиратьРазовые и узкие задачи, проверка идеиСвоя конфигурация без поддержкиПостоянный отчёт в типовой на поддержке

Отчёт нужен надолго, а типовая на поддержке — делайте его в расширении.

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

Создание внешнего отчета выполняется в Конфигураторе. Работайте в копии рабочей базы: конструктор запроса показывает таблицы той конфигурации, в которой запущен Конфигуратор, и имена полей совпадут с боевыми.

  1. «Файл → Новый», в списке выберите «Внешний отчет».
  2. Заполните «Имя» (идентификатор без пробелов) и «Синоним» — синоним пользователь увидит в заголовке окна.
  3. Рядом с полем «Основная схема компоновки данных» нажмите кнопку открытия схемы. Конфигуратор предложит создать макет: оставьте тип «Схема компоновки данных» и нажмите «Готово».
  4. В схеме добавьте набор данных «Запрос» и соберите текст конструктором или вставьте готовый.
  5. На вкладке «Ресурсы» отметьте суммируемые поля, на «Параметрах» настройте период, на «Настройках» соберите структуру отчёта — быстрее всего через конструктор настроек.
  6. Сохраните через «Файл → Сохранить как». Файл внешнего отчета получит расширение .erf; у внешней обработки оно другое — .epf.

Пример набора данных — проведённые реализации за период. Документ РеализацияТоваровУслуг есть в БП 3.0, УТ 11 и КА 2, но реквизиты в конфигурациях различаются, так что сверьте поля со своей базой.

ВЫБРАТЬ
	Реализация.Ссылка КАК Документ,
	Реализация.Организация КАК Организация,
	Реализация.Контрагент КАК Контрагент,
	Реализация.СуммаДокумента КАК Сумма
ИЗ
	Документ.РеализацияТоваровУслуг КАК Реализация
ГДЕ
	Реализация.Проведен
	И Реализация.Дата МЕЖДУ &НачалоПериода И &КонецПериода

Группировать в запросе не нужно: суммы по контрагентам посчитает СКД через ресурс Сумма и структуру настроек.

Период одним полем вместо двух дат

СКД сама создаст параметры НачалоПериода и КонецПериода, но пользователю удобнее выбирать один период. На вкладке «Параметры» добавьте параметр Период с типом «Стандартный период». Для НачалоПериода укажите выражение &Период.ДатаНачала, для КонецПериода — &Период.ДатаОкончания и поставьте обоим «Ограничение доступности». ДатаОкончания указывает на конец дня, поэтому документы последнего числа не потеряются. В «Настройках → Параметры» включите Период в пользовательские настройки — выбор появится на форме отчёта.

Своя форма не нужна: платформа построит её сама, с кнопками «Сформировать» и «Настройки». Подробнее о наборах данных и ресурсах — в статье «СКД 1С: что такое схема компоновки данных». Для проверки запустите отладку (F5) и в клиенте откройте тот же файл через «Файл → Открыть» — точки останова в модуле отчёта сработают.

Как открыть внешний отчет 1С

В интерфейсе «Такси» откройте главное меню, затем «Файл → Открыть» и выберите файл .erf. Отчёт откроется в отдельном окне; в следующем сеансе файл придётся выбирать снова. Если открыть не получается, причин обычно две:

  • Права. Нужно право платформы «Интерактивное открытие внешних отчетов». В типовых конфигурациях его даёт роль «Интерактивное открытие внешних отчетов и обработок»; рядовым пользователям её обычно не выдают, и это правильно.
  • Защита от опасных действий. Начиная с платформы 8.3.9.2033 пользователь с флажком «Защита от опасных действий» (свойства пользователя в Конфигураторе) видит предупреждение безопасности и должен подтвердить запуск. Снимать флажок всем подряд не стоит: он защищает от присланного по почте файла с чужим кодом.

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

Где хранить: файл или «Дополнительные отчеты и обработки»

Файл на сетевом диске — самый простой путь, но через полгода там лежат три копии, и никто не помнит, какая рабочая. В конфигурациях на БСП (БП 3.0, УТ 11, КА 2, ERP, УНФ) есть справочник «Дополнительные отчеты и обработки»: файл загружается в базу, отчёт появляется командой в выбранном разделе, размещение и быстрый доступ настраиваются в карточке. Пользователям не нужно право на интерактивное открытие внешних отчётов: БСП подключает файл программно.

Механизм включается в «Администрирование → Печатные формы, отчеты и обработки» флажком «Дополнительные отчеты и обработки». Чтобы файл приняли, в модуле объекта отчёта нужна экспортная функция СведенияОВнешнейОбработке():

// Модуль объекта внешнего отчета.
// Регистрация в справочнике «Дополнительные отчеты и обработки» (БСП 2.x/3.x).

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

#Область ПрограммныйИнтерфейс

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

	ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");

	ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительныйОтчет();
	ПараметрыРегистрации.Наименование = "Реализации по контрагентам";
	ПараметрыРегистрации.Версия = "1.0";
	ПараметрыРегистрации.БезопасныйРежим = Истина;
	ПараметрыРегистрации.Информация = "Проведенные реализации за период в разрезе организаций и контрагентов";

	Команда = ПараметрыРегистрации.Команды.Добавить();
	Команда.Представление = "Реализации по контрагентам";
	Команда.Идентификатор = "ОткрытьОтчет";
	Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();

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

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

#КонецОбласти

#КонецЕсли

Разбор ключевых строк:

  • ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1") — функция общего модуля БСП возвращает заготовку структуры. Параметр — версия БСП, под формат которой написан код, а не версия конфигурации. Вызов есть в БСП 2.x и 3.x; в своей базе сверьтесь с модулем.
  • ВидОбработкиДополнительныйОтчет() — глобальный отчёт, его размещают в разделах из карточки. Для отчёта, вызываемого из формы документа, нужен вид ВидОбработкиОтчет() и свойство Назначение.
  • БезопасныйРежим = Истина — запросы работают, а файлы, COM, интернет и привилегированный режим — нет.
  • Версия видна в карточке: увеличивайте её при каждой замене файла.
  • ТипКомандыОткрытиеФормы() — команда просто открывает основную форму отчёта, серверный код при нажатии не вызывается.

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

Программное открытие из своей формы

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

// Модуль управляемой формы (обработка или команда расширения).
// Команда формы: ОткрытьОтчетИзФайла.

&НаКлиенте
Процедура ОткрытьОтчетИзФайла(Команда)

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

КонецПроцедуры

&НаКлиенте
Процедура ОткрытьОтчетИзФайлаЗавершение(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт

	Если Не Результат Тогда
		Возврат; // пользователь закрыл диалог выбора файла
	КонецЕсли;

	Если Не СтрЗаканчиваетсяНа(НРег(ВыбранноеИмяФайла), ".erf") Тогда
		ПоказатьПредупреждение(, "Нужен файл внешнего отчета с расширением .erf");
		Возврат;
	КонецЕсли;

	ИмяОтчета = ПодключитьОтчетНаСервере(Адрес);
	ОткрытьФорму("ВнешнийОтчет." + ИмяОтчета + ".Форма");

КонецПроцедуры

&НаСервереБезКонтекста
Функция ПодключитьОтчетНаСервере(Адрес)

	// Третий параметр - безопасный режим: файлы, COM, сеть
	// и привилегированный режим коду отчета недоступны.
	Возврат ВнешниеОтчеты.Подключить(Адрес, , Истина);

КонецФункции
  • НачатьПомещениеФайла — асинхронный метод, работает и без модальных окон. С 8.3.15 для новых разработок есть НачатьПомещениеФайлаНаСервер, а с 8.3.18 — ПоместитьФайлНаСерверАсинх, но и старый вариант продолжает работать.
  • ВнешниеОтчеты.Подключить вызывается на сервере: в тонком и веб-клиенте менеджера внешних отчётов нет. Метод возвращает имя объекта из поля «Имя».
  • Третий параметр — безопасный режим. По умолчанию он и так Истина, но явная запись не даст кому-то «починить» отчёт заменой на Ложь.
  • ".Форма" — основная форма, в том числе сгенерированная автоматически.

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

Безопасный режим: что в нём запрещено

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

  • работа с файлами на сервере;
  • COM-объекты и внешние компоненты;
  • HTTP, FTP и отправка почты;
  • установка привилегированного режима и запуск программ.

При такой попытке платформа прерывает выполнение с ошибкой «Установлен безопасный режим. Выполнение операции запрещено». Лучший выход — убрать лишнее: отчёту на СКД файлы и COM почти не нужны. Если без них никак, в регистрационных сведениях ставят БезопасныйРежим = Ложь, а решение о загрузке принимает администратор; при включённых профилях безопасности понадобятся ещё и разрешения.

Типичные ошибки

  • «Таблица не найдена "Документ.РеализацияТоваровУслуг"» или «Поле не найдено "Реализация.Контрагент"». Отчёт писали под другую конфигурацию или релиз: файл к ней не привязан, запрос проверяется только при формировании. Тестируйте на копии той базы, где отчёт будут запускать.
  • «Не установлено значение параметра "НачалоПериода"». Параметр не связан с Период выражением, у периода снят флажок использования или даты не выбраны.
  • «Нарушение прав доступа!» при открытии через меню. Нет права на интерактивное открытие. Выдайте роль осознанно или зарегистрируйте отчёт в «Дополнительных отчетах и обработках».
  • «Использование модальных окон в данном режиме запрещено!». В форме отчёта вызваны синхронные Вопрос(), Предупреждение() или ПоместитьФайл(). Замените на ПоказатьВопрос, ПоказатьПредупреждение, НачатьПомещениеФайла.
  • Пропали сохранённые настройки. У отчёта, открытого через меню, они привязаны к имени объекта (ВнешнийОтчет.Имя), а не к имени файла. Переименовали объект — настройки «потерялись»; два разных отчёта с одинаковым именем делят одни настройки.

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

Чем внешний отчет отличается от внешней обработки?

Отчёт (.erf) заточен под чтение данных: основная схема компоновки, настройки, варианты и готовая форма с кнопкой «Сформировать». Обработка (.epf) нужна для действий — загрузки, групповой правки. Таблицу можно вывести и из обработки, но отборы придётся программировать самому.

Нужно ли снимать конфигурацию с поддержки?

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

Как сохранить внешний отчет или его результат?

Сам файл сохраняется в Конфигураторе через «Файл → Сохранить как». Отчёт из справочника дополнительных отчётов выгружается на диск из карточки. Сформированную таблицу сохраняют из формы отчёта — в xlsx, pdf, mxl и другие форматы.

Как хранить внешний отчет в Git?

Файл .erf двоичный. Начиная с платформы 8.3.8 (и 8.3.7.1759) Конфигуратор раскладывает его в XML ключом командной строки /DumpExternalDataProcessorOrReportToFiles и собирает обратно ключом /LoadExternalDataProcessorOrReportFromFiles. В 1C:EDT внешний отчёт сразу ведётся в исходниках.

Когда проще заказать

Если отчёт собирает данные из нескольких регистров, должен сходиться с типовыми отчётами или переживать обновления без правок, быстрее отдать его программисту — смотрите услугу «Отчеты и обработки 1С». Разместите задачу — оценка бесплатная, ответ в течение рабочего дня.

По теме

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

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


1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.