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