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

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

Как создать отчёт в конфигураторе 1С

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

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

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

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

Подготовка: что нужно перед созданием отчёта

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

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

Создание объекта «Отчёт» в дереве конфигурации

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

На вкладке «Подсистемы» отметьте, в каких разделах интерфейса отчёт будет виден. Если конфигурация построена на БСП, видимость в панели отчётов дополнительно настраивается через модуль менеджера отчёта, но на первом этапе достаточно подсистемы. Основная форма отчёта для СКД-отчётов обычно не нужна: платформа сгенерирует её автоматически.

Порядок действий
  1. 1
    Откройте конфигуратор и дерево конфигурации
  2. 2
    Добавьте объект «Отчёт», задайте имя и синоним
  3. 3
    Отметьте подсистемы, где отчёт будет виден
  4. 4
    Откройте «Основную схему компоновки данных» кнопкой «Открыть схему компоновки данных»
  5. 5
    Сохраните конфигурацию и обновите конфигурацию базы данных (F7)

Схема компоновки данных: запрос и наборы данных

На закладке «Основная схема компоновки данных» нажмите кнопку открытия схемы — платформа предложит создать схему по умолчанию. На закладке «Наборы данных» добавьте набор типа «Запрос» и откройте конструктор запроса. Выберите таблицу-источник, перетащите нужные поля, задайте связи, если таблиц несколько.

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

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

bsl
ВЫБРАТЬ
	ПродажиОбороты.Номенклатура КАК Номенклатура,
	ПродажиОбороты.Менеджер КАК Менеджер,
	ПродажиОбороты.СуммаОборот КАК Сумма
ИЗ
	РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, , ) КАК ПродажиОбороты

Ресурсы, параметры и настройки отчёта

На закладке «Ресурсы» укажите, какие поля суммируются: перенесите числовые поля (например, «Сумма», «Количество») и проверьте, что выражение — «Сумма(Сумма)». Без ресурсов группировки покажут данные, но итоги корректно считаться не будут.

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

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

Проверка отчёта в режиме «Предприятие»

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

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

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

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

Итоги по суммам
Норма

Совпадают с типовым отчётом по тому же регистру за тот же период

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

Расхождения или задвоенные строки — ошибка в связях запроса

Скорость формирования
Норма

Отчёт формируется за секунды на рабочем объёме данных

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

Минутное ожидание — отборы не вынесены в параметры виртуальной таблицы

Параметры периода
Норма

Период виден в форме и влияет на результат

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

Период серый или не фильтрует данные

Типичные ошибки при создании отчётов

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

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

Типичные ошибки
01
Левое соединение с таблицей, где ключ не уникален — суммы задваиваются
02
Параметр конца периода типа «Дата» без состава времени — теряется последний день
03
Отбор в настройках вместо параметров виртуальной таблицы — отчёт тормозит
04
Забытые ресурсы — итоги по группировкам не считаются
05
Отчёт не добавлен ни в одну подсистему — пользователи его не видят

Когда СКД недостаточно: программная доработка

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

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

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

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

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

FAQ: частые вопросы об отчётах в конфигураторе

Можно ли создать отчёт без написания запроса?

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

Почему отчёт виден в конфигураторе, но не виден у пользователя?

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

Как добавить в отчёт колонку с вычисляемым значением?

Используйте закладку «Вычисляемые поля» в схеме компоновки: задайте путь к данным и выражение, например процент от итога или разность двух полей. Вычисляемое поле затем доступно в ресурсах и настройках наравне с полями запроса.

Отчёт формируется очень долго. Что проверить в первую очередь?

Откройте запрос и убедитесь, что отборы и период переданы в параметры виртуальной таблицы, а не в условие ГДЕ или настройки СКД. Также проверьте, не соединяются ли две большие таблицы без индексированных полей связи — это главная причина медленных отчётов.

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

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

Итог

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

Отчёт в конфигураторе 1С = объект «Отчёт» + схема компоновки данных: запрос к виртуальным таблицам, ресурсы, параметры периода и настройки по умолчанию. Отборы выносите в параметры виртуальных таблиц, результат сверяйте с типовыми отчётами, а для типовых конфигураций используйте внешние отчёты или расширения.