Графики для регистров расчета с поддержкой периода действия и особенности их конфигурирования

Регистры расчета системы 1С:Предприятие 8 предназначены для реализации периодических расчетов и регистрации их результатов. Можно выделить два основных типа регистров расчета – с поддержкой и без поддержки периода действия.

Период действия и получение оборотов за произвольный период времени

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

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

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

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

В предметной области такой период действия записи регистра расчета почти всегда является "неоднородным" на своей протяженности. Это значит, например, что если сотруднику начислена с 01-01-2004 по 20-01-2004 некоторая сумма, то для получения суммы начислений с 10-01-2004 по 15-01-2004 мы в данной записи регистра должны выделить часть начисленной суммы, которая войдет в сумму, и не можем при этом воспользоваться обычным "календарным" временем. При получении такого итога необходимо учесть "неоднородность" периода действия с точки зрения начисленной суммы. Это, например, график рабочего времени, по которому в свое время производилось рассматриваемое нами начисление.

График

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

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

Настройка графика при конфигурировании выглядит как на рисунке.

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

Дата графика Значение графика
01-01-2004 0
02-01-2004 0
03-01-2004 0
04-01-2004 0
05-01-2004 8
06-01-2004 7
07-01-2004 0
08-01-2004 0
09-01-2004 8
10-01-2004 8
11-01-2004 0
12-01-2004 0
13-01-2004 8
14-01-2004 8
15-01-2004 8

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

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

Разные графики для одного регистра расчета

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

Рассмотрим пример. Для поддержки разных графиков для разных строк регистра расчета "Начисления" можно завести справочник "Рабочие Графики" элементами которого будут, например, "График служащих", "График рабочих". В регистре сведений "Сведения о рабочих графиках", который назначен регистру расчета "Начисления", необходимо ввести измерение "ГрафикРаботы" типа СправочникСсылка. После чего в регистре сведений на одну и ту же дату будут вводится записи с разными значениями для разных графиков.

Остается вопрос: каким образом система при получении оборотов по регистру расчета выберет те или иные данные из регистра-графика? Очевидно, что при наличии дополнительных измерений регистра-графика описанное выше сопоставление является неполным. Для полного описания связи необходимо при конфигурировании регистра расчета указать дополнительное условие сопоставления записей регистра расчета и записей регистра сведений. Для этого у измерений и реквизитов регистра расчета  существует свойство "Связь с графиком", которое позволяет указать из какого поля регистра расчета необходимо брать значение для измерений регистра-графика при сопоставлении записей.

Так может быть указано одно или несколько дополнительных условий, по которым будет выполняться  суммирование данных графика. В рассмотренном нами случае для каждой записи регистра расчета будет записано свое значение графика (ссылка на элемент справочника "Рабочие Графики") и, таким образом, для каждой записи будут использоваться "свои" записи из регистра сведений "Сведения о рабочих графиках". Полное условие, по которому будет выполняться суммирование данных графика, для каждой записи регистра расчета будет выглядеть так: записи регистра сведений сопоставляются с записями регистра расчета по условию, что дата графика не меньше, чем начало фактического периода действия и не больше, чем его окончание и при этом измерение регистра сведений "ГрафикРаботы" содержит то же значение, что и значение реквизита регистра расчета "ГрафикРаботы".