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