При работе в 1С:Зарплата и Управление Персоналом вы можете столкнуться с ситуацией, когда в документе Работа в выходные и праздники установлен переключатель «Рассчитывать по часам», однако программа упорно производит расчет исходя из стоимости дня. Давайте разберем, с чем это связано и как исправить данную ошибку.
В ходе работы с программой выяснилось, что подобное поведение системы чаще всего является следствием ошибки релиза (ошибка 30160429). Суть проблемы заключается в том, что метаданные предопределенного вида начисления Оплата работы в праздничные и выходные дни по определенным причинам не «подхватывают» изменение режима расчета. Даже если в интерфейсе вы выбираете часы, внутренние алгоритмы продолжают использовать показатели, привязанные к стоимости дня.
Ранее эта проблема носила массовый характер в версиях 3.1.5.x и 3.1.6.x. Если вы столкнулись с таким поведением системы, в первую очередь убедитесь, что ваша конфигурация обновлена до актуального релиза. Однако даже после обновления настройки начисления могут сохранять «старое» состояние.
Если обновление платформы и конфигурации не привело к автоматическому исправлению ошибки, воспользуемся методом принудительной перезаписи. Этот способ позволяет «освежить» метаданные предопределенного расчета Оплата работы в праздничные и выходные дни.
Настройка — Начисления.Оплата работы в праздничные и выходные дни.Записать и закрыть.Данное действие заставляет 1С перечитать параметры расчета и сбросить некорректные связи, которые могли «зависнуть» после обновления программы. Как показывает практика, в 90% случаев именно эта процедура решает проблему некорректного выбора единицы измерения (дни вместо часов).
Если после перезаписи проблема сохраняется, давайте проанализируем формулу расчета. Для гибкого использования (и по дням, и по часам) формула должна быть универсальной. Посмотрите, как она выглядит в вашей базе. Стандартный вид формулы, позволяющий системе подстраиваться под документ, выглядит следующим образом:
ВремяВДняхЧасах * СтоимостьДняЧаса * 2
Если вы видите, что формула жестко зафиксирована только на часах или только на днях, это ограничивает функционал программы. Убедитесь, что используются предопределенные показатели 1С, а не ручные коэффициенты.
Если даже перезапись не дает результата, выполните следующие дополнительные действия:
1. Очистка кэша 1С
Иногда старые алгоритмы расчета сохраняются в кэше клиента. Очистка кэша сервера и локального кэша пользователя помогает избавиться от «фантомных» ошибок, когда программа «помнит» старую логику работы даже после исправления кода разработчиками.
2. Проверка графиков работы
Система может принудительно переходить на расчет по дням, если у сотрудника в графике работы не заполнена норма времени в часах. Убедитесь, что график, к которому привязан сотрудник, содержит корректные нормы рабочего времени.
3. Временная корректировка
Если расчет все еще неверен, а вопрос требует срочного закрытия зарплаты, как временную меру можно скорректировать сумму начисления в документе Начисление зарплаты и взносов вручную. Однако помните, что это не устраняет причину, поэтому основной упор делайте на обновление конфигурации и процедуру перезаписи предопределенных начислений.
Таким образом, чаще всего проблема решается простым обновлением данных справочника Начисления. Если вы столкнулись с подобным — не спешите менять оклад сотрудника с дневного на часовой, достаточно лишь грамотно «перезаписать» настройки системы!