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

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

Для чего нужны агрегаты в 1С и как с ними работать

Для чего нужны агрегаты в 1С: ускорение отчётов по регистрам накопления, настройка, перестроение, ограничения и типичные ошибки при работе с агрегатами.

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

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

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

Как устроен механизм агрегатов

Агрегат описывается тремя параметрами: периодичностью (день, месяц, квартал и так далее), набором измерений и набором ресурсов, которые будут суммироваться. Например, агрегат «месяц + склад + номенклатура» по ресурсу «Количество» хранит суммарные обороты по каждой комбинации этих значений за каждый месяц.

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

Важно понимать: агрегаты работают только с оборотами. Остатки на произвольную дату по агрегатам не вычисляются — для этого существуют итоги регистров. Поэтому механизм применяется к регистрам с видом «Обороты», а не «Остатки».

Какие задачи решают агрегаты

Главная задача — ускорение аналитических отчётов по большим регистрам. Типичный сценарий: менеджер строит отчёт по продажам за квартал в разрезе контрагентов и товаров. Без агрегатов платформа читает все движения за период; с агрегатами — десятки или сотни готовых строк вместо миллионов.

Вторая задача — разгрузка сервера в часы пик. Когда десятки пользователей одновременно открывают отчёты, каждый тяжёлый запрос конкурирует за ресурсы СУБД. Агрегаты сокращают объём читаемых данных на порядки, снижая нагрузку на дисковую подсистему и процессор.

Третья задача — ускорение типовых механизмов, опирающихся на обороты: динамические списки с итогами, панели показателей, произвольные запросы к оборотам регистра. Если конфигурация активно использует оборотные данные, агрегаты дают эффект без переписывания кода.

Отчёт строится минутамиВысокая нагрузка на регистр

Проверьте объём движений регистра и включён ли режим агрегатов

Регистр с видом «Обороты»Агрегаты применимы

Откройте свойства регистра в конфигураторе и проверьте вид

Быстрый рост базыЭффект агрегатов будет расти

Оцените прирост документов в месяц и планируйте перестроение

Где агрегаты применимы, а где бесполезны

Агрегаты имеет смысл включать для оборотных регистров накопления, по которым регулярно строятся отчёты с группировками по измерениям: продажи, закупки, взаиморасчёты по оборотам, движения товаров. Чем больше движений и чем чаще отчёты, тем выше выигрыш.

Для регистров с видом «Остатки» механизм недоступен — там работают обычные итоги, и их актуальность поддерживается платформой автоматически. Также агрегаты бесполезны, если отчёты всегда строятся по детальным записям или по реквизитам, не входящим в измерения агрегата: платформа просто не сможет его использовать.

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

Сравнение вариантов

Агрегаты

Подходят для оборотных регистров с частыми аналитическими отчётами; требуют настройки и перестроения

Стандартные итоги регистров

Работают автоматически для остатков и оборотов, но не дают выигрыша на произвольных аналитических срезах

Оптимизация запросов и индексов

Универсальный путь без дополнительных таблиц, но требует доработки кода и не всегда даёт нужный эффект на больших объёмах

Как включить и настроить агрегаты

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

После изменения структуры агрегатов требуется обновление конфигурации базы данных и первоначальное перестроение — платформа рассчитает итоги по всем накопленным движениям. На больших регистрах эта операция может занять заметное время, поэтому её планируют на нерабочие часы.

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

Перестроение и актуальность агрегатов

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

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

Признак того, что агрегаты «отстали», — постепенное замедление отчётов, которые недавно работали быстро. Проверить состояние можно через штатные функции управления итогами и агрегатами в режиме предприятия или программно через менеджер регистра.

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

Как проверить результат

Скорость отчёта за квартал
Норма

Отчёт строится за секунды

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

Время не изменилось — агрегат не подхватывается запросом

Состав измерений агрегата
Норма

Совпадает с группировками реальных отчётов

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

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

Актуальность после перестроения
Норма

Отчёты стабильно быстрые

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

Через несколько дней снова тормозит — нужно чаще обновлять

Ограничения и цена использования

Агрегаты занимают место в базе: каждый агрегат — это дополнительная таблица, размер которой зависит от количества комбинаций измерений. На регистрах с высокой кардинальностью (много товаров, складов, контрагентов) таблицы могут вырасти до значительных объёмов.

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

Наконец, агрегаты не заменяют нормальную оптимизацию: если отчёт написан с ошибками — соединения в виртуальных таблицах, отборы по несуществующим индексам — агрегаты не исправят ситуацию. Сначала стоит убедиться, что запросы и структура метаданных адекватны задаче.

Типичные ошибки при работе с агрегатами

Самая частая ошибка — включить «всё подряд»: все измерения и максимальную периодичность. В результате таблицы агрегатов раздуваются, запись документов тормозит, а реальный выигрыш минимален, потому что отчёты используют лишь часть срезов.

Вторая ошибка — включить агрегаты и забыть про обновление. Через несколько недель агрегаты перестают использоваться из-за накопленных изменений, и администратор ошибочно делает вывод, что механизм не работает.

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

Типичные ошибки
01
Включение всех измерений подряд — раздувание таблиц и замедление проведения документов
02
Отсутствие регламентного обновления — агрегаты «отстают» и перестают использоваться платформой
03
Попытка применить агрегаты к регистру остатков — механизм недоступен, эффекта нет
04
Оценка результата без замера — без сравнения времени отчёта до и после невозможно понять, сработала ли настройка

Как принять решение о внедрении

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

Внедряйте поэтапно: один регистр, один-два агрегата, замер эффекта в течение недели. Такой подход позволяет откатить изменение без потерь, если выигрыш не оправдает накладных расходов.

Маршрут решения

Как выбрать действие

Отчёты по оборотному регистру строятся минутами, движений многоВключите агрегаты с измерениями из реальных отчётов и настройте регламентное обновление
Отчёты медленные, но регистр с видом «Остатки»Агрегаты не помогут — проверяйте итоги, индексы и текст запроса
База небольшая, отчёты строятся за секундыАгрегаты не нужны, ограничьтесь штатными итогами
После включения проведение документов замедлилосьСократите число измерений и агрегатов, оставив только используемые срезы
Перед настройкой выгрузите список реально используемых отчётов и их группировок у пользователей. На практике оказывается, что двух-трёх агрегатов под популярные срезы достаточно, а остальные комбинации измерений только грузят базу.
ПЗ
Практическое замечание

Частые вопросы об агрегатах в 1С

Чем агрегаты отличаются от итогов регистра?

Итоги поддерживаются платформой автоматически и дают быстрые остатки и обороты в целом по регистру. Агрегаты — это настраиваемые таблицы оборотов по выбранным измерениям и периодичности, которые администратор проектирует под конкретные отчёты и обновляет по регламенту.

Можно ли включить агрегаты для регистра с видом «Остатки»?

Нет, механизм агрегатов предназначен только для регистров накопления с видом «Обороты». Для регистров остатков ускорение достигается штатными итогами, корректными индексами и оптимизацией запросов.

Как часто нужно перестраивать агрегаты?

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

Ускорят ли агрегаты произвольный отчёт на СКД?

Да, если запрос отчёта обращается к оборотам регистра и его группировки совместимы с измерениями и периодичностью существующего агрегата. Если отчёт использует реквизиты или срезы, не охваченные агрегатом, платформа построит его по движениям без ускорения.

Что делать, если после включения агрегатов стало только хуже?

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

Итог

Что важно запомнить

Агрегаты ускоряют отчёты по оборотным регистрам накопления за счёт предрассчитанных итогов по выбранным измерениям. Включайте их только под реальные отчёты, с минимально необходимым набором измерений, обязательно настройте регламентное обновление и замеряйте эффект до и после.