В последних релизах программы 1С:Зарплата и управление персоналом 8 (редакция 3.1.31 и 3.1.32) многие пользователи столкнулись с неприятной ситуацией: при заполнении документа Начисление за первую половину месяца программа игнорирует проведенные отпуска сотрудников. В результате сотруднику начисляется полная сумма аванса за рабочие дни, которые он фактически провел в отпуске. Проанализируем, почему это происходит, и разберем пошагово, как восстановить корректный расчет.
Рассмотрим типичную ситуацию: сотрудник уходит в учебный или ежегодный основной отпуск, документ оформлен и проведен. Однако при расчете аванса (за первую половину месяца) программа упорно ставит 10 рабочих дней (стандартная норма за две недели при пятидневке), игнорируя период невыхода. Выясним причину: в новых версиях конфигурации был существенно переработан механизм запроса данных о времени из виртуальных таблиц. Если в системе включена многофункциональность (разделение прав кадровика и расчетчика в версии КОРП), документ Начисление за первую половину месяца может «не видеть» документ Отпуск, если он не прошел полный цикл утверждения или если записи в регистрах сведений не обновились корректно.
Проанализируем настройки документа в версии ЗУП КОРП. В данной редакции часто используется разделение обязанностей. Если документ Отпуск введен кадровиком, но не «доработан» расчетчиком, данные о времени могут не попасть в расчет аванса. Выполним следующие действия:
Отпуск, по которому возникли расхождения в авансе.Состояния сотрудников может не влиять на расчет времени в документе аванса.Иногда причиной ошибки становится наличие документа Табель, созданного до расчета аванса. Рассмотрим, как это влияет на процесс: документ Начисление за первую половину месяца при заполнении приоритетно обращается к фактическим данным о времени. Если Табель был введен ошибочно или содержит неактуальные сведения, аванс рассчитается неверно. Разберем алгоритм исправления:
Табель за текущий месяц.Начисление за первую половину месяца.Отпуск и выполним его перепроведение. Это важно для актуализации регистра Данные о времени для расчета среднего заработка и регистра Состояния сотрудников.Начисление за первую половину месяца. Проверим, уменьшилось ли количество рабочих дней.Разработчики 1С подтвердили наличие багов в алгоритме вытеснения времени для релизов 3.1.32.17 и 3.1.32.39. Если вышеописанные действия не помогают, скорее всего, вы столкнулись с программной ошибкой запроса к базе данных. Посмотрим, как это лечится технически:
Для ветки 3.1.32 компания 1С выпускает оперативные исправления (патчи). Нам необходимо убедиться, что в базе установлены патчи, касающиеся «Учета времени в авансе» (например, патчи серии EF_2017xxxx). Чтобы проверить это, перейдем в раздел Администрирование — Обслуживание — Обновление программы — Установленные исправления (патчи). Если нужного исправления нет, рекомендуется обновить конфигурацию до самого актуального релиза или разрешить автоматическую загрузку патчей.
Выясним еще одну скрытую причину. Программа при расчете аванса может проверять записи в регистре сведений Данные о времени для расчета среднего заработка. Если документ отпуска не сделал запись в этот регистр (например, из-за конфликта периодов или ошибки проведения), аванс «не поймет», что время должно быть вытеснено. Попробуем решить это через групповое перепроведение:
Отпуск за проблемный месяц и выполним их перепроведение. Это заставит систему пересчитать движения по всем связанным регистрам.Подведем итог: если вы видите, что в аванс попадает 10 дней вместо фактических 3 или 5 при наличии отпуска, это явный признак того, что механизм вытеснения не сработал. В 90% случаев в новых релизах это лечится либо установкой официального патча от 1С, либо (в версии КОРП) проверкой всех галочек утверждения в кадровом документе. Помните, что последовательность ввода документов имеет значение: сначала утверждаем все невыходы (отпуска, больничные), и только в последнюю очередь заполняем расчет аванса.