После обновления программы «1С:Зарплата и управление персоналом» расчетчики нередко сталкиваются с ситуацией, когда при заполнении документа Начисление зарплаты и взносов сверхурочные часы сотрудников распределяются некорректно. Вместо положенного разделения (первые два часа работы — в полуторном размере, последующие — в двойном) программа направляет весь объем переработки исключительно в начисление Допл.за сверхур.раб.свыше 2 час. При этом начисление Допл.за сверхур. раб.до 2 час. вовсе не рассчитывается либо рассчитывается с нулевыми часами, даже если у сотрудника с начала года не было превышения годового лимита в 120 часов.
Проанализируем природу этой ошибки, выясним, почему типовой механизм дает сбой, и подробно разберем способы восстановления корректного расчета.
Разберем, из-за чего возникает данное поведение конфигурации. Основная причина кроется в зарегистрированной ошибке типового релиза (ошибка 60034775), связанной с контролем годового лимита сверхурочных часов:
ОтработаноСверхурочноВПределах2Часов принудительно обнуляется, а все сверхурочные часы текущего месяца направляются в двойную оплату.EF_60034435. Однако в его запросе не было предусмотрено корректное исключение начислений с назначением «Дополнительная оплата за уже отработанное время» (вид времени ДополнительноОплачиваемоеВПределахНормы). Если на предприятии применяются подобные доплаты, они суммировались с фактически отработанным временем, что искажало базовые показатели расчета и приводило к сбою распределения полуторных и двойных часов.Посмотрим на поведение программы при попытке исправить расчет вручную. Расчетчик часто пытается открыть показатели в табличной части документа Начисление зарплаты и взносов и вручную проставить значение показателя «Сверхурочно (до 2 ч)». Однако платформа устроена так, что при любом последующем автоматическом пересчете или сохранении строки показатель сбрасывается к значению, рассчитанному запросом оперативного учета рабочего времени. Таким образом, скорректировать только часы без изменения результирующей суммы невозможно.
Рассмотрим официальный и наиболее надежный способ устранения проблемы, предложенный разработчиками фирмы 1С.
EF_60034435. Если этого не сделать, старый код расширения перекроет исправленный код конфигурации.Если закрыть расчетный период и выплатить заработную плату необходимо срочно, а возможность оперативно обновить конфигурацию отсутствует, применим обходной расчетный путь.
Проанализируем техническую сторону вопроса для специалистов по сопровождению 1С. Если предприятие работает на нетиповой конфигурации или регламент запрещает внеочередные обновления всей базы, скорректируем механизм расчета с помощью расширения без снятия конфигурации с поддержки.
В модуле сбора данных учета времени перехватим запрос расчета отработанных часов и исключим влияние некорректных видов времени. Разберем фрагмент условия в запросе, где отсекаются дополнительные начисления за уже отработанное время:
ГДЕ
НЕ ВидВремени В (
ЗНАЧЕНИЕ(Перечисление.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы)
)
Такой отбор гарантирует, что внутримесячные отклонения и специализированные доплаты к окладу не будут суммироваться с годовым лимитом переработок, и алгоритм расчета корректно выделит первые два часа сверхурочного труда.