При работе в программах 1С:Зарплата и управление персоналом 8 или 1С:Зарплата и кадры государственного учреждения (версии 3.1) пользователи часто сталкиваются с ситуацией: при регистрации «переходящего» больничного листа (например, когда сотрудник заболел в конце марта, а принес документ в апреле) программа корректно сторнирует прошлые начисления «красным», но не производит расчет новых «черных» строк. В результате на вкладке «Перерасчет» мы видим только отрицательные суммы, а расчетная база оказывается пустой.
Особенно остро эта проблема проявилась в релизах, начиная с 3.1.5.129 и выше (включая ветку 3.1.6), из-за изменений в алгоритмах учета вытеснений. Проанализируем причины этой ошибки и разберем по шагам способы ее устранения.
Начиная с релиза 3.1.5.129, разработчики ужесточили контроль над цепочками документов. Выясним причину: если в прошлом периоде (например, в марте) уже был введен документ, фиксирующий отсутствие (например, Отсутствие (болезнь, прогул, неявка)), механизм перерасчета в документе Больничный лист может войти в конфликт с этим документом.
Проанализируем ситуацию: если документ Отсутствие был проведен, и в нем на вкладке Перерасчет уже зафиксировались какие-либо суммы (даже если они нулевые), то Больничный лист «считает», что данный период уже обработан. Программа блокирует повторное подтягивание расчетной базы, чтобы избежать двойного перерасчета одних и тех же сумм. Для решения попробуем временно распровести документ Отсутствие и заново перезаполнить Больничный лист.
Одной из главных причин отсутствия «черных» строк является некорректная настройка вытеснения. Рассмотрим подробнее вкладку Приоритет в настройках начислений. Чтобы программа понимала, что Больничный лист должен заменить собой Оклад, необходимо проверить два направления:
Оплата по окладу (или другого сторнируемого начисления).Больничный лист.Больничного листа. В правой колонке (Начисления, приоритет которых ниже) должен отображаться ваш Оклад.Важно помнить: если вы используете документ Отсутствие (болезнь, прогул, неявка), он также должен быть в списке приоритетов. Если в одной базе расчет идет правильно, а в другой нет — скорее всего, списки вытесняющих начислений различаются. Проверьте все виды начислений, которые должны сторнироваться.
Если в таблице перерасчета вы видите пустые значения в колонках с базой, это указывает на проблему в регистре сведений Данные о начислениях для расчета среднего заработка (ФСС). Посмотрим, как это работает: программа при вводе больничного пытается сопоставить сторнируемые суммы с исходными начислениями через этот регистр.
Если данные в регистр записались некорректно (например, из-за ручных правок в мартовском документе Начисление зарплаты и взносов), связь разрывается. Разберем алгоритм исправления:
Начисление зарплаты, Табель, Отсутствия).Больничный лист полностью удалим строку с сотрудником и выберем его заново (это заставит систему инициализировать поиск базы «с нуля»).Иногда причина кроется не в конкретном документе, а в настройках самой программы. Перейдем в раздел Настройка — Расчет зарплаты и проверим два критически важных флага:
А) Выполнять доначисление и перерасчет зарплаты отдельным документом.
Если этот флаг установлен, то Больничный лист физически не может порождать «черные» строки доначисления. Он только фиксирует факт сторнирования. В этом случае программа ожидает, что вы создадите специализированный документ Доначисление, перерасчет, где и появятся все положительные суммы за прошлый период.
Б) Проверять соответствие фактического времени плановому.
Изменение этой настройки влияет на то, как программа интерпретирует «пустые» периоды при перерасчетах. Если настройка включена, программа может блокировать автоматические корректировки, если видит несоответствие в табелях.
Рассмотрим ситуацию, когда в организации используется документ Табель. Если за прошлый месяц (март) был проведен Табель с кодом «Я» (Явка) на те дни, на которые в апреле наложился больничный, возникает жесткое противоречие. В новых релизах ЗУП 3.1 данные Табеля имеют очень высокий приоритет.
Программа может блокировать создание «черных» строк, так как считает, что рабочее время уже официально подтверждено документом Табель. Чтобы исправить это, необходимо либо внести исправления в Табель прошлого периода (создав документ-исправление), либо убедиться, что Больничный лист корректно вытесняет время, зафиксированное в Табеле.
Если вы столкнулись с тем, что после обновления расчет перестал работать, выполните следующие действия:
Исправление для мартовской зарплаты. Любой документ-исправление «блокирует» период для других документов, и Больничный лист не сможет сделать в нем свои записи.Оклад снимается правильно, а дополнительные начисления (например, надбавки) не пересчитываются, проверьте их расчетную базу. Возможно, в формуле надбавки используется показатель, который не был пересчитан.Рассмотрим пример кода, описывающего логику проверки вытеснения (условно):
Процедура ПроверитьВытеснение(ТекущийДокумент)
// Проверяем наличие записей в регистре перерасчетов
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ * ИЗ РегистрРасчета.Зарплата.Перерасчет
ГДЕ ОбъектПерерасчета = &ТекущийДокумент";
// Если записей нет, возможно, не настроены приоритеты
КонецПроцедуры
Резюме: В большинстве случаев проблема решается либо восстановлением цепочки документов (перепроведением), либо проверкой настройки «Выполнять доначисление отдельным документом». Если же база данных была обновлена с очень старого релиза, обязательно обновите Данные о начислениях для расчета среднего заработка (ФСС) через групповое перепроведение документов начисления зарплаты.