14. Механизмы сложных периодических расчетов
#22

Готовишься к экзамену?

Полнофункциональный тренажер @bot_1cnik_bot с полноценным обучением, режимом экзамена и подробной статистикой.

Перейти в бота

В модуле работы с регистром расчета вы хотите обращаться к полям записи "БазовыйПериодНачало" и "БазовыйПериодОкончание" (границы базового периода). При каком условии эти свойства вообще появляются у записи регистра расчета и доступны в объектной модели?

Если в плане видов расчета, к которому привязан регистр, для свойства "Зависимость от базы" выбрано значение не "Не зависит".
Неправильно: Настройка зависимости от базы в плане видов расчета определяет логику попадания базовых начислений в расчетную базу, но сама по себе не добавляет реквизиты базового периода в запись регистра. Поля границ базового периода появляются только при отдельной настройке регистра расчета.
Если в свойствах регистра расчета включена опция (флажок) "Базовый период".
Правильно: Флажок "Базовый период" в метаданных регистра расчета добавляет в состав записи специальные поля границ базового периода и делает доступными свойства "БазовыйПериодНачало" и "БазовыйПериодОкончание". Без этой опции этих свойств у записи нет, и обращаться к ним нельзя.
Если в плане видов расчета задана зависимость от базы (не "Не зависит"), и при этом у регистра расчета включен флажок "Период действия".
Неправильно: "Период действия" управляет наличием и смыслом дат действия записи (например, Начало/Окончание периода действия), но не отвечает за хранение базового периода. Даже при наличии зависимости от базы и периода действия свойства базового периода не появятся, пока в регистре расчета не включен флажок "Базовый период".

Пояснение

Базовый период в регистре расчета - это отдельный интервал дат, который хранится прямо в записи и используется механизмом расчета базы (когда результат одного вида расчета зависит от «базы», сформированной другими начислениями/удержаниями). Именно поэтому в метаданных регистра расчета есть отдельная опция "Базовый период": при ее включении платформа добавляет в структуру записи два поля - "БазовыйПериодНачало" и "БазовыйПериодОкончание". Практический контекст: типичный пример - расчет отпускных/премий, где база берется за предыдущие 12 месяцев. Для записи «Отпускные» в движениях регистра расчета можно задать базовый период (например, с 01.01.2024 по 31.12.2024), а затем при получении расчетной базы механизм отберет подходящие записи базовых видов расчета, ориентируясь на этот интервал и правила зависимости (по периоду регистрации или по периоду действия - в зависимости от настройки плана видов расчета). Важно различать три вещи: (1) "Период регистрации" - это период, к которому относится запись по периодичности регистра; (2) "Период действия" - фактический интервал, когда запись действует (например, больничный с 11.02 по 20.02); (3) "Базовый период" - интервал, за который собирается база для зависимых расчетов. Поля базового периода доступны в коде только тогда, когда включена соответствующая опция в свойствах регистра расчета, а не из-за настроек плана видов расчета или периода действия.