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

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

Как создать отчет на СКД в 1С: пошаговое руководство

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

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

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

Материал ориентирован на платформу 1С 8.3 и подходит как для новых отчетов в собственной конфигурации, так и для внешних отчетов, подключаемых к типовым решениям через механизм дополнительных отчетов и обработок.

Что такое СКД и когда её использовать

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

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

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

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

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

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

Написание запроса в схеме компоновки

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

Пример простого запроса для набора данных:

ВЫБРАТЬ

Продажи.Номенклатура КАК Номенклатура,

Продажи.Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры,

Продажи.КоличествоОборот КАК Количество,

Продажи.СуммаОборот КАК Сумма

ИЗ

РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, , ) КАК Продажи

Параметры виртуальной таблицы (&НачалоПериода, &КонецПериода) СКД автоматически превратит в параметры отчета. Не накладывайте отбор по периоду вручную через ГДЕ — это лишит пользователя возможности менять период в настройках. Для произвольных условий используйте конструкцию {ГДЕ (...)} — расширение языка запросов СКД, которое делает отбор управляемым из настроек.

Ресурсы, параметры и вычисляемые поля

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

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

Если требуется поле, которого нет в запросе (например, средняя цена = Сумма / Количество), добавьте его на вкладке «Вычисляемые поля» с выражением на языке выражений СКД. Для деления обязательно обрабатывайте ноль: используйте конструкцию ВЫБОР КОГДА Количество = 0 ТОГДА 0 ИНАЧЕ ... КОНЕЦ.

Настройка структуры отчета

Вкладка «Настройки» определяет, что увидит пользователь. В простейшем случае добавьте группировку по измерению (например, «ВидНоменклатуры»), внутрь нее — группировку «Номенклатура», а в выбранные поля — ресурсы. Для вывода без группировок используйте элемент «Детальные записи».

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

Порядок создания отчета на СКД
  1. 1
    Создайте объект «Отчет» в конфигураторе и задайте имя и синоним
  2. 2
    Добавьте основную схему компоновки данных и набор данных «Запрос»
  3. 3
    Напишите запрос с параметрами периода и нужными полями
  4. 4
    Отметьте ресурсы и задайте агрегатные функции
  5. 5
    Настройте группировки, выбранные поля и пользовательские отборы
  6. 6
    Сохраните конфигурацию и сформируйте отчет в режиме 1С:Предприятие

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

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

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

Типичные ошибки
01
Отбор по периоду через ГДЕ вместо параметров виртуальной таблицы — пользователь не сможет менять период
02
Отсутствие ресурсов на вкладке «Ресурсы» — группировки выводятся без итогов
03
Соединение таблиц без учета кратности — суммы в отчете задваиваются
04
Переименование полей запроса без обновления настроек — ошибка «Поле не найдено»
05
Вывод большого отчета без отборов — долгое формирование и нагрузка на сервер
Контрольные точки

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

Итоговая сумма отчета
Норма

Совпадает с типовым отчетом или контрольным запросом

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

Расходится — ищите дубли в соединениях или неверный ресурс

Настройки пользователя
Норма

Отбор и период меняются без ошибок

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

Параметры недоступны или отчет падает при смене отбора

Время формирования
Норма

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

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

Формирование занимает минуты — нужны индексы, отборы или периодичность виртуальной таблицы

Внешний отчет и программное формирование

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

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

Начинайте с минимальной схемы: один запрос, два-три поля, одна группировка. Убедившись, что итоги сходятся, добавляйте поля и настройки по одному — так проще локализовать ошибку, чем отлаживать сразу сложный отчет.
ПЗ
Практическое замечание

Ответы на частые вопросы

Можно ли создать отчет на СКД без программирования?

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

Чем СКД отличается от отчета на обычном запросе?

Запрос только выбирает данные, а вывод и настройки приходится программировать вручную. СКД автоматически дает группировки, итоги, отборы, варианты отчета и стандартную форму — пользователь меняет настройки без доработок.

Почему отчет формируется пустым?

Чаще всего причина в параметрах виртуальной таблицы (период не задан или задан неверно) либо в отборе, которому не соответствуют данные. Проверьте запрос в консоли запросов с теми же параметрами — если там пусто, проблема в данных или условиях.

Как дать пользователю выбор периода одним полем?

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

Можно ли использовать несколько запросов в одном отчете?

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

Как обновить внешний отчет, не нарушая работу пользователей?

Загрузите новую версию файла .erf в справочник дополнительных отчетов и обработок — пользователи получат обновление при следующем открытии отчета. Старую версию файла сохраните, чтобы откатиться при ошибках.

Итог

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

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