Почему в ЗУП 3.1.13 при расчете зарплаты количество отработанных дней не совпадает с данными табеля и как это исправить?

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

В практике работы с программой «1С:Зарплата и управление персоналом» (релизы ветки 3.1.13) пользователи часто сталкивались с неприятной ситуацией: отчет «Табель» показывает корректное количество рабочих дней и отклонений, однако при заполнении документа «Начисление зарплаты и взносов» программа подставляет неверные данные. Например, вместо фактически отработанных 9 дней в колонку «Отработано» попадает 17, что ведет к существенному завышению суммы по окладу.

В данной статье мы подробно разберем, почему возникает этот диссонанс, какие внутренние механизмы программы за это отвечают и как привести расчеты в соответствие с фактическим учетом времени.

Анализ причин расхождения данных

Для начала проанализируем, почему отчет и документ начисления могут «видеть» время по-разному. Важно понимать, что отчет «Табель» собирает данные из различных источников (графики, индивидуальные графики, документы отклонений) и просто выводит их на экран. Документ же «Начисление зарплаты и взносов» выполняет сложный расчет, опираясь на систему приоритетов и регистры расчета.

Основные причины ошибки в релизах 3.1.13 связаны с введением кода «ОН» (Оплачиваемые нерабочие дни):

  1. Некорректная работа алгоритма вытеснения: Если сотрудник находился на больничном в период, на который накладываются дни с кодом «ОН», программа может не «вытеснить» эти дни. В результате система суммирует время по графику (ОН) и фактически отработанное время, игнорируя наложение больничного листа.
  2. Особенности регистра накопления: Данные для начисления берутся из регистра Данные оперативного учета рабочего времени. Если в нем зафиксированы неактуальные сведения до регистрации отклонения (больничного), расчет будет ошибочным.
  3. Сбой в функции сбора данных: В версии 3.1.13.146 часто возникал программный сбой в функции УчетРабочегоВремени.СформироватьДанныеОВремени, из-за чего автоматический сбор данных «на лету» работал некорректно.

Способ 1: Использование документа «Табель» как инструмента фиксации времени

Рассмотрим самый быстрый и эффективный способ решения проблемы. В 1С:ЗУП существует жесткая иерархия источников данных о времени. Документ «Табель» имеет наивысший приоритет над всеми графиками (общими и индивидуальными).

Посмотрим, как это работает на практике:

  1. Если мы не создаем документ «Табель», программа при начислении зарплаты пытается собрать данные самостоятельно, обращаясь к Регистру сведений «График работы по видам времени» и сопоставляя их с документами отклонений. Именно на этом этапе чаще всего происходит ошибка.
  2. Если же мы создадим и проведем документ «Табель», мы «заставим» программу взять готовые цифры. Проведем эксперимент: создадим документ, заполним его по конкретному сотруднику и увидим, что в нем проставились верные коды (Явка и ОН).
  3. После проведения документа «Табель» вернемся в «Начисление зарплаты и взносов» и перезаполним сотрудника. Теперь программа возьмет данные напрямую из документа, и количество дней «Отработано (оплачено)» станет корректным.

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

Способ 2: Настройка и обновление графиков работы

Выясним причину, связанную с настройками графиков. В релизах 3.1.13 появилась настройка «При заполнении учитывать оплачиваемые нерабочие дни». Если эта галочка установлена, но график не был перезаполнен после ввода больничного или изменения законодательных норм, регистры сведений могут содержать противоречивую информацию.

Разберем по шагам процесс «реанимации» графика:

  1. Перейдем в настройки графика работы сотрудника.
  2. Снимем флаг «При заполнении учитывать оплачиваемые нерабочие дни» и нажмем кнопку «Заполнить».
  3. Снова установим этот флаг и еще раз нажмем «Заполнить». Это принудительно обновит записи в регистре График работы по видам времени.
  4. Если для сотрудника введен Индивидуальный график, его необходимо перезаполнить вручную, так как он полностью замещает основной график и не обновляется автоматически при изменении общих настроек.

Способ 3: Проверка приоритетов начислений

Проанализируем ситуацию с технической стороны настройки видов расчета. Если больничный лист не вытесняет оплату по окладу в части дней «ОН», то система посчитает оба периода. Нам необходимо убедиться, что настройки приоритетов верны.

Посмотрим на настройки начисления Оплата по окладу:

  1. Откроем карточку начисления (раздел Настройка — Начисления).
  2. Перейдем на вкладку «Приоритет».
  3. В левой колонке («Начисления, приоритет которых выше») обязательно должен присутствовать Больничный лист.
  4. Если вы используете новый вид времени для ОН, проверьте, чтобы он был корректно настроен в списке вытесняющих видов времени.

Также стоит проверить сам документ «Больничный лист». Иногда «кривой» расчет вызван тем, что в больничном на вкладке «Пересчет прошлого периода» зависли сторнирующие записи, которые конфликтуют с текущим начислением. Проанализируем движения документа по регистру расчета Зарплата Основные Начисления, чтобы исключить наложение периодов.

Заключение

Подводя итог, можно сказать: если вы столкнулись с тем, что ЗУП 3.1.13 «завышает» отработанное время при наличии кода ОН и больничных, наиболее надежным способом будет явное создание документа «Табель». Это позволит обойти ошибки автоматического алгоритма сбора данных. Однако для системного решения проблемы следует внимательно проверить настройки графиков работы и убедиться в правильности заполнения регистров сведений, отвечающих за учет времени.

← На главную