Ситуация, когда сотрудник приносит больничный лист, приходящийся на период его ежегодного отпуска, является стандартной для кадрового учета. Однако в программе 1С:Зарплата и Управление Персоналом 3.1 пользователи часто сталкиваются с технической проблемой: в документе Больничный лист на вкладке «Пересчет прошлого периода» сторнируются суммы отпускных, а на вкладке «Начислено» сумма пособия остается равной нулю. Рассмотрим подробно, почему это происходит и как исправить ситуацию.
В системе 1С:ЗУП реализован механизм автоматического вытеснения. Это означает, что два вида расчета, имеющие одинаковый приоритет или настроенные как вытесняющие друг друга, не могут быть начислены за один и тот же период. В нашем случае Больничный лист должен вытеснить Отпуск основной.
Когда мы вводим больничный, программа видит, что за эти дни уже начислен отпуск, и делает две вещи:
Проанализируем техническую составляющую. В ранних сборках ветки 3.1.9 (например, 3.1.9.229) существовала зарегистрированная программная ошибка (№10214352). В некоторых случаях алгоритм распределения сумм некорректно обрабатывал ситуацию, когда сторно отпуска полностью перекрывало или было близко к сумме больничного, что приводило к обнулению результата на вкладке «Начислено».
Решение: Первым делом рекомендуется обновить конфигурацию до актуального релиза (как минимум выше 3.1.10.78). Как показывает практика пользователей, в более новых версиях этот баг был исправлен, и расчет происходит автоматически без дополнительных манипуляций.
Если обновление не помогло или недоступно, проверим параметры начисления пособия внутри самого документа. Перейдем на вкладку Оплата и убедимся в следующем:
Для проверки стажа можно нажать прямо из документа на ссылку с информацией о стаже или перейти в карточку сотрудника в раздел Трудовая деятельность.
Выясним, есть ли у программы данные для расчета. На вкладке Главное рядом с полем Средний заработок нажмите на кнопку с изображением карандаша. Откроется форма ввода данных для расчета среднего заработка.
Проанализируем ситуацию: если сотрудник работает в организации недавно и вы не ввели справки с предыдущих мест работы (для расчета пособий), а в текущей базе данных за два предшествующих года пусто, то сумма начисления будет рассчитана исходя из МРОТ. Однако, если при этом у сотрудника установлен неполный рабочий день или в графике работы отсутствуют часы, сумма может быть крайне мала или обнулиться из-за ошибок округления/настройки.
Полезный совет: Нажмите кнопку Печать — Подробный расчет начисления. Если в печатной форме колонки с суммами заполнены, а на экране — пусто, это визуальный баг. Если в печатной форме также стоят нули — проблема в исходных данных (стаж, база, график).
Рассмотрим случай, когда в информационной базе уже проведен Табель учета рабочего времени за текущий месяц. В 1С:ЗУП 3.1 документ Табель имеет очень высокий приоритет. Если в нем на дни болезни уже проставлен код «ОТ» (отпуск) и документ проведен, Больничный лист может «запутаться» в последовательности начислений.
Попробуйте выполнить следующие действия:
Табель за месяц, в котором вводится больничный.Больничный лист (кнопка «Обновить» или две синие стрелки на вкладке «Начислено»).Также проанализируем влияние документа Отсутствие (болезнь, прогул, неявка). Если вы вводили этот документ до того, как получили больничный лист, убедитесь, что периоды в нем и в финальном больничном совпадают. Иногда помогает временная пометка на удаление всех предварительных «неявок» перед расчетом основного больничного листа.
ЗУП 3.1 хранит информацию о необходимости пересчитать документы в специальном сервисном разделе. Если там накопилось много «мусорных» записей по конкретному сотруднику, это может блокировать корректную работу автоматических механизмов в документах.
Выполним очистку:
Больничный лист и попробуйте нажать кнопку Пересчитать сотрудника.Иногда проблема кроется в том, что в программе отключена настройка автоматического обновления сумм при редактировании. Проверим это в меню Настройка — Расчет зарплаты. Там должен стоять флажок Выполнять автоматический пересчет документов при редактировании.
Если настройка включена, но расчет не идет, попробуйте принудительно обновить данные с помощью программного кода (в режиме отладки) или просто перевыбрать сотрудника в шапке документа, что инициирует полную перезагрузку данных по нему в контексте документа.
Если стандартный расчет внутри больничного всё равно не дает результата, разберем альтернативный порядок действий, который часто используют опытные бухгалтеры:
Отпуск.Больничный лист. В этом случае внутри больничного может не быть сторнирования (так как вы уже скорректировали отпуск), а будет только начисление самого пособия.Расчетный листок.Помните, что Сторно и Начисление — это разные виды операций. Сторнируются отпускные (например, код дохода НДФЛ 2012), а начисляется больничный (код дохода 2300). Они не «уничтожают» друг друга физически, а просто формируют разные записи в регистрах расчета. Если вы видите на вкладке «Пересчет» отрицательные суммы — значит, механизм сторнирования сработал. Ваша задача — добиться появления положительных сумм на вкладке «Начислено» через проверку стажа и базы для среднего заработка.
Разберем пример проверки базы через технический запрос (для администраторов):
// Проверка записей в регистре расчета при начислении
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Зарплата.Результат,
| Зарплата.ВидРасчета
|ИЗ
| РегистрРасчета.Начисления КАК Зарплата
|ГДЕ
| Зарплата.Регистратор = &БольничныйЛист";
Запрос.УстановитьПараметр("БольничныйЛист", СсылкаНаДокумент);
Если данный запрос возвращает пустой результат для вида расчета Пособие по временной нетрудоспособности, значит, система по какой-то причине считает, что база для начисления равна нулю или сотрудник не имеет права на выплату (проверьте дату приема на работу и дату начала события).