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

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

СКД в 1С: что это такое и как работает система компоновки данных

СКД в 1С — это система компоновки данных для построения отчётов без программирования. Разбираем, что значит СКД, как устроена, чем отличается от запросов и как создать отчёт.

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

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

СКД используется практически во всех типовых конфигурациях: «Управление торговлей», «ERP», «Бухгалтерия», «Зарплата и управление персоналом». Большинство отчётов, которые вы видите в этих программах, построены именно на системе компоновки данных, поэтому понимание её устройства полезно и пользователям, и программистам.

Что означает СКД и зачем нужен этот механизм

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

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

Из чего состоит схема компоновки данных

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

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

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

Как СКД формирует отчёт: этапы выполнения

При нажатии кнопки «Сформировать» платформа выполняет последовательность шагов, которые обычно скрыты от пользователя, но важны для понимания поведения отчёта.

Порядок действий
  1. 1
    Платформа берёт схему компоновки и текущие настройки пользователя
  2. 2
    Компоновщик макета объединяет их и формирует итоговый запрос с учётом отборов и группировок
  3. 3
    Запрос выполняется к базе данных, результат передаётся процессору компоновки
  4. 4
    Процессор выводит данные в табличный документ, диаграмму или сводную таблицу
  5. 5
    Пользователь видит готовый отчёт и может интерактивно изменить настройки

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

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

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

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

Отчёт на СКД

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

Ручной отчёт (запрос + код)

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

Внешний отчёт на СКД

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

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

Как пользователю настроить отчёт на СКД без программирования

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

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

Как разработчику создать простой отчёт на СКД

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

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

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

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

Типичные ошибки при работе со СКД

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

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

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

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

Итоги по группировкам
Норма

Суммы по группам сходятся с общим итогом и с контрольным отчётом

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

Итоги пустые или не равны сумме детальных строк — проверьте закладку «Ресурсы»

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

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

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

Отчёт формируется минутами — смотрите итоговый запрос и отборы по невычисляемым полям

Отборы пользователя
Норма

Отбор применяется и виден в расшифровке результата

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

Отбор «не срабатывает» — вероятно, поле недоступно в настройках или отбор переопределён в коде

Часто задаваемые вопросы

Чем СКД отличается от консоли отчётов и универсального отчёта?

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

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

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

Что такое расшифровка в отчёте на СКД?

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

Почему в настройках отчёта недоступно нужное поле?

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

Подходит ли СКД для печатных форм документов?

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

Можно ли добавить отчёт на СКД, не изменяя конфигурацию?

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

Итог

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

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