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

Отчеты и Аналитика · 11 мин

Как подключить отчёт на СКД как внешний отчёт в 1С

Как создать отчёт на СКД и подключить его как внешний отчёт в 1С: СведенияОВнешнейОбработке, регистрация в справочнике, типовые ошибки и проверка результата.

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

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

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

Когда внешний отчёт на СКД — правильный выбор

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

Если же отчёт нужен всем пользователям постоянно, активно дорабатывается вместе с конфигурацией и участвует в бизнес-логике (например, вызывается из других объектов), лучше добавить его в конфигурацию штатно. Внешний отчёт — это про гибкость и независимость от релизного цикла.

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

Внешний отчёт через БСП

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

Отчёт в составе конфигурации

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

Открытие файла через «Файл → Открыть»

Быстрый разовый запуск для проверки. Не подходит для пользователей: нет прав, разделов и настроек по умолчанию.

Создание внешнего отчёта со схемой компоновки

Откройте конфигуратор и выполните Файл → Новый → Внешний отчёт. Укажите имя латиницей без пробелов, например АнализПродажПоМенеджерам. Синоним — то, что увидит пользователь: «Анализ продаж по менеджерам».

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

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

Функция СведенияОВнешнейОбработке — паспорт отчёта

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

Минимальный работающий вариант для отчёта на СКД:

Функция СведенияОВнешнейОбработке() Экспорт

ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.5.1");

ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительныйОтчет();

ПараметрыРегистрации.Версия = "1.0";

ПараметрыРегистрации.БезопасныйРежим = Ложь;

НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();

НоваяКоманда.Представление = НСтр("ru = 'Анализ продаж по менеджерам'");

НоваяКоманда.Идентификатор = "АнализПродажПоМенеджерам";

НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();

НоваяКоманда.ПоказыватьОповещение = Ложь;

Возврат ПараметрыРегистрации;

КонецФункции

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

Поле БезопасныйРежим определяет, будет ли код отчёта выполняться с ограничениями. Если отчёт обращается только к данным информационной базы через запрос СКД, безопасный режим можно оставить включённым. Если код обращается к файловой системе, COM-объектам или внешним компонентам — потребуется Ложь и права администратора при регистрации.

Регистрация отчёта в режиме предприятия

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

Порядок регистрации
  1. 1
    Откройте «Администрирование → Печатные формы, отчеты и обработки» и включите «Дополнительные отчеты и обработки».
  2. 2
    Перейдите в справочник «Дополнительные отчеты и обработки» и нажмите «Создать».
  3. 3
    Загрузите файл .erf, согласитесь с предупреждением безопасности при наличии прав.
  4. 4
    Проверьте вид («Дополнительный отчёт»), версию и команду запуска — они подтягиваются из СведенияОВнешнейОбработке.
  5. 5
    На вкладке «Размещение» отметьте разделы, где отчёт будет доступен.
  6. 6
    Запишите элемент и откройте отчёт из раздела «Отчёты» выбранного раздела.

На вкладке «Размещение» укажите, в каких разделах программы отчёт появится в списке отчётов. Если не выбрать ни одного раздела, команда регистрации пройдёт, но пользователи отчёт не увидят — это одна из самых частых причин «пропавшего» отчёта.

Доступ к отчёту регулируется стандартными правами на элемент справочника и механизмом быстрого доступа: в карточке можно указать, каким пользователям отчёт доступен. Права на данные внутри запроса СКД применяются платформой автоматически — пользователь увидит только те записи, которые ему разрешены (при включённом RLS).

Вариант без БСП: открытие файла напрямую

В конфигурациях без библиотеки стандартных подсистем справочника дополнительных отчётов нет. Там внешний отчёт запускается через Файл → Открыть с выбором файла .erf. Платформа сама построит форму отчёта по основной схеме компоновки.

Чтобы пользователям не приходилось искать файл, можно программно добавить команду в интерфейс: подключить отчёт через ВнешниеОтчеты.Создать(ПутьКФайлу) или зарегистрировать его в хранилище с последующим открытием через ВнешниеОтчеты.ПолучитьФорму(). Это уже доработка конфигурации, поэтому для типовых решений без БСП чаще выбирают простой вариант с открытием файла.

Проверка результата и контрольные точки

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

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

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

Отчёт в списке раздела
Норма

Команда видна в «Отчёты» выбранного раздела

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

Отчёта нет — не заполнено размещение или нет прав

Формирование
Норма

Данные выводятся, отборы работают

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

Пустой результат или ошибка запроса — проверяйте текст запроса и параметры СКД

Под другим пользователем
Норма

Отчёт открывается и учитывает права на данные

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

«Недостаточно прав» или отчёт не виден — настройте доступ в карточке

После обновления конфигурации
Норма

Отчёт продолжает работать

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

Ошибка вызова СведенияОВнешнейОбработке — изменилась версия формата БСП

Типовые ошибки и ограничения

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

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

Обновление и версионирование внешнего отчёта

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

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

Итог

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

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

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

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

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

Почему после регистрации отчёт не появляется в разделах?

Чаще всего не заполнена вкладка «Размещение» в карточке дополнительного отчёта. Также проверьте, что команда в сведениях имеет использование «ОткрытиеФормы», а у пользователя есть права на элемент справочника и сам раздел.

Нужна ли основная форма отчёта или достаточно схемы СКД?

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

Как передать параметры в отчёт при открытии из документа?

Используйте вид «ДополнительныйОтчет» с назначением: в функции сведений заполните массив Назначение типами объектов, тогда отчёт появится в меню «Отчёты» формы объекта, а ссылка на объект будет доступна в команде. Для автономного отчёта параметры задаются пользователем в форме настроек СКД.

Отчёт работает у разработчика, а у клиента ошибка в запросе. В чём причина?

Запрос СКД обращается к метаданным конкретной конфигурации. Если у клиента другая конфигурация, релиз или отключены функциональные опции, часть таблиц или полей может отсутствовать. Тестируйте отчёт на копии базы клиента и избегайте обращений к необязательным объектам.

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

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