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