Гайд 1С: Настройка агрегатов для оборотных регистров накопления
- Аналитические отчеты по оборотным регистрам с большими периодами (год, квартал) выполняются крайне медленно.
- Высокая нагрузка на дисковую подсистему СУБД при расчете итогов по оборотам за прошлые периоды.
- Неэффективное сканирование многомиллионных таблиц движений вместо использования предрассчитанных итогов.
1. Включение механизма агрегатов в метаданных
- В дереве метаданных конфигуратора откройте требуемый Регистр накопления (с видом
Обороты). - Перейдите на вкладку Агрегаты и нажмите кнопку
Использовать агрегаты. - Включите автоматическое создание агрегатов или сформируйте оптимальный список измерений вручную (на основе статистики реальных отчетов).
2. Регламентное обслуживание агрегатов в коде 1С
Агрегаты требуют регулярного обновления и перестроения по накопленной статистике. Создайте регламентное задание:
// 1. Перестроение схемы агрегатов на основе накопленной статистики запросов
РегистрыНакопления.Продажи.ПерестроитьИндексыАгрегатов();
// 2. Обновление значений агрегатов по актуальным движениям
РегистрыНакопления.Продажи.ОбновитьАгрегаты();3. Программный контроль использования агрегатов
// Проверка включения режима агрегатов для регистра
Использовать = РегистрыНакопления.Продажи.ПолучитьИспользованиеАгрегатов();
Если Не Использовать Тогда
РегистрыНакопления.Продажи.УстановитьИспользованиеАгрегатов(Истина);
КонецЕсли; Частые вопросы (FAQ)
В чем разница между итогами регистров остатков и агрегатами оборотных регистров?
Итоги регистров остатков хранят срез на границу каждого месяца. Агрегаты оборотных регистров хранят многомерные предварительно рассчитанные суммы по комбинациям измерений за разные интервалы времени (день, месяц, квартал, год), выбирая наиболее оптимальный слой для отчета.
Почему агрегаты не создаются для регистров остатков?
Для регистров остатков платформа использует жестко фиксированную таблицу итогов. Механизм агрегатов математически применим только к аддитивным оборотным величинам.
Как часто нужно обновлять данные агрегатов?
Обновление агрегатов (дорасчет) рекомендуется запускать регламентным заданием в нерабочие часы раз в сутки или раз в неделю в зависимости от интенсивности проведения документов.
Влияет ли включение агрегатов на скорость проведения документов?
Практически нет. Запись движений в документ пишет только в основную таблицу движений, а агрегаты рассчитываются и обновляются асинхронно или регламентным фоновым заданием.