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

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

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

Пошаговая инструкция по созданию внешнего отчета в 1С 8.3: СКД, запрос, настройки, подключение через дополнительные отчеты и проверка результата.

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

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

Ниже разобран полный цикл: от создания пустого файла до регистрации отчета в базе, с разбором запроса, настроек СКД, типичных ошибок и способов проверки результата. Инструкция ориентирована на платформу 8.3 и типовые конфигурации на БСП (УТ 11, ERP, КА, БП 3.0, ЗУП 3.1).

Когда внешний отчет — правильный выбор

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

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

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

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

Внешний отчет (.erf)

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

Отчет внутри конфигурации

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

Подготовка: что нужно перед началом работы

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

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

Заранее сформулируйте, какие данные должен показать отчет: источник (регистр накопления, регистр сведений, документы), измерения для группировок, ресурсы для суммирования и обязательные отборы. Это сэкономит время на этапе написания запроса и настроек СКД.

Создание файла внешнего отчета в конфигураторе

Откройте конфигуратор и выполните «Файл → Новый → Внешний отчет». Задайте имя латиницей без пробелов (например, ПродажиПоМенеджерам) — синоним платформа сформирует автоматически, его можно поправить для отображения пользователю. Имя важно: по нему отчет будет идентифицироваться при регистрации в базе.

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

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

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

Набор данных и запрос: основа отчета

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

Обязательно используйте параметры виртуальных таблиц: для оборотных регистров передавайте период через параметры &НачалоПериода и &КонецПериода, а не фильтруйте результат в условии ГДЕ. Фильтрация в параметрах виртуальной таблицы выполняется на уровне СУБД до выборки данных — это принципиально быстрее на больших объемах.

Пример минимального запроса для отчета по продажам:

ВЫБРАТЬ

ПродажиОбороты.Номенклатура КАК Номенклатура,

ПродажиОбороты.Менеджер КАК Менеджер,

ПродажиОбороты.КоличествоОборот КАК Количество,

ПродажиОбороты.СуммаОборот КАК Сумма

ИЗ

РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, , ) КАК ПродажиОбороты

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

Ресурсы, параметры и настройки СКД

На закладке «Ресурсы» перенесите поля, по которым нужны итоги (Количество, Сумма), и укажите выражение Сумма(Сумма), Сумма(Количество). Без ресурсов отчет покажет детальные записи, но не посчитает итоги по группировкам.

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

На закладке «Настройки» откройте конструктор настроек (кнопка с волшебной палочкой) и выберите тип отчета: таблица с группировками по строкам — самый частый вариант. Укажите группировки (например, Менеджер, затем Номенклатура), выбранные поля и отборы, доступные пользователю. На закладке «Другие настройки» задайте заголовок отчета и расположение итогов.

Чтобы пользователь мог менять структуру отчета сам, оставьте настройки в режиме обычного доступа: тогда в форме отчета появятся кнопки «Настройки» и «Все настройки». Это избавит вас от десятка правок по просьбам пользователей.

Опытные разработчики делают в настройках СКД сразу два-три варианта отчета (по менеджерам, по номенклатуре, по периодам) через закладку «Варианты отчета» в настройках. Пользователь переключается между ними одной кнопкой, а файл остается один.
ПЗ
Практическое замечание

Подключение отчета в информационной базе

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

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

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

Контрольные точки

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

Открытие файла через Файл → Открыть
Норма

Отчет формируется, итоги по группировкам сходятся с данными регистра

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

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

Регистрация в дополнительных отчетах
Норма

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

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

Отчет виден только администратору — не настроен быстрый доступ

Работа параметров периода
Норма

Смена периода меняет результат, отборы применяются

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

Период игнорируется — параметры не переданы в виртуальную таблицу

Типичные ошибки и ограничения

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

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

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

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

Обновление и сопровождение внешнего отчета

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

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

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

Итог

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

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

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

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

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

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

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

Почему отчет формируется очень долго?

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

Как дать пользователю доступ только к одному внешнему отчету?

Доступ к дополнительным отчетам регулируется правами на подсистему «Дополнительные отчеты и обработки» и настройкой быстрого доступа в карточке отчета. Откройте элемент справочника дополнительных отчетов, перейдите к настройке быстрого доступа и укажите конкретных пользователей — остальные отчет не увидят.

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

Только если в целевой конфигурации есть все объекты метаданных, использованные в запросе, с теми же именами и структурой полей. Отчет, написанный под УТ 11, обычно не заработает в БП 3.0 из-за разных регистров. Универсальные отчеты строят на стандартных объектах (например, документы с общими реквизитами), но это редкий случай.

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

Нет. Регистрация внешнего отчета через «Дополнительные отчеты и обработки» выполняется в режиме 1С:Предприятие и не затрагивает конфигурацию. Поддержка и автоматическое обновление сохраняются полностью — в этом главное преимущество механизма.