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