Отчеты и Аналитика · 11 мин
Как создать внешний отчёт на СКД в 1С
Как создать внешний отчёт в 1С на системе компоновки данных: создание файла .erf, настройка запроса, схемы СКД, вариантов отчёта и подключение к конфигурации.
Внешний отчёт на системе компоновки данных (СКД) — это файл с расширением .erf, который открывается в режиме «1С:Предприятие» через меню «Файл → Открыть» и работает без изменения конфигурации. Такой подход выбирают, когда нужно быстро получить аналитическую выборку, не внося правки в типовую конфигурацию и не теряя возможность её обновления. Вся логика отчёта — запрос, группировки, отборы, оформление — описывается в схеме компоновки данных, а программный код чаще всего не требуется вовсе.
СКД берёт на себя формирование текста запроса, применение отборов, группировку итогов и визуальное оформление результата. Разработчику достаточно описать набор данных и настройки по умолчанию. Это существенно сокращает время разработки по сравнению с отчётом «вручную» через табличный документ и даёт пользователю гибкие настройки в режиме предприятия: отборы, сортировки, варианты отчёта.
Ниже разобран полный цикл: от создания пустого файла внешнего отчёта в конфигураторе до подключения его к подсистеме дополнительных отчётов и обработок в типовых конфигурациях. Материал ориентирован на платформу 1С:Предприятие 8.3 и управляемые формы.
Когда внешний отчёт на СКД — правильный выбор
Внешний отчёт уместен, если отчёт нужен ограниченному кругу пользователей, требование разовое или часто меняется, а дорабатывать конфигурацию нельзя — например, она на поддержке без возможности изменения или обновляется поставщиком. Файл .erf можно передать коллеге, открыть в другой базе с совместимой структурой данных и доработать без доступа к конфигуратору рабочей базы.
Если же отчёт нужен всем пользователям постоянно, должен отображаться в подсистемах интерфейса, участвовать в правах доступа и рассылках — правильнее встроить его в конфигурацию или в расширение. Внешний отчёт не попадает в командный интерфейс автоматически и не контролируется механизмом ролей на уровне метаданных.
Способы разместить отчёт
Быстрое создание и перенос между базами; нет прав на уровне метаданных, открывается вручную или через доп. отчёты
Полная интеграция: права, подсистемы, рассылки; требует снятия с поддержки и усложняет обновление
Интеграция без изменения основной конфигурации; требует совместимости расширения с режимом совместимости базы
Создание файла внешнего отчёта в конфигураторе
Откройте конфигуратор базы, для которой разрабатывается отчёт — это важно, потому что конструктор запроса и проверка схемы опираются на метаданные конкретной конфигурации. Далее выберите «Файл → Новый» (или Ctrl+N) и в списке типов документов укажите «Внешний отчёт». Платформа предложит ввести имя отчёта и сразу создать основную схему компоновки данных — согласитесь, нажав «Готово».
После создания откроется окно редактирования внешнего отчёта с закладками «Модуль объекта», «Основная схема компоновки данных» и другими свойствами. Для отчёта на СКД без программной доработки модуль объекта можно оставить пустым. Сохраните файл через «Файл → Сохранить как» — получится файл с расширением .erf.
- 1Откройте конфигуратор нужной базы
- 2Файл → Новый → Внешний отчёт
- 3Укажите имя отчёта и подтвердите создание основной схемы компоновки данных
- 4Сохраните файл как .erf через Файл → Сохранить как
Настройка набора данных и запроса
Дважды щёлкните по «Основная схема компоновки данных» — откроется конструктор СКД. На закладке «Наборы данных» нажмите «Добавить → Добавить набор данных — Запрос». Затем нажмите кнопку «Конструктор запроса» и соберите запрос визуально: выберите таблицы (например, регистр накопления «Продажи.Обороты»), поля, виртуальные таблицы с параметрами периода и условия связей, если таблиц несколько.
Используйте виртуальные таблицы регистров («Обороты», «Остатки», «ОстаткиИОбороты») вместо обращения к физическим таблицам движений — это резко упрощает запрос и повышает его производительность. Параметры виртуальных таблиц (НачалоПериода, КонецПериода) СКД автоматически подставит из настроек отчёта, если они описаны в параметрах виртуальной таблицы через амперсанд: &НачалоПериода.
После формирования запроса проверьте закладку «Связи наборов данных», если наборов несколько. Для одного набора данных связи не нужны. Поля запроса автоматически попадут на закладку «Поля» схемы.
ВЫБРАТЬ
ПродажиОбороты.Номенклатура КАК Номенклатура,
ПродажиОбороты.КоличествоОборот КАК Количество,
ПродажиОбороты.СуммаОборот КАК Сумма
ИЗ
РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, , ) КАК ПродажиОборотыРесурсы, параметры и вычисляемые поля
На закладке «Ресурсы» укажите поля, по которым будут рассчитываться итоги: например, Сумма и Количество с агрегатной функцией «Сумма». Без ресурсов группировочные итоги в отчёте не появятся — это одна из самых частых причин «пустого» результата у начинающих. Ресурсы можно ограничить по группировкам, но для простого отчёта оставьте расчёт по всем группировкам.
На закладке «Параметры» проверьте автоматически созданные параметры периода. Для удобства пользователей часто добавляют параметр «Период» типа «СтандартныйПериод» и связывают его с НачалоПериода и КонецПериода через выражения: &Период.ДатаНачала и &Период.ДатаОкончания в колонке «Выражение». Тогда пользователь выбирает один период вместо двух дат.
Если нужны поля, которых нет в запросе (например, средняя цена = Сумма / Количество), добавьте их на закладке «Вычисляемые поля», указав выражение на языке выражений СКД. Для защиты от деления на ноль используйте конструкцию ВЫБОР КОГДА ... ТОГДА ... ИНАЧЕ ... КОНЕЦ.
Настройки отчёта: группировки, отборы и варианты
На закладке «Настройки» в режиме конструктора настроек сформируйте структуру отчёта по умолчанию. Нажмите кнопку «Конструктор настроек» (мастер с иконкой волшебной палочки), выберите тип отчёта — «Таблица» или «Список», отметьте поля группировок (например, Номенклатура) и ресурсы. Для таблицы можно задать строки и колонки — так получается кросс-отчёт, например «Номенклатура × Месяц».
На закладке «Отбор» внутри настроек добавьте поля, доступные пользователю для фильтрации, и включите их в «быстрый доступ», чтобы они отображались прямо в форме отчёта. Параметры периода тоже поместите в пользовательские настройки — иначе пользователь не сможет менять период без входа в «Все настройки».
Для разных сценариев использования создайте несколько вариантов отчёта на панели вариантов (кнопка «Варианты» в конструкторе настроек): например, «По номенклатуре» и «По менеджерам». Каждый вариант хранит собственную структуру группировок и отборы, а пользователь переключается между ними одной кнопкой.
Проверка и отладка отчёта
Сохраните файл, затем в режиме «1С:Предприятие» откройте его через «Файл → Открыть» и выберите ваш .erf. Отчёт сформируется автоматически либо по кнопке «Сформировать». Сначала проверьте работу на заведомо малом периоде с известными данными, чтобы сверить итоги с эталонным отчётом конфигурации или с данными документов.
Если отчёт пустой или падает с ошибкой, проверьте по порядку: корректность периода, наличие данных в регистре, имена параметров, ресурсы и текст запроса через конструктор. Ошибки компоновки платформа показывает в сообщении — в нём обычно указано проблемное поле или параметр.
Как проверить результат
Суммы совпадают с типовым отчётом за тот же период
Итоги расходятся или равны нулю — проверьте ресурсы и виртуальную таблицу
Период меняется из формы отчёта, данные пересчитываются
Период недоступен пользователю или не влияет на результат
Отбор по полю сужает выборку корректно
Отбор не работает — поле не добавлено в настройки отбора
Подключение отчёта к пользователям
Самый простой способ — передать файл пользователю и дать открыть его через «Файл → Открыть». Для регулярной работы в типовых конфигурациях (Бухгалтерия, Управление торговлей, ERP) используйте подсистему «Дополнительные отчеты и обработки»: Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки → Добавить из файла. Отчёт появится в разделе «Дополнительные отчеты» и будет доступен по правам.
Чтобы внешний отчёт корректно зарегистрировался в этой подсистеме, в модуле объекта должна быть функция СведенияОВнешнейОбработке(), возвращающая структуру с видом «ДополнительныйОтчет», версией и наименованием. Без неё многие версии БСП примут файл, но сведения придётся заполнить вручную в карточке регистрации.
Частые ошибки и ограничения
Внешний отчёт, созданный в конфигураторе одной базы, будет работать в другой только при совпадении используемых метаданных: регистров, полей, типов. При переносе между разными конфигурациями (например, из УТ в ERP) запрос почти всегда требует адаптации. Также учитывайте, что версия платформы, в которой сохранён файл, должна быть не выше версии платформы, где файл открывается.
Ещё одно ограничение: внешний отчёт не может использовать общие модули конфигурации, если те не доступны по контексту, а запросы к данным выполняются с правами пользователя, формирующего отчёт. Если у пользователя нет прав на регистр, отчёт вернёт пустой результат без явной ошибки — это часто путают с неисправностью отчёта.
Удобно хранить рабочие версии внешних отчётов в отдельном каталоге с версией в имени файла, например ПродажиПоМенеджерам_v3.erf. При доработке сохраняйте копию под новым номером — тогда откат к рабочему варианту займёт секунды, а пользователи не получат сломанный файл.
Что важно запомнить
Внешний отчёт на СКД создаётся в конфигураторе как файл .erf: запрос через конструктор, ресурсы для итогов, настройки и варианты для пользователя. Проверяйте итоги на малом периоде, выносите период и отборы в пользовательские настройки, а для постоянной работы подключайте отчёт через подсистему дополнительных отчётов и обработок.
Частые вопросы
Можно ли создать внешний отчёт на СКД без конфигуратора?
Полноценно — нет: файл .erf создаётся и редактируется только в конфигураторе. Однако готовый отчёт пользователь может гибко перенастраивать в режиме предприятия через «Все действия → Изменить вариант», если разработчик разрешил изменение настроек.
Чем внешний отчёт отличается от внешней обработки?
Внешний отчёт (.erf) предназначен для вывода данных и обычно строится на СКД. Внешняя обработка (.epf) — это инструмент действий: загрузка, изменение данных, печать. Для аналитики без изменения данных всегда выбирайте отчёт.
Почему отчёт формируется пустым, хотя данные в базе есть?
Чаще всего причины такие: неверный период в параметрах, у пользователя нет прав на регистр, в запросе не используется виртуальная таблица с нужным отбором, либо параметры виртуальной таблицы не связаны с параметрами СКД. Проверяйте в этой последовательности.
Как добавить диаграмму в отчёт на СКД?
В настройках варианта отчёта добавьте в структуру элемент «Диаграмма», укажите поля точек, серий и ресурс-значение. Диаграмма выводится рядом с таблицей в том же варианте; тип диаграммы (график, гистограмма, круговая) задаётся в её свойствах.
Нужен ли программный код в модуле объекта отчёта?
Для большинства отчётов — нет, СКД всё делает сама. Код требуется для нестандартных задач: программной установки параметров, обработки результата, регистрации в подсистеме дополнительных отчётов через функцию СведенияОВнешнейОбработке().
Откроется ли отчёт в другой базе 1С?
Да, если в этой базе существуют все объекты метаданных, использованные в запросе (регистры, справочники, поля с теми же именами), и версия платформы не ниже той, в которой сохранён файл. Иначе потребуется адаптация запроса в конфигураторе целевой базы.