При расчете заработной платы в конфигурации 1С:Зарплата и управление персоналом 3.1 пользователи могут столкнуться с ситуацией, когда доплата за работу в ночное время или другие аналогичные доплаты рассчитываются в двойном или кратном размере. При этом начисление разбивается на несколько строк по периодам, и в каждую из строк подставляется полное количество отработанных ночных часов за месяц.
Разберем детально механизм возникновения этой ошибки и рассмотрим все возможные варианты ее устранения и обхода.
Причины и механизм возникновения ошибки
Проанализируем алгоритм программы, приводящий к некорректному расчету:
Сводный ввод отработанных часов: если для регистрации ночных часов используется документ Данные для расчета зарплаты с шаблоном, настроенным на ввод данных «За произвольный интервал (сводно)», часы записываются общей суммой без привязки к конкретным датам месяца.
События в середине месяца: если сотруднику в середине расчетного месяца вводится документ Назначение планового начисления, Изменение оплаты труда или Кадровый перевод, программа делит расчетный период на подпериоды (до даты изменения и после нее).
Поведение алгоритма расчета: из-за отсутствия подневной детализации алгоритм не может определить, в какие именно дни сотрудник фактически работал ночью. В результате зарегистрированное сводное количество часов ошибочно подставляется в каждый созданный подпериод, что приводит к кратному завышению итоговой суммы начисления. Данное поведение зарегистрировано разработчиками как ошибка с кодом 30154997.
Способ 1. Использование накапливаемого показателя в формуле начисления
Рассмотрим наиболее универсальное и системное решение, позволяющее избежать разбивки начисления на части при кадровых событиях.
Перейдем в раздел Настройка — Показатели расчета зарплаты.
Создадим новый показатель со следующими параметрами:
Наименование: НеРазделятьПоПериодам.
Назначение показателя: Для сотрудника.
Тип показателя: Числовой.
Способ применения: Накапливаемый (с признаком сбора значений В целом за месяц).
Перейдем в раздел Настройка — Начисления и откроем вид начисления Доплата за работу в ночное время.
Отредактируем формулу расчета, добавив созданный показатель с нулевым коэффициентом, например:
Сохраним изменения. Наличие накапливаемого показателя в формуле сообщает расчетному механизму платформы, что данное начисление не должно дробиться на подпериоды, и оно будет рассчитано одной строкой за весь месяц.
Способ 2. Перенастройка шаблона ввода данных на подневный учет
Если для предприятия критично разделять начисления по периодам действия разных тарифных ставок или надбавок, настроим подневный учет фактически отработанного времени:
Откроем раздел Настройка — Шаблоны ввода исходных данных.
Выберем шаблон, используемый для документа Данные для расчета зарплаты.
В настройках способа ввода переключим тумблер с варианта За произвольный интервал (сводно) на вариант За каждый день.
При заполнении документа Данные для расчета зарплаты укажем ночные часы с привязкой к конкретным датам. Программа сопоставит даты работы с периодами действия плановых начислений и корректно разнесет часы до и после даты кадрового изменения без задвоения.
Способ 3. Ввод индивидуального графика или табеля учета рабочего времени
Разберем альтернативный вариант регистрации времени через типовые документы учета:
Если часы работы сотрудника отклоняются от основного графика, оформим документ Индивидуальный график в разделе Зарплата — Индивидуальные графики. В нем подневно зафиксируем виды времени Явка и Ночные часы.
Если график составлять нецелесообразно, по сотрудникам с кадровыми изменениями в середине месяца заполним документ Табель (раздел Зарплата — Табели). При расчете начислений типовой табель передает данные с точной подневной разбивкой, что исключает дублирование часов.
Способ 4. Проверка регистра перерасчетов и настроек оптимизации
Проанализируем дополнительные технические нюансы, которые могут вызывать дублирование строк при расчете:
Очистка ошибочных записей перерасчетов: перейдем в раздел Зарплата — Сервис — Перерасчеты. При изменении плановых начислений задним числом программа может регистрировать необходимость пересчета. Если в списке присутствуют неактуальные строки по сотруднику, удалим их перед формированием документа Начисление зарплаты и взносов.
Отключение оптимизации расчета зарплаты: в некоторых релизах проблему со сбором данных помогает решить переключение режима расчета. Откроем меню Функции для технического специалиста, найдем константу Выполнять расчет зарплаты без оптимизации и установим ее значение в Истина. Это переключит алгоритм с кэшированных таблиц на прямой расчет по регистрам.