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

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

Как создать дополнительный отчет в 1С

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

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

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

Что потребуется перед началом работы

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

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

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

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

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

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

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

Функция СведенияОВнешнейОбработке — обязательный минимум

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

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

ПараметрыРегистрации = Новый Структура;

ПараметрыРегистрации.Вставить("Вид", "ДополнительныйОтчет");

ПараметрыРегистрации.Вставить("Версия", "1.0");

ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);

ПараметрыРегистрации.Вставить("Информация", "Отчет по продажам по менеджерам");

Команды = Новый ТаблицаЗначений;

Команды.Колонки.Добавить("Представление");

Команды.Колонки.Добавить("Идентификатор");

Команды.Колонки.Добавить("Использование");

Команды.Колонки.Добавить("ПоказыватьОповещение");

Команды.Колонки.Добавить("Модификатор");

Команда = Команды.Добавить();

Команда.Представление = "Продажи по менеджерам";

Команда.Идентификатор = "ПродажиПоМенеджерам";

Команда.Использование = "ОткрытиеФормы";

Команда.ПоказыватьОповещение = Ложь;

Команда.Модификатор = "";

ПараметрыРегистрации.Вставить("Команды", Команды);

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

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

Для отчета на СКД без своей формы использование команды укажите «ОткрытиеФормы» — БСП сама откроет типовую форму отчета. Если у отчета есть своя основная форма, она откроется автоматически. Параметр «БезопасныйРежим» рекомендуется оставлять включенным: он запрещает отчету операции с файловой системой и COM-объектами, что снижает риск при запуске файлов из внешних источников.

Подключение отчета в режиме предприятия

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

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

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

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

Отчет в списке раздела
Норма

Отчет виден в разделе «Отчеты» выбранного подраздела и открывается

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

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

Запуск команды
Норма

Открывается форма отчета, данные формируются без ошибок

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

Ошибка «Метод объекта не обнаружен» — неверный код в модуле объекта

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

Рядовой пользователь видит и запускает отчет

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

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

Обновление версии и перенос между базами

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

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

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

Безопасность и ограничения внешних отчетов

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

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

Альтернативы дополнительному отчету

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

Сравнение вариантов

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

Подходит для локальных доработок без изменения конфигурации; настройки размещения задаются в каждой базе отдельно

Расширение конфигурации

Централизованное обновление и контроль версий; требует навыков разработки и проверки совместимости при обновлении релиза

Сохраненный вариант типового отчета

Быстрее всего, но ограничен возможностями типовой схемы компоновки

Итог

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

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

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

Загружаю файл, но появляется ошибка регистрации. В чем причина?

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

Отчет подключен, но пользователи его не видят. Что делать?

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

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

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

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

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

Как отладить запрос СКД, если отчет выдает пустой результат?

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

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

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