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

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

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

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

В регистре расчета установлена периодичность расчетов «Месяц» (и регистр настроен как периодический). Что произойдет при попытке записать в регистр одну запись «Больничный» с периодом действия 25.01.2021–07.03.2021?

Записей не появится: запись не будет принята, система выдаст ошибку по периоду действия.
Правильно: Для периодического регистра расчета с периодичностью «Месяц» запись должна относиться к одному расчетному периоду (месяцу), иначе платформа считает период действия заданным некорректно. Автоматически разбивать одну «длинную» запись на несколько месяцев система не обязана, поэтому при попытке записать ее целиком возникает ошибка и набор записей не сохраняется.
Будет создано 2 записи: 25.01-31.01 и 01.02-07.03.
Неправильно: Даже если бы выполнялась разбивка, второй интервал всё равно пересекает границу расчетного месяца (февраль и март), то есть не соответствует периодичности «Месяц». Кроме того, сама платформа при записи набора не делает такую «нарезку» за разработчика/документ, поэтому автоматически эти две записи не возникнут.
Будет создано 3 записи по месяцам: 25.01-31.01, 01.02-28.02 и 01.03-07.03.
Неправильно: Это действительно типовой способ корректного ввода «протяженного» события при помесячной периодичности - но только если документ/код явно сформирует три движения. В вопросе речь о попытке записать одной записью, и система сама такое разбиение не выполняет, поэтому записи не появятся.
Будет создана 1 запись на весь период: 25.01-07.03.
Неправильно: Одна запись с периодом действия, пересекающим несколько месяцев, противоречит требованиям периодического регистра расчета с периодичностью «Месяц». При записи платформа проверит корректность периода действия и не позволит сохранить такую строку, поэтому вариант с одной записью невозможен.

Пояснение

В периодических расчетах регистр расчета хранит записи «дискретно» по расчетным периодам (день/месяц/квартал/год). Если у регистра указана периодичность «Месяц», то каждая строка должна относиться к одному месяцу: так системе проще анализировать конкуренцию (вытеснение) и зависимости, а также выполнять перерасчеты в пределах периода. Поэтому «длинные» события (больничный, отпуск, командировка), которые переходят через границы месяцев, нужно разбивать на несколько записей вручную (обычно - на стороне документа, который делает движения): - 25.01-31.01 (остаток января), - 01.02-28.02 (весь февраль), - 01.03-07.03 (часть марта). Практика: при формировании движений используйте функции типа «НачалоМесяца/КонецМесяца/ДобавитьМесяц», а границы интервала задавайте так, чтобы ни одна запись не пересекала границу месяца. Если попытаться записать одной строкой 25.01-07.03, платформа при записи набора вернет ошибку вида «Запись не верна! Неверно задан период действия», и в регистре не появится ни одной строки (запись набора выполняется целиком, без частичного сохранения).