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