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