Регистры расчета в 1С

Регистры расчета в 1С

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

Регистр расчета

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

Регистр расчета

Стандартные реквизиты

ПериодРегистрации – определяет факт принадлежности записи к какому-либо периоду, в качестве периода выступает дата, которая принимает дискретные значения в зависимости от периодичности регистра расчета (начало дня, начало месяца, начало квартала или начало года). При записи в регистр расчета реквизит «ПериодРегистрации» может содержать произвольную дату, не обязательно дату документа-регистратора.

ВидРасчета – это измерение, которое определяет вид расчета из связанного «Плана вида расчета».

ПериодДействия – определяет период, на который распространяется действие данной записи.

ПериодДействияНачало – определяет начало периода действия записи.

ПериодДействияКонец – определяет конец периода действия записи.

Реквизиты ПериодДействия, ПериодДействияНачало и ПериодДействияКонец доступны только в том случае, если установлен флаг в свойстве «Период действия» регистра расчета. Значение реквизита ПериодДействия всегда приводится к началу периода, соответствующего значению реквизита ПериодДействияНачало, при этом может не совпадать с этим значением, все зависит от периодичности регистра расчета. Период действия записи (задаваемый датой начала и датой окончания) может не совпадать с «Фактическим периодом действия».

БазовыйПериодНачало – определяет начало базового периода записи.

БазовыйПериодКонец – определяет конец базового периода записи.

Сторно – используется для сторнирования записи. Содержит литерал, или Истина, или Ложь.

Стандартные реквизиты

Основные свойства и механизмы

План видов расчета

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

В стандартном реквизите «Вид расчета» указываются виды расчета, заданные в привязанном плане видов расчета.

Заполнение поля «Вид расчета»

Периодичность

В свойстве «Периодичность» у регистра расчета определяется промежуток времени, к которому будет относиться каждая запись регистра. Существует четыре вида периодичности: День, Месяц, Квартал и Год.

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

Заполнение поля «Период регистрации»

Базовый период

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

Заполнение полей «БазовыйПериодНачало» и «БазовыйПериодОкончание»

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

Включение зависимости от базы

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

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

Период действия. Графики работы

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

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

Заполнение полей «ПериодДействия», «ПериодДействияНачало» и «ПериодДействияКонец»

Если у регистра расчета включено свойство «Период действия», то обязательно нужно заполнить свойства «График», «Значение графика» и «Дата графика», а также у назначенного плана видов расчета регистру расчета в свойстве «Использует период действия» установить флаг.

Привязка графика работы к регистру расчета

В свойстве «График» указывается непериодический регистр сведений, который может содержать неограниченное количество графиков по учету времени.

В свойстве «Значение графика» указывается ресурс регистра сведений, который содержит значения учета времени на определенную дату.

В свойстве «Дата графика» указывается измерение регистра сведений, с типом Дата, через которое осуществляется отбор значений ресурса регистра сведений, указанного в свойстве «Значение графика».

Привязка графика работы к регистру расчета

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

Связь с графиком

В «Плане видов расчета» после включения свойства «Использует период действия» активируется стандартная табличная часть ВытесняющиеВидыРасчета, в которой указываются конкурирующие виды расчета за период.

Уточнение вытесняющих видов расчета

Для определения количества отработанных сотрудником дней, необходимо в методе ПолучитьДанныеГрафика() в качестве значения параметра <ВидПериода> указать фактический период действия записи.

Если период действия вида расчета переходит с одного интервала периодичности регистра расчета в другой, то система выдаст ошибку, так как запись должна быть разбита на периоды, соответствующие периодичности регистра расчета. Платформа сама разбивку не делает. Например, периодичность регистра расчета равна месяцу, при попытке внести информацию о прогуле с 28 октября 2024г. по 01 ноября 2024г, система выдаст ошибку. Необходимо данный прогул разбить на два периода: с 28 октября 2024г. по 31 октября 2024г. и с 01 ноября 2024г. по 01 ноября 2024г.

Ошибка при отсутствии разбивки периода действия

Структура регистра расчета

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

Структура регистра расчета

Перерасчеты

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

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

Перерасчеты

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

У измерений в группе «Связь» настраиваются два основных свойства:

  • «Измерение регистра» – указывается основное измерение текущего регистра, которое следует пересчитать при изменении данных в ведущих регистрах.
  • «Данные ведущих регистров» – указываются данные в ведущих регистрах расчета, при изменении которых необходимо выполнить перерасчет.

Настройка связи для измерения перерасчета

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

Настройка перерасчета

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

Указание влияющих на перерасчеты виды расчета

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

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

Механизм сторно

Механизм вытеснения не позволяет вытеснять записи, у которых период регистрации меньше периода регистрации записи, которая пытается вытеснить. Например, ноябрьский Больничный зарегистрированный в декабре, не сможет вытеснить Оклад, который был ранее зарегистрирован в ноябре, так как период регистрации у Оклада (01.11.2024г.) меньше периода регистрации Больничного (01.12.2024г.).

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

Метод ПолучитьДополнение() набора записей регистра расчета используется: если текущим периодом нужно ввести запись, чтобы она «вытеснила» запись прошлого периода и для получения дополнения к текущему набору записей в виде таблицы значений со структурой, повторяющей структуру набора записей.

При использовании метода ПолучитьДополнение(), сторно-записи нужно регистрировать программно.

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

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

Отличие исходных записей от сторно-записей

Ваганов Сергей, эксперт в области разработки прикладных решений на платформе 1С:Предприятие, преподаватель-методист CORS Academy и автор курса «Разработчик 1С с нуля до профессионала».

Регистры расчета в 1С
Подписаться
Уведомить о
guest

wp-puzzle.com logo

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

подпишитесь на рассылку академии

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

Нажимая на кнопку “Подписаться”, вы даете согласие на обработку персональных данных