При работе в программе 1С:Зарплата и управление персоналом 3.1 бухгалтеры часто сталкиваются с ситуацией, когда сотрудник часть месяца отсутствовал (например, по невыясненной причине или по болезни), но при расчете отпуска в будущем программа «видит» этот месяц как отработанный полностью. Особенно остро проблема проявляется в регистре накопления Данные о времени для расчета среднего (общий), где показатели «отработано дней по пятидневке» и «отработано дней календарных» упорно показывают полную норму месяца, несмотря на введенные документы отклонений.
В данной статье мы подробно разберем, почему так происходит, как механизм вытеснения влияет на средний заработок и почему избыточное использование документа Табель может навредить учету.
Для начала проанализируем, как система 1С записывает данные в регистры. Важно понимать, что документ Отсутствие (болезнь, прогул, неявка) сам по себе не делает записей в регистр накопления Данные о времени для расчета среднего (общий). Этот регистр заполняется документом Начисление зарплаты и взносов в момент расчета основных начислений (оклада, надбавок).
Процесс выглядит следующим образом:
Одной из самых частых причин проблемы является «силовой» ввод документа Табель. В ЗУП 3.1 реализован метод отклонений: если вы ввели документ Отсутствие, программа уже знает, что сотрудника нет. Ввод Табеля поверх документов отклонений часто приводит к тому, что автоматические механизмы сторнирования и вытеснения перестают работать корректно.
Рассмотрим ситуацию: вы ввели Отсутствие по невыясненной причине, а затем создали Табель. Если в Табеле вручную или автоматически зафиксированы дни «НН», но при этом документ Начисление зарплаты и взносов был проведен с ошибками или до ввода отсутствия, данные в регистре среднего не обновятся.
Решение: Попробуйте распровести документ Табель за проблемный месяц и перезаполнить документ Начисление зарплаты и взносов. В большинстве случаев, если настройки программы верны, система сама определит периоды отсутствия и правильно заполнит календарные дни в регистре без всякого Табеля. Методисты 1С рекомендуют использовать Табель только в крайних случаях (например, при сложных графиках, когда время работы невозможно зафиксировать обычными документами).
Если вы перезаполнили начисление зарплаты без Табеля, но оклад все равно начисляется полностью, а дни не вырезаются, значит, проблема в настройках видов расчета. Проанализируем настройки вашего основного начисления (например, Оплата по окладу).
Выполните следующие шаги для проверки:
Оплата по окладу, Оплата по окладу (по часам)).Отсутствие по невыясненной причине, Больничный, Отпуск основной и другие.Если Отсутствие по невыясненной причине отсутствует в этом списке, то программа не «вычтет» эти дни из рабочего времени сотрудника при расчете зарплаты. Следовательно, в регистр среднего запишется полный месяц, так как вытеснение не сработало.
Важный нюанс: Проверьте также сами начисления отсутствий. На вкладке Приоритет в левой колонке («Начисления, приоритет которых ниже») должны быть указаны все виды окладов и надбавок, которые это отсутствие должно вытеснять. Также обратите внимание на настройку самого вида начисления отсутствия: иногда пользователи случайно добавляют начисление само в себя в список приоритетов (например, Отпуск основной стоит в приоритете выше Отпуска основного), что вызывает логические сбои в расчетах.
Рассмотрим случай, когда отсутствие регистрируется «задним числом». Например, в феврале сотрудник не вышел, вы ввели Отсутствие по невыясненной причине. В марте сотрудник принес больничный за эти дни февраля.
Ситуация в регистрах может выглядеть так:
В феврале документ Начисление зарплаты зафиксировал рабочее время за вычетом «НН». Но если в марте в Больничном листе не произошло автоматического сторнирования (потому что суммы не начислялись, ведь «НН» — это неоплачиваемый период), записи в регистр среднего могут не скорректироваться автоматически.
Выясним причину через проверку регистра сведений Данные о времени для расчета общего среднего заработка (корректировка). Если документ отклонения (больничный или отпуск) вводится в следующем периоде за предыдущий, он должен делать корректирующие записи именно в этот регистр. Если записей нет, попробуйте пересчитать сотрудника в текущем месяце или воспользоваться сервисной функцией Обновить данные для расчета среднего заработка (раздел Обслуживание — Корректировка данных).
Если вы обнаружили, что данные за прошлые периоды уже «поехали», и расчет среднего для отпуска выполняется неверно, воспользуйтесь следующим алгоритмом:
Табеля, перезаполните Начисление зарплаты и снова проведите его. Следите за тем, чтобы в расчетном листке сумма оклада уменьшилась пропорционально дням отсутствия.Для корректного отражения календарных дней в расчете среднего заработка в ЗУП 3.1 придерживайтесь правил:
Начисление зарплаты и взносов.Разберем типичный пример в кодовом представлении структуры данных (условно):
// При расчете среднего система обращается к функции получения данных времени:
ДанныеВремени = РегистрыНакопления.ДанныеОВремениДляРасчетаСреднегоОбщий.Выбрать(ФильтрПоСотруднику);
// Если в записи:
// ОтработаноДней = 11
// ОтработаноДнейПоПятидневке = 20 (норма)
// ОтработаноДнейКалендарных = 28 (норма)
// Это означает, что механизм вытеснения отработал только по дням явки,
// но не «вырезал» период из общего календарного времени.
Помните, что правильная настройка Вида использования рабочего времени для начисления (например, код «НН» для отсутствия) также критична. Если в карточке начисления Оплата по окладу на закладке Учет времени неверно указаны дополнительные виды времени, вытеснение может сработать некорректно.