Отчеты и Аналитика · 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С:Предприятие и нажмите кнопку настроек
- 2Проверьте наличие вкладок с отборами, группировками и условным оформлением
- 3Попробуйте добавить новое поле в группировку из списка доступных полей
- 4Если структура отчета меняется без программирования — это СКД
- 5Для точной проверки откройте конфигуратор и найдите макет типа «Схема компоновки данных»
Какие версии платформы поддерживают СКД
СКД поддерживается во всех линейках восьмой платформы: 8.0, 8.1, 8.2 и 8.3. Однако возможности механизма наращивались постепенно, и часть функций доступна только в более поздних версиях.
Например, в 8.0 и 8.1 отчет на СКД выводился в обычных формах и табличный документ. В 8.2 добавилась работа в управляемом приложении и механизм вариантов отчетов. В 8.3 появились удобные пользовательские настройки в интерфейсе «Такси», быстрые настройки и улучшенная работа с периодами отчета.
Если вы разрабатываете отчет, который должен работать на разных версиях платформы, проверяйте режим совместимости конфигурации: он может ограничивать доступные возможности СКД даже на новой платформе.
СКД на разных версиях платформы
СКД уже работает, но вывод в обычных формах, ограниченные пользовательские настройки
Поддержка управляемых форм и вариантов отчетов, тонкий и веб-клиент
Полноценные настройки в интерфейсе Такси, быстрые пользовательские настройки, рекомендуемый вариант
СКД отсутствует, отчеты только программные — перенос требует переработки
Что делать со старыми отчетами при переходе с 7.7
При миграции с 1С 7.7 на восьмую платформу старые отчеты не переносятся автоматически — их нужно переписывать. Это не недостаток, а возможность: большинство типовых отчетов проще и правильнее реализовать заново на СКД, чем пытаться воспроизвести старую логику кодом.
Практический подход такой: сначала определите, какие данные и группировки реально нужны пользователям, затем постройте схему компоновки с запросом к соответствующим регистрам или документам. В большинстве случаев отчет, который в 7.7 занимал сотни строк кода, на СКД реализуется одним запросом и настройкой структуры.
Оставлять программный вывод имеет смысл только для отчетов со сложной нелинейной логикой: произвольной раскладкой печатной формы, построчной обработкой с обращением к внешним данным, нестандартным интерактивным поведением. Даже в этих случаях СКД можно использовать как источник данных, а вывод доработать программно.
Ограничения и когда СКД не подходит
СКД закрывает подавляющее большинство задач отчетности, но у нее есть границы. Механизм плохо подходит для отчетов с сильно нелинейной структурой вывода, где каждая строка формируется по уникальным правилам, и для документов с произвольной графической разметкой.
Еще одно ограничение — производительность на очень больших выборках. СКД строит результирующий запрос автоматически, и в сложных схемах этот запрос может оказаться неоптимальным. В таких случаях источник данных заменяют на объектный набор: данные готовятся кодом, а СКД используется только для компоновки и вывода.
Также стоит помнить, что пользовательские настройки СКД не заменяют продуманную схему: если поля названы технически, а связи построены неочевидно, пользователи не смогут самостоятельно собрать нужный вариант отчета.
Как начать использовать СКД в своей конфигурации
Для создания первого отчета на СКД достаточно конфигуратора. Добавьте новый объект «Отчет», создайте основную схему компоновки данных, опишите в ней запрос к нужным таблицам, отметьте ресурсы (суммируемые поля) и задайте структуру группировок в настройках. Платформа сама сформирует форму отчета и команду его вызова.
После формирования проверьте результат: откройте отчет в режиме предприятия, измените отборы и группировки через стандартные настройки, убедитесь, что итоги сходятся с контрольными данными из исходных документов или регистров.
Как проверить отчет на СКД
Пользователь может добавлять и менять их без программирования
Настройки зафиксированы на форме, поля не добавляются
Совпадают с контрольной выборкой из регистра
Суммы расходятся или дублируются строки
Отчет формируется за приемлемое время на рабочем объеме данных
Заметная задержка даже на небольшом периоде — проверьте запрос и индексы
Двойной щелчок по ячейке открывает детализацию
Расшифровка не работает или открывает неверные данные
Часто задаваемые вопросы
Была ли СКД в 1С 7.7?
Нет. В платформе 7.7 отчеты строились программно: запрос, цикл по результату и вывод секций табличного документа. Система компоновки данных появилась только в «1С:Предприятие 8.0».
Нужно ли отдельно покупать или устанавливать СКД?
Нет, это встроенный механизм платформы 1С 8. Он доступен в любой конфигурации на восьмой платформе без дополнительных компонентов и лицензий.
Можно ли конвертировать отчет из 7.7 в СКД автоматически?
Штатного конвертера нет. Отчеты переписываются заново: как правило, проще построить новую схему компоновки с нуля, чем воспроизводить старую логику программным кодом.
Почему в моей конфигурации на 8.3 нет удобных настроек отчета?
Возможные причины: отчет построен не на СКД, а программно; либо в конфигурации установлен режим совместимости со старой версией платформы, ограничивающий новые возможности настроек.
СКД — это только для отчетов?
Преимущественно да, но механизм компоновки также используется в динамических списках, в обработках для гибкого отбора данных и в механизмах, где нужен настраиваемый запрос с отборами — например, в правилах подбора и сегментации.
Что выбрать для нового отчета — СКД или программный вывод?
По умолчанию — СКД: вы получите настройки, варианты и расшифровку бесплатно. Программный вывод оправдан только при нестандартной структуре печатной формы или специфической интерактивной логике.