Как исправить ошибку расчета среднего заработка в 1С:ЗУП 3.1 при расхождении периодов неявки и больничного листа?

Бухгалтер 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом Бухгалтерский учет
← На главную

Приветствуем коллег! В практической работе бухгалтера и расчетчика зарплаты часто возникает неприятная ситуация: сотрудник заболевает в конце месяца, расчетный период закрывается «неявкой», а в следующем месяце приносится официальный больничный лист. При этом даты документов могут не полностью совпадать — например, больничный лист захватывает выходные дни, которые не были отражены в первоначальном документе отсутствия. В результате при последующем расчете отпуска или командировки программа 1С:ЗУП 3.1 некорректно рассчитывает календарные дни для среднего заработка.

В этой статье мы подробно разберем, почему возникает эта проблема с точки зрения внутренней архитектуры программы 1С, проведем математический анализ расчета календарных дней и рассмотрим четыре практических способа решения этой проблемы в зависимости от масштаба вашей организации.

---

Анализируем суть проблемы на конкретном примере

Давайте подробно рассмотрим ситуацию, описанную пользователем на форуме. Сотрудник работает по стандартному графику пятидневки. В конце марта он заболевает:

  1. С 27 по 30 марта (рабочие дни) в программу вводится документ Отсутствие (болезнь, прогул, неявка).
  2. Март закрывается, рассчитывается и выплачивается заработная плата.
  3. В апреле сотрудник приносит закрытый Больничный лист, период которого составляет с 27 по 31 марта. Обратите внимание: 31 марта — это суббота (выходной день по графику сотрудника).
  4. В конце апреля мы рассчитываем сотруднику отпуск и обнаруживаем, что в расчете среднего заработка за март программа видит следующую картину: отработано 27 календарных дней (норма 31), учтено дней — 25,52.

Давайте проведем математический расчет. Формула для определения учитываемых календарных дней в неполном месяце выглядит следующим образом:

Учтено дней = 29.3 * (Календарные дни месяца − Дни отклонений) / Календарные дни месяца

Посмотрим, как считает программа:

Почему же программа упорно считает субботу 31 марта как отработанный день, несмотря на проведенный больничный лист?

---

Выясняем причину: технические особенности 1С:ЗУП 3.1

В отличие от старой редакции 2.5, в 1С:ЗУП 3.1 учет времени для расчета среднего заработка устроен по принципу вытеснения начислений. Все данные записываются в специализированный регистр накопления Данные о времени для расчета среднего (общий).

Проанализируем цепочку событий в системе по шагам:

  1. При проведении мартовского документа Отсутствие (болезнь, прогул, неявка) программа вытесняет оклад за рабочие дни с 27 по 30 марта. В регистр среднего заработка записывается информация: из 31 календарного дня вычитается 4 дня отсутствия. Суббота 31 марта остается «отработанным» днем, так как по графику это выходной, за него оклад не начислялся, и вытеснять там нечего.
  2. В апреле мы вводим Больничный лист за период с 27.03 по 31.03. Так как период регистрации документа — апрель, программа выполняет сторнирование начислений за прошлый период. На вкладке «Пересчет прошлого периода» сторнируется документ неявки за период с 27.03 по 30.03.
  3. Поскольку 31 марта — это выходной день, за него в марте не начислялась оплата. Соответственно, в документе больничного листа за 31 марта не возникает суммового сторно. Нет сторно — нет движений по регистру расчета начислений за этот день.
  4. Регистр среднего заработка реагирует только на сторнирование начислений. Так как по дню 31 марта сторнирования не было, программа автоматически не корректирует время в регистре Данные о времени для расчета среднего (общий) за этот день. Из-за этого день болезни, пришедшийся на выходной, продолжает считаться «отработанным».

Именно по этой причине стандартный сервис Обновить данные для расчета среднего заработка (раздел Зарплата — Сервис) не решает проблему. Он просто пересчитывает данные на основании уже проведенных документов, а документов сторно за 31 марта в базе физически нет.

Также важно упомянуть документ Табель. Если в вашей организации табель заполняется вручную до проведения больничных листов, это может приводить к рассинхронизации данных. Разработчики 1С рекомендуют минимизировать использование ручного табеля, так как система прекрасно собирает время методом отклонений.

---

Варианты решения проблемы на практике

Рассмотрим подробнее четыре проверенных способа исправления этой ошибки, от самых простых ручных корректировок до системных организационных регламентов.

Способ 1. Быстрая ручная корректировка в документе расчета

Этот способ идеально подходит для небольших организаций, где подобные расхождения случаются редко.

  1. Откройте документ Отпуск (или Командировка), в котором рассчитывается средний заработок.
  2. Перейдите на вкладку «Основное» и нажмите на зеленую кнопку с изображением карандаша «Изменить данные для расчета среднего заработка».
  3. В открывшейся табличной форме найдите строку за проблемный месяц (в нашем примере — Март 2018 года).
  4. В колонке «Календарные дни» вручную уменьшите количество отработанных дней на величину неучтенных выходных дней болезни (в нашем случае вместо 27 дней укажите 26).
  5. Нажмите «ОК». Программа автоматически пересчитает учтенные дни (с 25,52 на 24,57) и скорректирует итоговую сумму отпускных.

Способ 2. Исправление исходного документа «Отсутствие»

Если мартовский период еще не закрыт окончательно для редактирования или у вас есть техническая возможность перепровести прошлый месяц, лучшим решением будет исправление первоначального отсутствия.

  1. Найдите и откройте мартовский документ Отсутствие (болезнь, прогул, неявка) по данному сотруднику.
  2. Измените дату окончания отсутствия с 30.03 на 31.03, чтобы период неявки полностью совпал с будущим больничным листом.
  3. Проведите документ.
  4. Перепроведите мартовский документ Начисление зарплаты и взносов по этому сотруднику (пересчитывать сами суммы не нужно, достаточно просто нажать кнопку «Провести», чтобы обновились регистры учета времени).
  5. После этого запустите обработку через меню: Зарплата — Сервис — Обновить данные для расчета среднего заработка, выбрав Март. Теперь данные в регистре общего среднего заработка обновятся корректно.

Способ 3. Внесение записи в технический регистр корректировки

Для продвинутых пользователей и администраторов системы доступен способ исправления данных напрямую через специальный служебный регистр сведений.

  1. В главном меню программы (правый верхний угол, кнопка «Сервис и настройки») выберите пункт «Перейти по ссылке».
  2. Вставьте следующую ссылку: e1cib/list/РегистрСведений.ДанныеОВремениДляРасчетаСреднегоОбщийКорректировка и нажмите «Перейти».
  3. В открывшемся окне нажмите кнопку «Создать».
  4. Заполните запись: укажите сотрудника, расчетный месяц (Март), и введите правильное количество календарных дней, которое должно быть учтено.
  5. Записи в этом регистре имеют наивысший приоритет. При любом последующем расчете среднего заработка программа будет брать данные именно отсюда, игнорируя стандартные ошибочные расчеты.

Способ 4. Организационный регламент для крупных предприятий

Если вы работаете на крупном предприятии (завод, торговая сеть) с плавающими и сменными графиками работы (например, «два через два», «день/ночь/4 выходных»), ручные корректировки станут кошмаром для бухгалтерии. В этом случае необходимо выстроить жесткий регламент взаимодействия кадровой службы и расчетчиков:

Используя эти методы, вы сможете навсегда решить проблему с некорректным расчетом среднего заработка в 1С:ЗУП 3.1 и избежать штрафов и претензий со стороны контролирующих органов и сотрудников!

← На главную