Отчеты и Аналитика · 10 мин
Как создать дополнительный отчет в 1С
Как создать дополнительный внешний отчет в 1С: подготовка ERF-файла, подключение через справочник «Дополнительные отчеты и обработки», настройка размещения и прав доступа.
Дополнительный (внешний) отчет в 1С — это файл с расширением .erf, который подключается к конфигурации без её изменения и расширяет стандартный набор отчетов. Такой подход позволяет получить нужную аналитику, не снимая конфигурацию с поддержки и не дожидаясь обновления релиза. Отчет можно переносить между базами, обновлять отдельно и раздавать пользователям с ограниченными правами.
Работа состоит из двух этапов: разработки самого отчета в конфигураторе и подключения готового файла в режиме «1С:Предприятие» через механизм БСП «Дополнительные отчеты и обработки». Ниже разобраны оба этапа, требования к коду, настройка размещения и типичные ошибки, из-за которых отчет не появляется в интерфейсе.
Что потребуется перед началом работы
Для разработки понадобится конфигуратор 1С с доступом к базе, где можно тестировать отчет, и права на запуск внешних отчетов в режиме предприятия. Для подключения готового файла нужны права администратора или роль, разрешающая работу со справочником «Дополнительные отчеты и обработки».
Проверьте, что в конфигурации включен механизм дополнительных отчетов: в разделе «Администрирование» → «Печатные формы, отчеты и обработки» должен стоять флаг «Дополнительные отчеты и обработки». Если флага нет, значит конфигурация не содержит БСП или механизм отключен, и подключать файл придется другим способом — например, через «Файл → Открыть» для разового запуска.
Создание файла отчета в конфигураторе
Откройте конфигуратор и выберите «Файл → Новый → Внешний отчет». Задайте имя латиницей без пробелов — оно станет именем объекта и будет использоваться при регистрации. Синоним укажите на русском: именно его увидит пользователь, если не переопределить представление при подключении.
Для большинства аналитических задач достаточно схемы компоновки данных (СКД). Нажмите «Открыть схему компоновки данных», создайте набор данных с запросом к нужным таблицам, настройте ресурсы, параметры и варианты отчета на закладке «Настройки». СКД дает готовые отборы, группировки и периоды без единой строки кода формирования.
- 1Конфигуратор: Файл → Новый → Внешний отчет, укажите имя и синоним
- 2Создайте основную схему компоновки данных и напишите запрос набора данных
- 3Настройте ресурсы, параметры и хотя бы один вариант отчета
- 4Добавьте в модуль объекта функцию СведенияОВнешнейОбработке
- 5Сохраните файл с расширением .erf и протестируйте через Файл → Открыть
Если логика сложнее, чем позволяет СКД (обращения к внешним источникам, нестандартная обработка), оставьте отчет без схемы и формируйте табличный документ программно в модуле объекта или формы. Учтите: такой отчет потребует больше кода и тестирования, а пользователь лишится типовых настроек СКД.
Функция СведенияОВнешнейОбработке — обязательный минимум
Чтобы файл зарегистрировался в справочнике дополнительных отчетов, в модуле объекта должна быть экспортная функция СведенияОВнешнейОбработке(). Она возвращает структуру с описанием: вид «ДополнительныйОтчет», версия, безопасный режим и таблица команд.
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = Новый Структура;
ПараметрыРегистрации.Вставить("Вид", "ДополнительныйОтчет");
ПараметрыРегистрации.Вставить("Версия", "1.0");
ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);
ПараметрыРегистрации.Вставить("Информация", "Отчет по продажам по менеджерам");
Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить("Представление");
Команды.Колонки.Добавить("Идентификатор");
Команды.Колонки.Добавить("Использование");
Команды.Колонки.Добавить("ПоказыватьОповещение");
Команды.Колонки.Добавить("Модификатор");
Команда = Команды.Добавить();
Команда.Представление = "Продажи по менеджерам";
Команда.Идентификатор = "ПродажиПоМенеджерам";
Команда.Использование = "ОткрытиеФормы";
Команда.ПоказыватьОповещение = Ложь;
Команда.Модификатор = "";
ПараметрыРегистрации.Вставить("Команды", Команды);
Возврат ПараметрыРегистрации;
КонецФункции
Для отчета на СКД без своей формы использование команды укажите «ОткрытиеФормы» — БСП сама откроет типовую форму отчета. Если у отчета есть своя основная форма, она откроется автоматически. Параметр «БезопасныйРежим» рекомендуется оставлять включенным: он запрещает отчету операции с файловой системой и COM-объектами, что снижает риск при запуске файлов из внешних источников.
Подключение отчета в режиме предприятия
Перейдите в «Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки». Нажмите «Добавить из файла», выберите сохраненный .erf-файл. Если функция СведенияОВнешнейОбработке написана корректно, карточка заполнится автоматически: наименование, версия, команды.
Обязательно настройте размещение: в табличной части «Разделы» отметьте, в каких разделах программы отчет появится в списке «Отчеты». Без указания разделов команда существует, но пользователь её не увидит. Также на закладке «Быстрый доступ» укажите пользователей или роли, которым отчет доступен сразу, — остальным придется открывать его через «Ещё» или доступ будет закрыт вовсе.
Как проверить результат
Отчет виден в разделе «Отчеты» выбранного подраздела и открывается
Отчета нет в списке — не заполнены разделы размещения или быстрый доступ
Открывается форма отчета, данные формируются без ошибок
Ошибка «Метод объекта не обнаружен» — неверный код в модуле объекта
Рядовой пользователь видит и запускает отчет
Отчет виден только администратору — не настроен быстрый доступ
Обновление версии и перенос между базами
Когда отчет доработан, увеличьте номер версии в СведенияОВнешнейОбработке и загрузите файл повторно через кнопку «Заменить файл» (или «Загрузить из файла») в карточке элемента справочника. Старый файл при этом сохраняется в истории версий, если она включена, и его можно откатить.
Для переноса в другую базу достаточно передать .erf-файл и подключить его там заново — настройки размещения и быстрого доступа не переносятся, их нужно задать в каждой базе отдельно. Если баз много, удобнее хранить файл в общем сетевом каталоге или репозитории и вести нумерацию версий.
Безопасность и ограничения внешних отчетов
Внешний отчет — это исполняемый код. Никогда не подключайте .erf-файлы из непроверенных источников без просмотра модуля в конфигураторе: в код можно встроить удаление данных или отправку информации наружу. Оставляйте безопасный режим включенным, если отчету не нужны специальные операции.
Учитывайте и технические ограничения: внешний отчет не может содержать предопределенных элементов, его запросы работают только с таблицами текущей конфигурации, а при обновлении релиза 1С типовые имена реквизитов могут измениться — тогда запрос СКД придется поправить. Перед обновлением конфигурации полезно иметь список всех подключенных внешних отчетов и проверять их на тестовой копии.
Альтернативы дополнительному отчету
Не каждая задача требует внешнего файла. Если нужен разовый анализ — используйте типовой отчет с сохраненным вариантом настройки. Если отчет нужен постоянно и у вас есть разработчик — иногда правильнее добавить отчет в расширение конфигурации: тогда он обновляется централизованно и контролируется версиями расширения.
Сравнение вариантов
Подходит для локальных доработок без изменения конфигурации; настройки размещения задаются в каждой базе отдельно
Централизованное обновление и контроль версий; требует навыков разработки и проверки совместимости при обновлении релиза
Быстрее всего, но ограничен возможностями типовой схемы компоновки
Что важно запомнить
Дополнительный отчет создается в конфигураторе как внешний .erf-файл, регистрируется через функцию СведенияОВнешнейОбработке и подключается в справочнике «Дополнительные отчеты и обработки». После подключения обязательно настройте разделы размещения и быстрый доступ, а безопасный режим оставляйте включенным.
Частые вопросы
Загружаю файл, но появляется ошибка регистрации. В чем причина?
Чаще всего в модуле объекта отсутствует экспортная функция СведенияОВнешнейОбработке или она возвращает структуру с ошибкой — например, не заполнена таблица команд или указан неверный вид обработки. Откройте файл в конфигураторе и проверьте код: функция должна быть в модуле объекта, а не в модуле формы.
Отчет подключен, но пользователи его не видят. Что делать?
Проверьте две настройки в карточке дополнительного отчета: табличную часть «Разделы» (должен быть отмечен хотя бы один раздел) и закладку «Быстрый доступ» (туда нужно добавить пользователей или группы). Также убедитесь, что у пользователя есть права на выполнение дополнительных отчетов.
Чем внешний отчет отличается от расширения конфигурации?
Внешний отчет — это отдельный файл, который подключается вручную в каждой базе и не изменяет конфигурацию. Расширение — механизм доработки конфигурации, где отчет становится её частью, обновляется централизованно и попадает в интерфейс автоматически. Для одного-двух отчетов проще внешний файл, для пакета доработок — расширение.
Можно ли использовать внешний отчет в файловой и клиент-серверной базе?
Да, один и тот же .erf-файл работает в обоих вариантах, если запросы внутри него не используют специфику конкретной СУБД. Ограничение касается только кода, рассчитанного на тонкий или веб-клиент: проверяйте директивы компиляции и недоступные на клиенте объекты.
Как отладить запрос СКД, если отчет выдает пустой результат?
Сначала выполните запрос в консоли запросов с теми же параметрами — так видно, проблема в данных или в настройках СКД. Затем проверьте отборы варианта отчета: часто пустой результат дает отбор по полю, которое не заполнено в базе, или период, за который нет данных.
Нужно ли переподключать отчет после обновления конфигурации 1С?
Само подключение сохраняется при обновлении — файл хранится в базе. Но если в новом релизе переименованы объекты метаданных, к которым обращается запрос отчета, отчет начнет выдавать ошибку. После обновления проверьте работу всех внешних отчетов на тестовой копии и при необходимости скорректируйте запросы.