Агрегаты регистров накопления в 1С 8.3

Курс

Агрегаты

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

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

Если используются агрегаты, то при использовании виртуальной таблицы оборотов с периодичностью, совпадающей с периодичностью агрегатов, данные будут получены из таблицы агрегатов.

Если периодичность агрегатов меньше периодичности виртуальной таблицы оборотов, то все равно платформа сможет использовать такой агрегат (но это не гарантируется), в отличии от таблицы итогов .

Если есть два агрегата, один с периодичностью месяц, а второй с периодичностью день, то если получить запросом данные с 01.04.2021 по 15.05.2021, то за апрель данные будут получены из первого агрегата, а с 01.05.2021 по 15.05.2021 — из второго.

Агрегаты поддерживают следующие виды периодичности:

  • День
  • Месяц
  • Квартал
  • Полугодие
  • Год
  • Непериодический

Ограничения агрегатов:

  • Для регистра накопления с видом Остатки нельзя использовать агрегаты.
  • Если у оборотного регистра больше 30 измерений, то для него нельзя использовать агрегаты.

Работа с агрегатами отличается для клиент-серверного и файлового режима работы.

Агрегаты в клиент-серверном режиме

Алгоритм создания агрегатов:

  1. Включить для регистра режим использования агрегатов
  2. Выполнить перестроение агрегатов
  3. Периодическое обновление агрегатов
  1. В пользовательском режиме в функциях технического специалиста нужно открыть обработку Управление итогами:
Управление итогами

В правом нижнем углу включить полные возможности (если они еще не включены) и перейти на закладку Агрегаты:

Агрегаты

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

Включить режим агрегатов

Теперь для регистра включено использование агрегатов, однако в нижней части окна все еще нет ни одного агрегата.

  1. Для создания агрегатов нужно нажать на кнопку Перестроить. Будет открыто окно с параметрами перестроения:
Параметры перестроения агрегатов

Максимальный относительный размер — это ограничение на таблицу агрегата. Указывается в процентах от таблицы движений. 0 — значит без ограничения.

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

Здесь можно просто нажать ОК. После этого платформа выполнит перестроение сети агрегатов и создаст те агрегаты, которые посчитает нужным. Для этого платформа анализирует статистику выполнения запросов к регистру.

В моем случае были созданы два агрегата:

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

Данные из таблицы движений будут перенесены в таблицу агрегатов.

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

Агрегаты в файловом режиме

Алгоритм создания агрегатов:

  1. Рассчитать список оптимальных агрегатов
  2. На основании списка оптимальных агрегатов создать необходимые агрегаты в конфигураторе
  3. Включить для регистра режим использования агрегатов
  4. Выполнить перестроение агрегатов
  5. Периодическое обновление агрегатов
  1. Для расчета оптимальных агрегатов в обработке Управление итогами нужно нажать на кнопку Оптимальные:
Оптимальные агрегаты

Можно указать ограничение на размер таблицы агрегатов в процентах от таблицы движений:

Параметры оптимальных агрегатов

0 — без ограничений. Так и сделаем и нажмем ОК. Система предложит выбрать каталог куда будет сохранен XML-файл со списком оптимальных агрегатов. Сохраним его куда-нибудь.

  1. Теперь в конфигураторе нужно открыть список агрегатов регистра. Для этого на закладке Данные нужно нажать на кнопку Агрегаты:
Агрегаты

Будет открыт конструктор агрегатов регистра. Здесь есть кнопка Открыть оптимальные агрегаты:

Открыть оптимальные агрегаты

Нажимаем и выбираем XML-файл с именем нашего регистра из каталога, который сохранили ранее.

В правой части окна система предложит список оптимальных агрегатов:

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

Нажав на кнопку с двумя стрелками влево перенесем оптимальные агрегаты в список агрегатов регистра.

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

Нажмем ОК и сохраним конфигурацию базы данных.

  1. Использование агрегатов включается аналогично клиент-серверному режиму.
  1. Перестроение и периодическое обновление агрегатов выполняется аналогично клиент-серверному режиму.

Конструктор агрегатов

В конфигураторе можно вручную создавать агрегаты через конструктор агрегатов. Если выбрать Использование = Авто, то такие агрегаты будут учитываться при перестроении сети агрегатов и система сможет выключить его. Если указать Использование = Всегда, то перестроение сети не будет влиять на него.

Периодичность = Авто означает, что периодичность будет определять система при перестроении сети агрегатов.

Нужные измерения отмечаются флажками.

Конструктор агрегатов

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

В обработке Управление итогами есть подменю Использование, где можно включить/выключить использование агрегатов:

Эта функция аналогична выключению итогов регистра накопления. Сами агрегаты не будут удалены или очищены, просто будет отключено их использование. При обращении к виртуальной таблице оборотов будет ошибка «Использование агрегатов выключено».

Удалить все данные из таблицы агрегатов можно по нажатию на кнопку Очистить:

Очистить агрегаты

Программная работа с агрегатами

Для включения режима агрегатов используется метод УстановитьРежимАгрегатов. Если передать параметром Истина, то будут выключены итоги и включены агрегаты. Если передать Ложь, то наоборот.

Узнать текущий режим можно методом ПолучитьРежимАгрегатов. Данный метод вернет Истина, если используются агрегаты и Ложь в противном случае.

Получить информацию о текущих агрегатах можно с помощью метода ПолучитьАгрегаты:

Для перестроения сети агрегатов используется метод ПерестроитьИспользованиеАгрегатов. Параметрами принимает Максимальный относительный размер и минимальный эффект от перестроения. Данные параметры аналогичны параметрам при интерактивном перестроении. Если после использования метода сеть была перестроена, то он вернет Истина:

Для обновления агрегатов используется метод ОбновитьАгрегаты. Если параметром передать Истина, то будет выполнено порционное обновление. Если Ложь, то полное обновление. Проверить нужно ли обновлять агрегаты можно методом АгрегатыЗаполнены. Если он вернет Истина, то агрегаты не нужно обновлять.

С помощью метода ОпределитьОптимальныеАгрегаты можно получить список оптимальных агрегатов, записать их в XML, а потом загрузить в конфигураторе:

С помощью метода УстановитьИспользованиеАгрегатов можно управлять включением/выключением использования агрегатов. А методом ПолучитьИспользованиеАгрегатов можно узнать текущее состояние:

Очистить все агрегаты регистра можно методом ОчиститьАгрегаты:


Подписывайтесь на группу ВКонтакте , где я публикую ссылки на новые статьи с данного сайта, а также интересные материалы с других ресурсов по программированию в 1С
Здесь может быть Ваша реклама
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Используя этот сайт, Вы даете согласие на использование cookies. На данном этапе Вы можете отказаться от использования cookies, настроив необходимые параметры в своем браузере.
ok