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