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

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

Как создать внешний отчет в 1С: практическое руководство

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

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

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

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

Выбор способа: СКД или программное формирование

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

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

Сравнение подходов

Отчет на СКД

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

Программный отчет

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

СКД + код в модуле

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

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

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

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

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

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

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

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

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

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

Программный вариант без СКД

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

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

Запуск и проверка отчета в режиме предприятия

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

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

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

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

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

Совпадают с типовым отчетом за тот же период

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

Расхождения в суммах или количестве строк

Отборы и параметры
Норма

Изменение периода и отборов корректно перестраивает результат

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

Отбор игнорируется или вызывает ошибку

Пустой результат
Норма

Выводится пустой отчет без ошибок

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

Появляется сообщение об ошибке или пустое окно

Права пользователя
Норма

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

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

Ошибки доступа к данным под неполными правами

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

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

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

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

Типичные ошибки и их устранение

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

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

Типичные ошибки
01
Параметры периода заданы в условии ГДЕ вместо параметров виртуальной таблицы — отчет работает медленно на больших базах
02
Отсутствует функция СведенияОВнешнейОбработке — отчет не регистрируется в подсистеме дополнительных отчетов
03
Использованы поля, которых нет в данной конфигурации — ошибка при формировании после обновления релиза
04
Нет проверки отчета под обычным пользователем — у сотрудников без полных прав возникают ошибки доступа
05
Файл отчета хранится в одном экземпляре на локальном диске — при сбое теряется единственная рабочая версия
Удобно хранить исходники внешних отчетов в общем сетевом каталоге или системе контроля версий вместе с файлом-описанием: для какой конфигурации и релиза сделан отчет, какие объекты использует. Это заметно упрощает поддержку при обновлениях базы.
ПЗ
Практическое замечание

Ограничения внешних отчетов и когда нужна доработка конфигурации

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

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

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

Маршрут решения

Как выбрать действие

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

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

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

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

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

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

Нарушит ли внешний отчет поддержку конфигурации?

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

Почему отчет не появляется в списке дополнительных отчетов после загрузки?

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

Как обновить уже подключенный внешний отчет на новую версию?

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

Итог

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

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