Отчеты и Аналитика · 10 мин
Как создать отчёт в конфигураторе 1С
Как создать отчёт в конфигураторе 1С: СКД, схема компоновки, запрос, настройки. Пошаговая инструкция, типичные ошибки и проверка результата.
Создание отчётов — одна из самых частых задач при доработке конфигураций 1С. Практически все современные отчёты строятся на системе компоновки данных (СКД): она позволяет один раз описать источник данных и структуру отчёта, а пользователь затем сам меняет отборы, группировки и порядок колонок без обращения к разработчику. Работа ведётся в конфигураторе, в ветке «Отчёты» дерева конфигурации.
Базовый сценарий выглядит так: добавляете новый объект метаданных «Отчёт», открываете схему компоновки данных, пишете запрос к нужным таблицам, настраиваете ресурсы, параметры и настройки по умолчанию. После обновления конфигурации базы данных отчёт становится доступен пользователям в режиме «Предприятие». Для типовых конфигураций на БСП (Библиотека стандартных подсистем) отчёт дополнительно подключают к подсистеме вариантов отчётов, чтобы он появился в панели отчётов.
Ниже разобран полный цикл: от создания объекта до проверки результата и типичных ошибок, которые мешают отчёту корректно работать. Примеры ориентированы на управляемые формы и платформу 8.3, но общая логика СКД одинакова для большинства конфигураций.
Подготовка: что нужно перед созданием отчёта
Прежде чем открывать конфигуратор, определите, какие данные должен показывать отчёт и откуда они берутся. Найдите нужные таблицы: обороты регистров накопления (например, «Продажи.Обороты»), остатки («ТоварыНаСкладах.Остатки»), сведения из документов или справочников. От правильного выбора источника зависит и простота запроса, и скорость отчёта.
Проверьте права: для работы в конфигураторе нужны права на изменение конфигурации, а для проверки — запуск тонкого или толстого клиента в режиме «Предприятие». Если конфигурация находится на поддержке без возможности изменения, потребуется снять объект с поддержки или использовать механизм расширений — для доработки типовых решений расширение обычно предпочтительнее.
Создание объекта «Отчёт» в дереве конфигурации
В конфигураторе откройте дерево конфигурации (меню «Конфигурация» → «Открыть конфигурацию»), найдите ветку «Отчёты» и через контекстное меню выберите «Добавить». На вкладке «Основные» задайте имя (латиницей, без пробелов, например «ПродажиПоМенеджерам») и синоним — именно синоним увидят пользователи.
На вкладке «Подсистемы» отметьте, в каких разделах интерфейса отчёт будет виден. Если конфигурация построена на БСП, видимость в панели отчётов дополнительно настраивается через модуль менеджера отчёта, но на первом этапе достаточно подсистемы. Основная форма отчёта для СКД-отчётов обычно не нужна: платформа сгенерирует её автоматически.
- 1Откройте конфигуратор и дерево конфигурации
- 2Добавьте объект «Отчёт», задайте имя и синоним
- 3Отметьте подсистемы, где отчёт будет виден
- 4Откройте «Основную схему компоновки данных» кнопкой «Открыть схему компоновки данных»
- 5Сохраните конфигурацию и обновите конфигурацию базы данных (F7)
Схема компоновки данных: запрос и наборы данных
На закладке «Основная схема компоновки данных» нажмите кнопку открытия схемы — платформа предложит создать схему по умолчанию. На закладке «Наборы данных» добавьте набор типа «Запрос» и откройте конструктор запроса. Выберите таблицу-источник, перетащите нужные поля, задайте связи, если таблиц несколько.
Используйте виртуальные таблицы регистров вместо соединений с физическими таблицами: «Обороты», «Остатки», «ОстаткиИОбороты» уже содержат агрегированные данные и поддерживают параметры периода. Параметры виртуальной таблицы (начало и конец периода, отборы) задавайте в конструкторе через кнопку «Параметры таблицы» — так отбор выполнится на уровне СУБД до получения данных, а не после.
Для периодов удобно использовать стандартные параметры СКД. В тексте запроса к виртуальной таблице укажите параметры вида &НачалоПериода и &КонецПериода, а на закладке «Компоновка данных» конструктора запроса включите автозаполнение — платформа сама создаст параметры с правильными типами.
ВЫБРАТЬ
ПродажиОбороты.Номенклатура КАК Номенклатура,
ПродажиОбороты.Менеджер КАК Менеджер,
ПродажиОбороты.СуммаОборот КАК Сумма
ИЗ
РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, , ) КАК ПродажиОборотыРесурсы, параметры и настройки отчёта
На закладке «Ресурсы» укажите, какие поля суммируются: перенесите числовые поля (например, «Сумма», «Количество») и проверьте, что выражение — «Сумма(Сумма)». Без ресурсов группировки покажут данные, но итоги корректно считаться не будут.
На закладке «Настройки» соберите внешний вид отчёта по умолчанию: добавьте группировку (например, по менеджерам), вложенную группировку по номенклатуре, выберите поля в выбранные поля. На закладке «Параметры» внутри настроек сделайте периоды доступными пользователю: включите их в пользовательские настройки с режимом «Быстрый доступ», чтобы период отображался прямо в форме отчёта.
Полезный приём — стандартный период вместо двух дат. Добавьте параметр типа «СтандартныйПериод» и в выражениях параметров виртуальной таблицы используйте его свойства «ДатаНачала» и «ДатаОкончания». Пользователь получит привычный выбор периода («Месяц», «Квартал», «Произвольный») одним элементом.
Проверка отчёта в режиме «Предприятие»
После обновления конфигурации базы данных (F7) запустите режим «Предприятие», откройте отчёт из соответствующей подсистемы и сформируйте его за период, где точно есть данные. Сверьте итоги с независимым источником: типовым отчётом по тому же регистру или ручной выборкой документов.
Проверьте поведение пользовательских настроек: смените период, добавьте отбор через «Ещё» → «Изменить вариант», сверните и разверните группировки. Если конфигурация на БСП, убедитесь, что вариант отчёта сохраняется и отчёт доступен в разделе «Отчёты» соответствующей подсистемы — для этого в модуле менеджера отчёта может понадобиться процедура определения настроек.
Как проверить результат
Совпадают с типовым отчётом по тому же регистру за тот же период
Расхождения или задвоенные строки — ошибка в связях запроса
Отчёт формируется за секунды на рабочем объёме данных
Минутное ожидание — отборы не вынесены в параметры виртуальной таблицы
Период виден в форме и влияет на результат
Период серый или не фильтрует данные
Типичные ошибки при создании отчётов
Самая частая проблема — задвоение строк из-за лишних соединений в запросе. Если к оборотам регистра присоединить таблицу, где на один ключ приходится несколько записей, суммы умножатся. Проверяйте результат на малом периоде с известными данными, прежде чем показывать отчёт пользователям.
Вторая группа ошибок связана с параметрами: не включён быстрый доступ к периоду, у параметра неверный тип (дата без времени обрезает конец периода до начала дня), отбор задан в настройках вместо параметров виртуальной таблицы. Для конца периода используйте «КонецПериода(&Дата, День)» или параметр стандартного периода, чтобы последний день попадал в выборку целиком.
Когда СКД недостаточно: программная доработка
Если данные нужно предварительно обработать кодом (сложные расчёты, данные из внешних источников), используйте набор данных типа «Объект» и программное формирование в модуле объекта отчёта через событие «ПриКомпоновкеРезультата». Туда передают готовую таблицу значений или дерево как внешний набор данных.
Альтернатива для разовых задач — внешний отчёт (файл .erf): он создаётся так же, но не требует изменения конфигурации и подключается через «Дополнительные отчёты и обработки». Это безопасный способ дать пользователям новый отчёт в типовой конфигурации без снятия её с поддержки.
Как выбрать действие
FAQ: частые вопросы об отчётах в конфигураторе
Можно ли создать отчёт без написания запроса?
Частично: конструктор запроса собирает текст визуально, но минимальное понимание структуры таблиц всё равно нужно. Совсем без запроса не обойтись — СКД требует хотя бы один набор данных, а самый простой способ его получить именно запросом.
Почему отчёт виден в конфигураторе, но не виден у пользователя?
Проверьте три вещи: обновлена ли конфигурация базы данных, отмечена ли хотя бы одна подсистема у объекта и есть ли у пользователя права на отчёт. В конфигурациях на БСП дополнительно проверьте регистрацию варианта в подсистеме «Варианты отчётов».
Как добавить в отчёт колонку с вычисляемым значением?
Используйте закладку «Вычисляемые поля» в схеме компоновки: задайте путь к данным и выражение, например процент от итога или разность двух полей. Вычисляемое поле затем доступно в ресурсах и настройках наравне с полями запроса.
Отчёт формируется очень долго. Что проверить в первую очередь?
Откройте запрос и убедитесь, что отборы и период переданы в параметры виртуальной таблицы, а не в условие ГДЕ или настройки СКД. Также проверьте, не соединяются ли две большие таблицы без индексированных полей связи — это главная причина медленных отчётов.
Чем внешний отчёт отличается от встроенного?
Встроенный хранится внутри конфигурации и требует её изменения и обновления БД. Внешний — отдельный файл .erf, который подключается без изменения конфигурации; его удобно использовать для типовых решений на поддержке и для быстрой доставки доработок пользователям.
Что важно запомнить
Отчёт в конфигураторе 1С = объект «Отчёт» + схема компоновки данных: запрос к виртуальным таблицам, ресурсы, параметры периода и настройки по умолчанию. Отборы выносите в параметры виртуальных таблиц, результат сверяйте с типовыми отчётами, а для типовых конфигураций используйте внешние отчёты или расширения.