Система компоновки данных
Система компоновки данных (СКД) — это механизм платформы «1С:Предприятие», предназначенный для создания произвольных отчётов и аналитических отчётов на основе запросов к данным информационной базы. СКД позволяет разработчику и, в определённой степени, конечному пользователю гибко настраивать структуру, группировки, фильтры, оформление и вывод итогов отчёта без необходимости изменения программного кода. Является ключевым инструментом для построения бизнес-аналитики в экосистеме 1С.
История и развитие
Система компоновки данных была впервые представлена компанией «1С» в версии платформы 8.0 (начало 2000-х годов). До её появления отчёты в 1С создавались исключительно с помощью программного кода на встроенном языке, что требовало высокой квалификации разработчика и делало процесс изменения отчёта трудоёмким. СКД стала эволюционным шагом, отделившим логику формирования отчёта от его представления.
В версии 8.1 и 8.2 механизм был значительно расширен: появилась возможность настройки схемы компоновки данных через визуальный конструктор, были добавлены расширенные возможности по работе с вычисляемыми полями, ресурсами и диаграммами. В версии 8.3 СКД получила поддержку вариативных настроек, улучшенную производительность за счёт оптимизации запросов, а также возможность работы с внешними источниками данных (например, с базами данных других СУБД или веб-сервисами). Начиная с версии 8.3.6, в СКД была добавлена возможность вывода отчётов в виде табличного документа с произвольным оформлением ячеек и слиянием областей.
Архитектура и ключевые понятия
СКД основана на многослойной архитектуре, которая разделяет этапы получения данных, их обработки и вывода.
Схема компоновки данных (СКД)
Схема компоновки данных — это основной объект метаданных, который описывает, какие данные будут запрашиваться, как они будут группироваться, сортироваться и вычисляться. Она включает в себя:
- Наборы данных — описание источников данных (обычно это запросы на языке запросов 1С, но могут быть и объекты, и внешние источники).
- Поля — перечень полей, доступных для использования в отчёте (измерения, ресурсы, реквизиты).
- Вычисляемые поля — поля, значения которых вычисляются на основе других полей или с помощью выражений.
- Ресурсы — поля, по которым будут вычисляться итоги (суммы, количества, средние значения и т.д.).
- Параметры — внешние значения, влияющие на выполнение запроса (например, дата начала периода, организация).
- Макеты — настройки оформления отчёта (шрифты, цвета, расположение полей).
- Варианты настроек — предопределённые пользовательские настройки отчёта (например, «Отчёт по продажам за месяц» или «Отчёт по остаткам товаров»).
Настройки компоновки данных
Настройки определяют, как именно данные будут отображаться в отчёте. Они делятся на два уровня:
- Базовые настройки — задаются разработчиком в схеме и определяют структуру по умолчанию.
- Пользовательские настройки — могут быть изменены конечным пользователем в режиме работы с отчётом (например, добавление/удаление группировок, изменение фильтров, выбор полей для вывода).
Процесс формирования отчёта
Формирование отчёта в СКД проходит несколько этапов:
- Компоновка — система на основе схемы и настроек генерирует текст запроса к базе данных.
- Выполнение запроса — получение данных из информационной базы.
- Вычисление итогов — расчёт агрегатных значений (сумм, средних) по заданным ресурсам.
- Вывод результата — формирование табличного документа, диаграммы или другого представления на основе макета оформления.
Возможности и функциональность
СКД предоставляет широкий спектр возможностей для построения отчётов:
- Гибкая группировка — возможность группировать данные по одному или нескольким уровням (например, по контрагентам, затем по месяцам).
- Произвольные фильтры — наложение условий на отбираемые данные (отбор по дате, по сумме, по наименованию).
- Сортировка — упорядочивание данных по возрастанию или убыванию.
- Условное оформление — изменение внешнего вида ячеек (цвет, шрифт) в зависимости от значений данных (например, выделение красным просроченных задолженностей).
- Диаграммы — визуализация данных в виде круговых, столбчатых, линейных и других диаграмм.
- Расшифровка — возможность перехода от итоговой строки к детальным данным (например, щелчок по сумме продаж за месяц открывает список продаж по дням).
- Вывод в различные форматы — отчёт может быть выведен в табличный документ, текстовый документ, графическую схему, а также экспортирован в форматы Excel, PDF, HTML, CSV.
- Работа с внешними источниками — возможность получать данные из внешних баз данных (например, Microsoft SQL Server, PostgreSQL) или из веб-сервисов.
Применение
Система компоновки данных является основным инструментом для создания отчётов в большинстве типовых конфигураций на платформе «1С:Предприятие» (например, «1С:Бухгалтерия», «1С:Управление торговлей», «1С:Зарплата и управление персоналом»). Она используется для:
- Финансовой отчётности — отчёты о прибылях и убытках, балансы, оборотно-сальдовые ведомости.
- Управленческой отчётности — анализ продаж, остатков, дебиторской задолженности.
- Аналитики — построение кросс-таблиц, ABC-анализ, анализ по сегментам.
- Регламентированной отчётности — формирование налоговых деклараций и бухгалтерской отчётности (в некоторых конфигурациях).
Преимущества и недостатки
Преимущества
- Снижение трудозатрат — разработка отчёта занимает меньше времени по сравнению с написанием кода.
- Гибкость — пользователь может самостоятельно настраивать отчёт под свои нужды без участия программиста.
- Единообразие — все отчёты, построенные на СКД, имеют единую логику и стиль оформления.
- Масштабируемость — механизм оптимизирован для работы с большими объёмами данных.
Недостатки
- Сложность освоения — для создания сложных отчётов (с нестандартными алгоритмами, сложными вычислениями) требуется глубокое понимание механизма.
- Ограниченная производительность — при очень большом количестве полей и группировок запрос может выполняться дольше, чем оптимизированный ручной код.
- Ограничения на нестандартную логику — некоторые виды отчётов (например, с иерархическими подчинённостями, нелинейными расчётами) сложно или невозможно реализовать с помощью СКД без использования программных расширений.
Интересные факты
- СКД является одной из самых мощных и востребованных технологий в экосистеме 1С. По оценкам разработчиков, более 90% всех отчётов в современных типовых конфигурациях создаётся с её помощью.
- Механизм позволяет создавать отчёты, которые могут быть запущены как в толстом клиенте, так и в веб-клиенте, а также на мобильных устройствах.
- В версии 8.3.10 появилась возможность выводить отчёты в виде «схемы данных» — графического представления связей между объектами.
Источники
- Радченко М.Г., Хрусталёва Е.Ю. «1С:Предприятие 8.3. Практическое пособие разработчика». — М.: 1С-Паблишинг, 2020.
- Официальная документация фирмы «1С»: «Система компоновки данных. Руководство разработчика».
- Габец А.П., Гончаров Д.И. «1С:Предприятие 8.3. Профессиональная разработка». — СПб.: БХВ-Петербург, 2019.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →