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

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

СКД в 1С: когда появилась система компоновки данных и что это изменило

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

Система компоновки данных (СКД) появилась вместе с платформой «1С:Предприятие 8.0», выпуск которой состоялся в 2003 году. Именно с выходом восьмой версии платформы разработчики получили принципиально новый механизм построения отчетов, заменивший связку «запрос + табличный документ + конструктор», которая использовалась в 1С 7.7.

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

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

В какой версии 1С появилась СКД

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

Важно различать платформу и конфигурацию. Платформа 8.0 предоставила сам механизм СКД, но конкретные отчеты на его основе появлялись в типовых конфигурациях постепенно, по мере выпуска «1С:Управление торговлей», «1С:Бухгалтерии 8» и других решений. Ранние отчеты на восьмой платформе иногда еще писались по-старому, через табличные документы.

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

Что было до СКД: отчеты в 1С 7.7

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

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

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

Чем СКД отличается от старого подхода

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

Критерий1С 7.7 (без СКД)1С 8.x (СКД)
Способ построенияПрограммный код, циклы, секции макетаДекларативная схема компоновки
Настройки пользователяРисуются и программируются вручнуюГенерируются автоматически из схемы
Изменение структуры отчетаТолько через доработку кодаПользователем в режиме настроек
РасшифровкаПрограммируется отдельноВстроенный механизм расшифровки
Варианты отчетаНе поддерживаются штатноСохраняются и переключаются пользователем

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

Как проверить, что отчет построен на СКД

На практике часто нужно понять, на чем построен конкретный отчет — от этого зависит, можно ли его гибко настраивать. Есть несколько простых признаков.

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

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

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

Какие версии платформы поддерживают СКД

СКД поддерживается во всех линейках восьмой платформы: 8.0, 8.1, 8.2 и 8.3. Однако возможности механизма наращивались постепенно, и часть функций доступна только в более поздних версиях.

Например, в 8.0 и 8.1 отчет на СКД выводился в обычных формах и табличный документ. В 8.2 добавилась работа в управляемом приложении и механизм вариантов отчетов. В 8.3 появились удобные пользовательские настройки в интерфейсе «Такси», быстрые настройки и улучшенная работа с периодами отчета.

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

СКД на разных версиях платформы

Платформа 8.0–8.1

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

Платформа 8.2

Поддержка управляемых форм и вариантов отчетов, тонкий и веб-клиент

Платформа 8.3

Полноценные настройки в интерфейсе Такси, быстрые пользовательские настройки, рекомендуемый вариант

Платформа 7.7

СКД отсутствует, отчеты только программные — перенос требует переработки

Что делать со старыми отчетами при переходе с 7.7

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

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

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

Типичные ошибки при работе с СКД
01
Перенос логики 7.7 «один в один» кодом вместо использования схемы — отчет теряет гибкость и настройки
02
Запрос к виртуальным таблицам без отборов по периоду — отчет работает медленно на больших базах
03
Использование соединений в запросе там, где достаточно связей наборов данных — лишняя нагрузка на СУБД
04
Игнорирование режима совместимости — часть возможностей СКД недоступна, хотя платформа новая
05
Хранение настроек пользователя вручную вместо штатного механизма вариантов отчетов

Ограничения и когда СКД не подходит

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

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

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

Как начать использовать СКД в своей конфигурации

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

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

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

Как проверить отчет на СКД

Отборы и группировки
Норма

Пользователь может добавлять и менять их без программирования

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

Настройки зафиксированы на форме, поля не добавляются

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

Совпадают с контрольной выборкой из регистра

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

Суммы расходятся или дублируются строки

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

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

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

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

Расшифровка
Норма

Двойной щелчок по ячейке открывает детализацию

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

Расшифровка не работает или открывает неверные данные

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

Была ли СКД в 1С 7.7?

Нет. В платформе 7.7 отчеты строились программно: запрос, цикл по результату и вывод секций табличного документа. Система компоновки данных появилась только в «1С:Предприятие 8.0».

Нужно ли отдельно покупать или устанавливать СКД?

Нет, это встроенный механизм платформы 1С 8. Он доступен в любой конфигурации на восьмой платформе без дополнительных компонентов и лицензий.

Можно ли конвертировать отчет из 7.7 в СКД автоматически?

Штатного конвертера нет. Отчеты переписываются заново: как правило, проще построить новую схему компоновки с нуля, чем воспроизводить старую логику программным кодом.

Почему в моей конфигурации на 8.3 нет удобных настроек отчета?

Возможные причины: отчет построен не на СКД, а программно; либо в конфигурации установлен режим совместимости со старой версией платформы, ограничивающий новые возможности настроек.

СКД — это только для отчетов?

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

Что выбрать для нового отчета — СКД или программный вывод?

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