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