Отчеты и Аналитика · 10 мин
Что такое куб в 1С и как с ним работать
Разбираем, что такое куб в 1С: OLAP-кубы, сводные таблицы, измерения и ресурсы. Как построить отчёт по кубу, где применяются и какие есть альтернативы.
Куб в 1С — это многомерная структура данных, которая позволяет анализировать показатели сразу по нескольким разрезам: по товарам, менеджерам, периодам, складам и другим измерениям одновременно. Термин пришёл из технологии OLAP (On-Line Analytical Processing), где данные представляются не плоской таблицей, а «кубом», у которого каждая грань — отдельное измерение анализа.
В платформе 1С:Предприятие понятие куба встречается в двух контекстах. Первый — сводные таблицы, встроенный инструмент, который строится на основе таблицы значений или результата запроса и позволяет пользователю интерактивно менять строки, колонки и фильтры. Второй — внешние OLAP-кубы, к которым 1С может подключаться или которые строятся на выгрузках из 1С средствами Excel, Power BI и других аналитических систем.
Практическая ценность куба в том, что один и тот же массив данных можно «разрезать» разными способами, не создавая отдельный отчёт под каждый срез. Вместо десяти отчётов «продажи по менеджерам», «продажи по месяцам», «продажи по регионам» пользователь получает один куб и перетаскивает измерения мышью.
Из чего состоит куб: измерения, ресурсы и фильтры
Любой куб описывается тремя базовыми элементами. Измерения — это аналитические разрезы: номенклатура, контрагент, склад, период, подразделение. Ресурсы — числовые показатели, которые агрегируются: сумма продаж, количество, себестоимость, прибыль. Фильтры — условия, которые отсекают лишние данные, например конкретный год или организацию.
Наглядный пример: куб продаж. Измерения — «Месяц», «Менеджер», «Товар». Ресурс — «Сумма выручки». Положив «Месяц» в строки, а «Менеджер» в колонки, вы увидите выручку каждого менеджера помесячно. Перетащив «Товар» вместо «Менеджер», получите помесячную структуру продаж по товарам — те же данные, другой срез, ноль программирования.
Важное свойство куба — агрегация по иерархии. Если измерение «Товар» содержит группы, итоги считаются и по группам, и по отдельным позициям. То же с периодами: данные складываются в месяцы, кварталы и годы автоматически.
Сводные таблицы в 1С — встроенная реализация куба
В управляемых формах 1С сводная таблица — это элемент, который строится поверх источника данных: таблицы значений или результата запроса. Разработчик задаёт источник, список доступных измерений и ресурсов, а пользователь дальше сам решает, что положить в строки, что в колонки и что отфильтровать.
Типовой сценарий: в конфигурации создаётся отчёт, в форму которого добавлена сводная таблица. Источником служит запрос к регистру накопления — например, к регистру «Продажи». Пользователь открывает отчёт, видит готовый срез и может перестроить его: добавить иерархию по контрагентам, свернуть периоды до кварталов, отфильтровать один склад.
Ограничение встроенных сводных таблиц — они работают с данными, уже выбранными из базы. Если источник содержит миллионы строк, выборка и отрисовка будут медленными. Поэтому источник обычно сразу агрегируют запросом: выбирают не документы, а уже сгруппированные итоги.
Как построить отчёт на сводной таблице
Последовательность для разработчика выглядит так. Сначала создаётся отчёт и его форма. Затем в форму добавляется реквизит типа «Сводная таблица» и реквизит-источник — таблица значений с нужными колонками. После этого настраиваются параметры сводной таблицы: какие колонки источника станут измерениями, какие — ресурсами.
Дальше в модуле формы при создании или по команде «Сформировать» выполняется запрос к данным, результат выгружается в таблицу значений, и сводная таблица перестраивается. Пользователь получает интерактивный отчёт, который можно крутить без повторного обращения к базе.
- 1Создайте отчёт и его управляемую форму
- 2Добавьте реквизит формы типа «Сводная таблица» и реквизит-источник «Таблица значений»
- 3Напишите запрос к регистру с группировкой по нужным измерениям и суммированием ресурсов
- 4Выгрузите результат запроса в таблицу значений-источник
- 5Задайте измерения и ресурсы сводной таблицы, обновите отображение
- 6Проверьте работу: перетащите измерение, примените фильтр, сверьте итоги с регистром
Проверка корректности итогов
После настройки обязательно сверьте итоги куба с эталонным отчётом по тому же регистру за тот же период. Расхождение обычно означает одну из трёх проблем: в запросе потеряна часть данных из-за внутреннего соединения, дубли строк из-за лишнего измерения в выборке, либо фильтр отчёта не совпадает с фильтром эталона.
Внешние OLAP-кубы и выгрузка из 1С
Когда данных много или аналитикой занимаются не в 1С, применяют внешние инструменты. Самый доступный вариант — сводная таблица Excel: данные выгружаются из 1С (отчётом, обработкой или через COM/ODBC-подключение), а в Excel строится классический OLAP-анализ с полями строк, колонок, значений и фильтров.
Более продвинутый путь — BI-системы (Power BI, Qlik, Tableau и аналоги). Там куб строится на регулярно обновляемой выгрузке из 1С, а пользователи работают через браузер или десктопное приложение. Такой подход снимает нагрузку с рабочей базы 1С: тяжёлая аналитика выполняется на стороне.
Сравнение вариантов
Подходит для оперативного анализа внутри учётной системы; ограничение — объём источника и скорость отрисовки на больших данных.
Подходит для разового анализа небольших выгрузок; ограничение — ручное обновление данных и риск устаревших копий.
Подходит для регулярной аналитики по крупным массивам; ограничение — нужна настройка выгрузки и обновления, отдельный инструмент.
Когда куб нужен, а когда достаточно обычного отчёта
Куб оправдан, когда пользователь заранее не знает, какой срез ему понадобится, и хочет исследовать данные интерактивно. Типичные задачи: анализ продаж, план-фактный анализ, изучение структуры запасов, дебиторской задолженности по нескольким разрезам.
Если же структура отчёта фиксирована — например, регламентированная форма или ежедневный отчёт с постоянными колонками — проще и быстрее сделать обычный отчёт на СКД. СКД также даёт группировки и отборы, но настраивается быстрее и предсказуемее работает на больших объёмах благодаря серверной агрегации.
Как выбрать действие
Типичные ошибки и ограничения
Самая частая ошибка — передавать в сводную таблицу сырые данные без агрегации. Клиентское приложение вынуждено обрабатывать сотни тысяч строк, форма зависает, а пользователь винит «медленную 1С». Вторая ошибка — избыточное число измерений: куб с десятью разрезами неудобен, и большинство измерений никогда не используется.
Третья группа проблем — методологическая: смешение в одном кубе данных разной природы (например, плана и факта без явного признака), неправильный учёт возвратов как отрицательных продаж без пояснения, итоги по недобавимым ресурсам вроде средних цен. Средние и проценты нельзя просто суммировать — их нужно пересчитывать из базовых сумм.
Как проверить, что куб работает правильно
Контроль сводится к трём проверкам. Первая — итоговая: общая сумма ресурса по кубу должна совпадать с оборотом регистра за тот же период и с теми же отборами. Вторая — срезовая: выберите один элемент измерения (одного менеджера, один месяц) и сверьте его сумму с детальным отчётом. Третья — производительности: отчёт должен открываться за приемлемое время на реальном объёме данных, а не только на тестовой базе.
Как проверить результат
Совпадает с оборотом регистра за тот же период
Расхождение — проверяйте соединения и фильтры в запросе
Равна сумме детального отчёта по этому элементу
Разница — вероятны дубли строк или потеря данных
Отчёт открывается за секунды на реальных данных
Минуты ожидания — агрегируйте источник запросом
FAQ: частые вопросы о кубах в 1С
Куб и сводная таблица — это одно и то же?
По сути да: сводная таблица — это визуальное представление куба. Куб описывает структуру данных (измерения и ресурсы), а сводная таблица показывает выбранный срез этого куба на экране.
Можно ли строить куб без программирования?
В типовых конфигурациях часть аналитических отчётов уже построена на вариантах отчётов с группировками — этого хватает для многих срезов. Полноценная интерактивная сводная таблица обычно требует доработки разработчиком, а альтернатива без кода — выгрузка в Excel.
Чем куб отличается от отчёта на СКД?
СКД формирует отчёт по заранее заданной схеме с группировками и отборами — пользователь может менять настройки, но в рамках схемы. Куб предполагает свободное перемещение измерений между строками и колонками. Для фиксированных форм СКД удобнее и быстрее.
Почему сводная таблица тормозит?
Чаще всего источник содержит слишком много строк. Решение — сгруппировать данные запросом до передачи в сводную таблицу, ограничить период выборки и убрать неиспользуемые колонки из источника.
Можно ли подключить 1С к настоящему OLAP-серверу?
Да, через промежуточную выгрузку: данные из 1С регулярно передаются в хранилище или BI-систему, где и строится куб. Прямое подключение 1С как OLAP-сервера платформа не предоставляет.
Какие ресурсы нельзя просто суммировать в кубе?
Средние значения, проценты, цены и коэффициенты. Их нужно хранить как пару базовых величин (например, сумма и количество) и вычислять итог делением, а не суммированием.
Что важно запомнить
Куб в 1С — многомерный анализ данных через измерения, ресурсы и фильтры. Внутри 1С его реализуют сводные таблицы, снаружи — Excel и BI-системы. Агрегируйте источник запросом, сверяйте итоги с регистром и не суммируйте средние значения.