Регистры расчёта 1С: вытеснение и перерасчёт
Регистр расчёта нужен там, где начисления зависят друг от друга: оклад вытесняется больничным, премия считается от оклада, исправление прошлого месяца тянет перерасчёт. В 1С:Зарплата и управление персоналом (ЗУП) на нём держатся начисления и удержания. На собесе спрашивают про два периода и вытеснение.
// Так спрашивают: «Чем период регистрации отличается от периода действия?» «Что такое фактический период действия?» «Как работает база начисления?» «Как исправить ошибку в закрытом месяце?»
Два периода
У записи регистра расчёта два периода. Период регистрации говорит, в каком месяце начислено. Период действия говорит, за какие дни. Больничный за январь, оформленный в феврале, регистрируют февралём, а действует он в январе.
Регистр расчёта считает с периодом действия. Поэтому поздний больничный за сентябрь вытеснит сентябрьский оклад, хотя сам начислен в октябре, и сентябрь придётся пересчитать.
Вытеснение и фактический период
Вытеснение задаёт план видов расчёта: больничный вытесняет оклад на свои дни. Виртуальная таблица ФактическийПериодДействия отдаёт для оклада дни без больничного, а ДанныеГрафика берёт из графика работы число рабочих дней и часов в этом периоде.
Если считать дни по периоду действия записи, а не по фактическому, в оклад попадут дни больничного, и сотрудник получит деньги дважды за одни и те же дни.
База и перерасчёт
Премия 10% от оклада берёт оклад базовым видом. Виртуальная таблица БазаНачисления складывает суммы базовых видов за базовый период: для премии за октябрь это 51 000, и премия равна 5 100.
Если оклад за октябрь исправили задним числом, премия от него устарела. Ведущая связь вида расчёта регистрирует зависимую запись в объекте Перерасчёт, а пересчитывает её прикладной код. Сама платформа ничего не пересчитывает, она только отмечает, что пересчитать.
Закрытый период не переписывают: зарплата уже выплачена, отчёты сданы. Ошибку исправляют сторно, записью с обратным знаком, которая гасит прежнюю, и новой правильной записью в текущем периоде регистрации.
Как отвечать: «Больничный за прошлый месяц принесли в текущем. Что произойдёт в расчёте?»
Больничный регистрирую в текущем месяце, а период действия ставлю прошлым. Поскольку больничный вытесняет оклад, фактический период действия оклада в прошлом месяце сократится, и оклад там надо пересчитать. Прошлый месяц уже закрыт, поэтому старую запись оклада гашу сторно и записываю правильную сумму в текущем периоде регистрации. Зависимые начисления вроде премии от оклада попадут в перерасчёт по ведущей связи.
Ответ проходит всю цепочку: два периода, вытеснение, закрытый месяц, сторно и перерасчёт зависимых. Это стандартный сценарий из ЗУП, на котором проверяют понимание регистра.
На чём валят
- −Считают отработанные дни по периоду действия записи. В оклад попадают дни больничного. Дни берут из фактического периода действия.
- −Переписывают записи закрытого месяца. Выплаты и отчёты уже ушли. Исправляют сторно и новой записью в текущем периоде.
- −Берут регистр расчёта для разовой премии без зависимостей. Хватит оборотного регистра накопления, регистр расчёта нужен для вытеснения и баз.
- −Ждут, что платформа сама пересчитает премию после правки оклада. Ведущая связь только регистрирует перерасчёт, считает прикладной код.
Проверь себя
Пять вопросов из банка по этой подтеме. Всего их 12, остальные разбираются в тренажёре.
- Какой объект задаёт виды расчётов для регистра расчёта?A)Перечисление видов начисленийB)План видов характеристикC)План видов расчётаD)Справочник статей расходов
показать ответ и разбор
+C)План видов расчёта// разбор: Регистр расчёта ссылается на план видов расчёта, и у каждой записи есть ВидРасчета. Связи между видами — базовые, вытесняющие, ведущие — описаны там же. ПВХ используется для характеристик и субконто, а не для расчётов.
- Какая виртуальная таблица регистра расчёта учитывает вытеснение?A)БазаНачисления с базовым периодомB)ФактическийПериодДействияC)ДанныеГрафика по периоду действияD)ОстаткиИОбороты по видам расчёта
показать ответ и разбор
+B)ФактическийПериодДействия// разбор: ФактическийПериодДействия возвращает периоды действия записей с учётом вытеснения: дни оклада, перекрытые больничным, из оклада исключаются. По этим периодам и графику считают отработанное время. БазаНачисления даёт суммы базы, ДанныеГрафика — дни и часы графика.
- Как регистр расчёта знает рабочие дни сотрудника?A)Из производственного календаря, встроенного в платформуB)Через связанный регистр сведений графиковC)Из табеля, введённого в записи регистра расчётаD)Из реквизита сотрудника «Пятидневка» в карточке
показать ответ и разбор
+B)Через связанный регистр сведений графиков// разбор: В свойствах регистра расчёта указывают регистр сведений графиков, ресурс со значением и измерение даты. Виртуальная таблица ДанныеГрафика возвращает по записи сумму значений графика за период действия. Производственный календарь — данные прикладной конфигурации, а не встроенный механизм.
- Премия должна считаться от суммы оклада за месяц. Какую виртуальную таблицу использует расчёт премии?A)БазаНачисленияB)ФактическийПериодДействияC)ДанныеГрафикаD)СрезПоследних
показать ответ и разбор
+A)БазаНачисления// разбор: БазаНачисления возвращает суммы базовых видов расчёта за базовый период записи: для премии — оклад за месяц. Базовые виды задаются в плане видов расчёта. Расчёт премии — база, умноженная на процент.
- Зачем у записи регистра расчёта признак «Сторно»?A)Перенести запись в регистр следующего периодаB)Пометить запись на удаление при закрытии месяцаC)Заблокировать запись от любого перерасчётаD)Отменить ранее начисленное в прошлом периоде
показать ответ и разбор
+D)Отменить ранее начисленное в прошлом периоде// разбор: Закрытый месяц не переписывают: ошибку прошлого периода исправляют в текущем записью сторно, которая гасит прежнюю, и новой правильной записью. Признак Сторно отличает такую запись от обычной начисленной.
дальше
Теорию прочитал. Навык ставится повторением
В Сеньорчике эта подтема идёт в ежедневных сессиях: движок возвращает её, пока ответы не станут уверенными, и ведёт прогресс отдельно по каждой подтеме. Теория внутри тоже бесплатна, бесплатная часть практики — одна сессия дня в сутки.