Что такое агрегаты в 1с

Обновлено: 05.07.2024

Обычно мы делаем расширения, чтобы не менять основную конфигурацию. Я не рекомендую менять режим совместимости конфигурации поставщика в типовых решениях. Однако если в основной конфигурации установлен режим совместимости 8.3.14 , то мы не сможет создавать собственные константы в расширении, возможности которого появились в технологической платформе 8.3.16. В этом случае, при попытке сохранить расширение получаем следующее предупреждение:

Использование констант в расширениях недопустимо в режиме совместимости 8.3.15 и ниже
При проверке метаданных обнаружены ошибки!
Операция не может быть выполнена.

На сегодняшний день в расширении конфигурации не поддерживается создание следующих собственных объектов:

  • Общие реквизиты.
  • Регламентные задания.
  • Определяемые типы.
  • Хранилища настроек.
  • Языки.
  • Журналы документов.
  • Бизнес-процессы и задачи.
  • Внешние источники данных.

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

Новые возможности расширения конфигурации в последних версиях технологической платформы 1С.

Версия 8.3.18

Реализована возможность расширять типы реквизитов заимствованных объектов, кроме:
1. типов общих реквизитов;
2. реквизитов с типами внешних источников данных;
3. реквизитов, имеющие определяемый тип;
4. реквизит Тип плана видов характеристик.
В документации данное изменение описано здесь.

Версия 8.3.17

Реализована возможность заимствования подписок на события и создания собственных подписок в расширении.
В документации данное изменение описано здесь и здесь.

Версия 8.3.16

Реализована возможность создания в расширении конфигурации:
1. констант;
2. функциональных опций и параметров функциональных опций;
3. критериев отбора.
Реализована возможность расширения:
1. состава заимствованных функциональных опций (собственными и заимствованными объектами);
2. состава заимствованных критериев отбора реквизитами собственных объектов расширения.
В документации данное изменение описано здесь, здесь и здесь.

Версия 8.3.15

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

Версия 8.3.14

1. Реализована возможность расширять состав значений заимствованного перечисления. При удалении расширения, в котором расширен список значений перечисления, реквизиты объектов информационной базы, хранящие удаляемые значения, заполняются пустой ссылкой на перечисление.
В документации данное изменение описано здесь и здесь.
2. Для объектов метаданных, заимствованных в расширение, реализовано свойство Комментарий. Свойство предназначено для использования в процессе разработки расширения и не используется при формировании результирующей конфигурации и проверках применимости расширения.
В документации данное изменение описано здесь.

Версия 8.3.13

В расширении конфигурации реализована возможность создания следующих собственных объектов:
1. планы видов характеристик;
2. планы счетов;
3. планы видов расчета;
4. регистры накопления;
5. регистры бухгалтерии;
6.регистры расчета.

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

В документации данное изменение описано здесь.

Версия 8.3.12

Реализована возможность управлять областью действиярасширения конфигурации и активностью установленных расширений. Областью действия расширения может быть или текущая область данных или вся информационная база.
Управление активностью позволяет отключить расширение, не удаляя его из информационной базы.
Для объекта РасширениеКонфигурации реализованы свойства ОбластьДействия и Активно.
Изменен порядок подключения расширений: в первую очередь подключаются расширения, имеющие областью действия всю информационную базу.
В документации данное изменение описано здесь, здесь и здесь.

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

В документации данное изменение описано здесь.

Версия 8.3.11

Реализована возможность добавлять в расширение конфигурации ;

  • справочники,
  • документы,
  • планы обмена
  • регистры сведений.

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

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

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

Система автоматически оценивает интенсивность работы пользователей с тем или иными разрезами информации и на основе накопленной статистики выбирает оптимальный состав поддерживаемых агрегатов.

Таким образом, агрегаты рассчитываются в пользовательском режиме.

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

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

Для регистров накопления есть возможность использовать вместо итогов агрегаты. В этом случае данные будут также сворачиваться, но:

  • только по комбинациям измерений, выбранным разработчиком;
  • с периодичностью, выбранной разработчиком (в день, месяц, квартал, полугодие, год, непериодически).

Заполнение агрегатов при изменении данных осуществляется при обновлении агрегатов с помощью регламентного задания.

В режиме 1с Предприятие механизм управления агрегатами доступен в меню "Главное меню - Все функции. - Стандартные - Управление итогами".

Режим "Управление итогами"

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

Платформа содержит специальный конструктор агрегатов, позволяющий:

  1. создать и настроить агрегаты, которые будет использовать регистр накопления ;
  2. изменять состав агрегатов и настраивать их использование.

Вызов конструктора агрегатов 1С:

  1. из окна редактирования оборотного регистра накопления;
  2. из дерева конфигурации, из контекстного меню оборотного регистра накопления.

Из окна редактирования оборотного регистра накопления:

Вызов конструктора агрегатов 1С

Из дерева конфигурации, из контекстного меню оборотного регистра накопления:


Если для регистра накопления недоступен конструктор агрегатов, то необходимо изменить настройку регистра накопления "Вид регистра" - "Обороты".


Для отображения в конструкторе списка оптимальных агрегатов необходимо:

  1. произвести расчет оптимальных агрегатов в 1С:Предприятие (кнопка "Получить оптимальные агрегаты" обработки "Управление итогами");
  2. сохранить их в xml-файл;
  3. загрузить их в конструкторе.


Особенности использования агрегатов 1С:

  1. Конструктор агрегатов предназначен для формирования агрегатов только регистров накопления.
  2. Конструктор агрегатов может быть вызван:
  3. по кнопке "Агрегаты" в окне редактирования объекта конфигурации на закладке "Данные";

Вызов конструктора агрегатов 1С

Открыть конструктор агрегатов

Вид регистра накопления 1С

Режим "Управление итогами"
Открыть оптимальные агрегаты

  • в пределах дня;
  • в пределах месяца;
  • в пределах квартала;
  • непериодический.

периодичность агрегатов регистра накопления

Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Для повышения производительности системы в случае использования оборотных регистров накопления предназначен механизм агрегатов. Можно сказать, что агрегаты ‑ это специализированные хранилища, предназначенные для использования в рамках механизмов запросов «1С:Предприятия».

1. Основные понятия

При дальнейшем рассмотрении работы с агрегатами будут использоваться некоторые термины, которые мы определим в этом разделе.

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

Агрегат характеризуется следующими параметрами:

  • Размер агрегата ‑ это размер таблицы агрегата. Оценочный показатель.
  • Эффект ‑ ожидаемое уменьшение среднего времени выполнения запроса с использованием агрегатов. Например, если эффект агрегата равен 90 %, то это означает, что среднее время выполнения запроса с использованием агрегатов будет на 90 % меньше, чем среднее время выполнения того же запроса, но с использованием итогов. Оценочный показатель.

Период агрегата ‑ интервал дат, данные за который помещены в агрегат.

Периодичность агрегата ‑ периодичность, с которой в агрегате хранятся данные.

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

Статистика использования ‑ информация о том, какие запросы (измерения, период, периодичность) выполняются к регистру. Используется для перестроения агрегатов и получения оптимального списка агрегатов.

Оптимальный список агрегатов ‑ список агрегатов, соотношение размера и эффекта которых является оптимальным для текущего состояния регистра (его движений и статистики использования).

Режим агрегатов/итогов ‑ если установлен режим агрегатов, то при выполнении запросов будут использоваться данные агрегатов; если установлен режим итогов, то при выполнении запросов будут использоваться данные итогов.

Использование агрегатов ‑ выключение использования агрегатов означает, что при изменении движений не будет выполняться никаких операций над агрегатами. Выключать использование агрегатов имеет смысл на время массированной загрузки данных в регистры, однако последующее включение использования агрегатов может привести к ресурсоемкому процессу актуализации агрегатов (если изменяемые данные находятся внутри периода агрегатов).

2. Общая схема работы с агрегатами

Приведем общую схему работы с агрегатами:

Рис 1 Общая схема работы с агрегатами (клиент-серверный вариант)

ПРИМЕЧАНИЕ. Данная схема описывает работу с одним регистром. Если необходимо работать с несколькими регистрами, то операцию, выполняемую на каждом шаге, следует выполнить для каждого регистра.

Более подробно распишем приведенную схему работы:

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

Если агрегаты решено создавать в конфигураторе, то это можно сделать несколькими способами:

  • Рассчитать (например, в режиме итогов) и загрузить оптимальные агрегаты (метод ОпределитьОптимальныеАгрегаты()). Если агрегаты ранее не использовались, то список оптимальных агрегатов будет получен только на основании таблицы движений регистра. Если агрегаты использовались, то список оптимальных агрегатов будет построен на основании таблицы движений и статистики использования.
  • Создать собственный список агрегатов на основании анализа запросов к регистру.

2. После обновления конфигурации базы данных включить для регистра режим агрегатов (метод УстановитьРежимАгрегатов()).

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

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

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

4. Затем необходимо выполнить обновление агрегатов (метод ОбновитьАгрегаты()). Обновление агрегатов производит перенос данных из таблиц движений выбранного регистра в соответствующие таблицы агрегатов. Переносятся те движения, которые были созданы в таблице движений после предыдущего обновления агрегатов.

5. Далее следует накопить статистику использования созданных агрегатов. Для этого следует в течение некоторого интервала времени (например, 1 месяц) выполнять типовые задачи, в которых используются данные из регистра, для которого был включен режим агрегатов. В процессе работы необходимо регулярно выполнять обновление агрегатов. По истечению этого периода следует выполнить перестроение агрегатов (шаг 3) и регулярно повторять операции шагов 3 ‑ 5.

Рассмотренная схема описывает подход к работе с агрегатами регистра в клиент-серверном варианте.

В файловом варианте использования системы, работа с агрегатами выглядит несколько по-иному:

Рис2 Общая схема работы с агрегатами (файловый вариант)

Основное отличие этой схемы от общей схемы работы с агрегатами (см. рис. 27) заключается в следующем (будут описаны только отличия):

  • На шаге 1 список агрегатов в конфигураторе следует создавать обязательно.
  • Шаг 6. Пересчет оптимальных агрегатов (метод ОпределитьОптимальныеАгрегаты()) следует выполнять с некоторой регулярностью (например, 1 месяц). Во время этого периода (1 месяц) следует выполнять типовые задачи, в которых используются данные из регистра, для которого был включен режим агрегатов. В процессе работы необходимо регулярно выполнять обновление агрегатов.
  • Шаг 7. После получения нового списка оптимальных агрегатов, необходимо определить, требуется изменение списка агрегатов в метаданных конфигурации или нет. Если изменение не требуется, то следует продолжить работу, перейдя на шаг 3.
  • Шаг 8. Если необходимо выполнить обновление списка агрегатов, то следует выполнить загрузку необходимых (или всех) агрегатов (из списка оптимальных). Затем нужно обновить конфигурацию базы данных (произойдет реструктуризация информационной базы) и потом продолжить работу с шага 3.

Рекомендации по выполнению каждого из рассмотренных шагов рассматриваются в следующем разделе.

3. Рекомендации по использованию агрегатов

Формирование списка агрегатов

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

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

2. Если в регистре присутствует существенное количество записей (более 3 тысяч), то можно выполнить расчет оптимальных агрегатов на основании данных регистра с помощью метода ОпределитьОптимальныеАгрегаты() и загрузить полученный список агрегатов.

Если для используемого регистра был включен режим агрегатов и включено использование агрегатов (т. е. каким-то образом сформирован первоначальный список агрегатов), то можно также получить список оптимальных агрегатов и загрузить его в конфигураторе. Отличие этого способа от способа номер 2 заключается в том, что в этом случае для расчета оптимальных агрегатов будет использоваться статистика, которую ведет система. Поэтому полученный список агрегатов будет более эффективен, нежели получение оптимальных агрегатов для регистра, у которого не был включен режим агрегатов и использование агрегатов.

ПРИМЕЧАНИЕ. Использовать метод получения оптимальных агрегатов имеет смысл в том случае, если в таблице движений регистра находятся не менее 3–5 тысяч записей. На меньшем количестве записей построенный список агрегатов может оказаться неэффективным.

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

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

Однако рекомендации по периоду перестроения в общем случае дать затруднительно, но можно отметить основные факторы:

  1. есть вероятность изменения характера данных в регистре;
  2. есть подозрения на изменение характера запросов (что приведет к изменению накапливаемой статистики).
  3. При выполнении операции следует указать два параметра:
  • Максимальный относительный размер ‑ задает ограничение на размер формируемого списка агрегатов (в процентах от таблицы движений). Если параметр равен 0, то ограничения на размер агрегатов не задаются.
  • Минимальный эффект от перестроения ‑ процент, на который необходимо увеличить эффект старого списка при перестроении. Если новый список увеличивает эффект на заданное значение, то метод реально перестраивает список. Если параметр не указан или равен 0, это означает отсутствие требований к минимальному эффекту.

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

ПРИМЕЧАНИЕ. Операция перестроения является достаточно длительной и ресурсоемкой процедурой. Не рекомендуется выполнять ее во время интенсивной работы с информационной базой других пользователей.

Выполнение операции обновления агрегатов

Данную операцию рекомендуется выполнять чаще, чем выполняется операция перестроения агрегатов.

Обновление агрегатов может выполняться двумя способами:

  • Полностью обновляются все агрегаты, отмеченные как используемые. Это может занимать существенное время.
  • Так называемое «порционное» заполнение. В этом случае за одно обращение обновляется период, равный 1 месяцу в 10 агрегатах.

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

Примечание. Желательно выполнять данную операцию в периоды минимальной нагрузки на информационную базу.

Совет. Рекомендуется использовать режим разделения итогов при использовании агрегатов, особенно если обновление агрегатов выполняется регламентным заданием на фоне интенсивного проведения документов, связанных с регистром, у которого выполняется обновление агрегатов.

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

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

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

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

  • С периодичностью месяц;
  • С периодичностью день.

Запрос исполняется за период с 15 сентября по 15 ноября. В этом случае будут использованы два агрегата:

  • Агрегат с периодичностью месяц будет использован для получения данных за период с 1 октября по 31 октября;
  • Агрегат с периодичностью день будет использован для получения данных за периоды с 15 сентября по 30 сентября и с 1 ноября по 15 ноября;
  • Данные по разным агрегатам будут суммированы для получения окончательного результата.

Виртуальная таблица оборотов регистра, для которого включен режим агрегатов, всегда содержит актуальные данные.

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

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

  • по истечении некоторого времени после первичного формирования списка агрегатов;
  • в случае существенного падения производительности при текущем списке агрегатов;
  • при существенном изменении характера данных;
  • при изменении состава запросов к регистру;
  • если есть вероятность, что текущий список агрегатов перестал быть оптимальным.

Примечание 1. Для клиент-серверного варианта данная операция не является обязательной. Формирование оптимальных агрегатов (при необходимости) выполняется автоматически во время выполнения перестроения агрегатов.

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

Использование регламентных заданий при работе с агрегатами

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

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

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

4. Редактирование агрегатов

Создание и редактирование списка агрегатов возможно только для оборотного регистра накопления (свойство Вид регистра имеет значение Обороты). Для вызова конструктора агрегатов следует использовать команду Открыть агрегаты контекстного меню соответствующего регистра.

Рис 3 Вызов конструктора агрегатов

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

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

При создании агрегатов можно указать вариант использования. Если стоит Авто (по умолчанию), то система будет сама определять необходимость использования данного агрегата во время выполнения операции перестроения агрегатов. Если стоит Всегда, значит система будет использовать агрегат всегда.

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

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

Если существует xml-файл, содержащий список оптимальных агрегатов, то можно выполнить загрузку такого списка. Для этого стоит воспользоваться специальной командой конструктора агрегатов (см. рис. 4) и выбрать там предварительно подготовленный файл.

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

Система выполнит сравнение списка из файла и текущего списка агрегатов и цветом отметит те агрегаты, которые рекомендуется добавить в систему (из списка Оптимальные агрегаты), и агрегаты, которые рекомендуется удалить из системы (список Агрегаты). Предложенные рекомендации можно не выполнять или выполнять в ограниченном объеме.

Читайте также: