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

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

Как создать внешний отчёт в 1С на управляемых формах

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

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

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

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

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

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

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

Внешний отчёт или доработка конфигурации

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

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

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

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

Подключение через дополнительные отчёты

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

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

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

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

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

Настройка схемы компоновки данных

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

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

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

Добавление управляемой формы отчёта

Если автоматической формы недостаточно, создайте свою. В окне редактирования отчёта нажмите кнопку с изображением лупы у поля «Основная форма отчёта» и добавьте новую форму. Конструктор предложит тип формы — выберите «Форма отчета», платформа сама создаст управляемую форму с реквизитом «Отчет» и стандартной командной панелью.

В модуле формы помните про директивы компиляции: &НаКлиенте, &НаСервере, &НаСервереБезКонтекста. Обращение к данным информационной базы (запросы, объектные данные) возможно только в серверных процедурах. Типичная ошибка новичка — попытаться выполнить запрос в клиентской процедуре: платформа выдаст ошибку о недопустимом вызове.

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

bsl
&НаСервере
Процедура СформироватьНаСервере()
    Результат.Очистить();
    СкомпоноватьРезультат();
КонецПроцедуры

&НаКлиенте
Процедура Сформировать(Команда)
    СформироватьНаСервере();
КонецПроцедуры

Открытие и подключение отчёта в 1С:Предприятии

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

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

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

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

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

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

Ещё одна группа проблем — права доступа. Внешний отчёт выполняется под правами пользователя, который его открыл: если у сотрудника нет прав на чтение регистра, отчёт сформируется пустым или с ошибкой доступа. Это нормальное поведение платформы, а не дефект отчёта; проверяйте такие ситуации под пользователем с целевыми правами.

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

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

Отчёт открывается в управляемом режиме
Норма

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

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

Пустое окно, ошибка о невозможности открыть обычную форму

Итоги отчёта
Норма

Суммы совпадают с типовым отчётом по тем же данным

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

Итоги пустые, нулевые или завышены в разы

Скорость формирования
Норма

Отчёт за месяц формируется за секунды

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

Формирование занимает минуты даже за короткий период

Работа под обычным пользователем
Норма

Данные выводятся в рамках его прав

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

Ошибки доступа или неожиданно пустой результат

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

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

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

Итог

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

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

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

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

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

Почему внешний отчёт открывается пустым окном?

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

Как добавить в отчёт параметр периода?

В СКД на закладке «Параметры» заведите параметры НачалоПериода и КонецПериода с типом «Дата», используйте их в запросе или параметрах виртуальной таблицы и включите в пользовательские настройки с режимом «Быстрый доступ».

Нужна ли функция СведенияОВнешнейОбработке в модуле отчёта?

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

Отчёт работает у администратора, а у менеджера пустой. В чём причина?

Внешний отчёт выполняется с правами открывшего его пользователя. Проверьте права менеджера на чтение регистров и документов, из которых берёт данные запрос, и убедитесь, что не действует ограничение доступа на уровне записей (RLS).

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

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