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

Разработка и Конфигурация · 14 мин

Как встроить внешний отчет в конфигурацию 1С

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

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

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

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

Когда какой способ встраивания выбрать

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

Регистрация через «Дополнительные отчеты и обработки» подходит для типовых конфигураций на полной поддержке: УТ, ERP, Бухгалтерия, ЗУП с включенной БСП. Отчет остается внешним файлом, но хранится внутри базы, доступен пользователям через раздел «Дополнительные отчеты и обработки» и не мешает обновлениям. Минус — такой отчет не участвует в стандартных механизмах прав на уровне метаданных и не виден в конфигураторе.

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

Объект метаданных в конфигураторе

Подходит для доработанных и самописных конфигураций. Отчет виден в подсистемах и правах, обновляется вместе с базой. Требует снятия с поддержки и обновления конфигурации БД.

Дополнительные отчеты и обработки (БСП)

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

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

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

Подготовка внешнего отчета к встраиванию

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

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

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

Встраивание отчета через конфигуратор

Откройте конфигуратор, выполните «Конфигурация — Открыть конфигурацию» и убедитесь, что конфигурация доступна для изменений («Конфигурация — Поддержка — Настройка поддержки»: объект конфигурации должен быть с возможностью изменения). Если конфигурация на полной поддержке без изменений, платформа не даст добавить объект.

Добавьте новый отчет: в дереве конфигурации щелкните правой кнопкой по ветке «Отчеты» и выберите «Добавить». Затем перенесите содержимое внешнего отчета в новый объект. Практический способ — открыть внешний отчет через «Файл — Открыть», в его окне вызвать «Действия — Сохранить копию» не нужно; вместо этого используйте замену: в свойствах нового отчета откройте основную схему компоновки и загрузите её из файла отчета («Заменить» / загрузка схемы), формы и модули переносятся копированием кода или через сравнение-объединение.

Более чистый путь — механизм сравнения и объединения: «Конфигурация — Сравнить, объединить с конфигурацией из файла» работает с файлами .cf, поэтому для .erf он напрямую не применяется. Поэтому на практике перенос делают вручную: схему компоновки загружают из внешнего отчета (конструктор СКД позволяет сохранить схему в XML и загрузить обратно), макеты добавляют через «Макеты — Добавить» с загрузкой из файла, код модуля объекта и форм копируют текстом.

Порядок действий в конфигураторе
  1. 1
    Создайте резервную копию базы или выгрузку .dt перед изменением конфигурации
  2. 2
    Откройте конфигурацию и проверьте возможность изменения в настройках поддержки
  3. 3
    Добавьте новый объект «Отчет», задайте имя и синоним
  4. 4
    Загрузите схему компоновки данных из внешнего отчета (через сохранение/загрузку XML схемы)
  5. 5
    Перенесите макеты, формы и код модулей
  6. 6
    Включите отчет в нужные подсистемы, чтобы он появился в интерфейсе
  7. 7
    Выполните «Конфигурация — Обновить конфигурацию базы данных»
  8. 8
    Проверьте запуск отчета в режиме предприятия под целевым пользователем

Настройка подсистем, команд и прав доступа

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

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

Для отчета на СКД имеет смысл сразу подготовить пользовательские варианты: в режиме предприятия настройте нужные отборы и группировки, сохраните вариант и при необходимости сделайте его доступным другим пользователям через «Изменить вариант — Ещё — Доступность». Это избавит пользователей от ручной настройки после встраивания.

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

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

Отчет в дереве конфигурации
Норма

Объект присутствует в ветке «Отчеты», конфигурация сохраняется без ошибок

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

Отчет не добавляется — конфигурация на поддержке без изменений

Видимость в интерфейсе
Норма

Отчет отображается в панели функций нужного раздела

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

Отчета нет в интерфейсе — не включен в подсистемы или нет прав

Запуск под пользователем
Норма

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

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

Ошибка «Нарушение прав доступа» — не настроены роли

Формирование данных
Норма

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

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

Пустой результат или ошибка запроса — имена объектов в СКД не совпадают с конфигурацией

Регистрация через «Дополнительные отчеты и обработки»

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

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

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

Встраивание через расширение конфигурации

Третий вариант — добавить отчет в расширение. В конфигураторе откройте «Конфигурация — Расширения конфигурации», создайте новое расширение и добавьте в него объект «Отчет» тем же переносом содержимого, что и при встраивании в основную конфигурацию. Расширение подключается к базе без снятия конфигурации с поддержки.

Этот способ сочетает плюсы обоих подходов: отчет становится объектом метаданных (виден в подсистемах расширения, участвует в правах), но типовая конфигурация не меняется и обновляется штатно. Ограничения: расширения требуют аккуратности при обновлении платформы и конфигурации — после обновления расширение нужно проверить на совместимость, иначе база может не запуститься с активным расширением.

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

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

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

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

Типичные ошибки и как их избежать

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

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

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

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

Проверка результата и сопровождение

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

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

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

Итог

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

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

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

Можно ли встроить внешний отчет, не снимая конфигурацию с поддержки?

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

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

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

Почему «Дополнительные отчеты» отказываются загружать мой файл?

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

Как обновить уже встроенный отчет?

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

Можно ли сделать, чтобы встроенный отчет формировался автоматически по расписанию?

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

Что делать, если после обновления конфигурации расширение с отчетом перестало работать?

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