Почему в расчетном листке 1С:ЗУП некорректно отображаются рабочие дни по больничному листу и как это исправить?

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

Каждый бухгалтер, работающий в программе 1С:Зарплата и Управление Персоналом 3.1, рано или поздно сталкивается с загадочным поведением программы при формировании расчетных листков. Одна из наиболее частых проблем — неверное количество рабочих дней в строке начисления по больничному листу. Например, сотрудник болел в период с 12 по 23 число, на этот период приходится 8 рабочих и 4 выходных дня по графику пятидневки. Однако программа упорно выводит в расчетный листок 10 рабочих дней (как будто расчет идет по шестидневке) или вовсе дублирует строки с невыходами.

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

Выясняем причину: почему сбоит логика программы?

Описанная ситуация чаще всего связана с зарегистрированной ошибкой платформы (код ошибки 10189207) или с нарушением методологии ведения учета рабочего времени в программе. Давайте проанализируем, что происходит «под капотом» 1С:ЗУП.

Когда вы проводите документ Больничный лист, программа должна зафиксировать два показателя времени в регистре накопления Отработанное время по сотрудникам:

  1. Оплачено дней — календарные дни болезни (в нашем примере — 12 дней).
  2. Время (дн.) — рабочие дни отсутствия сотрудника по его индивидуальному графику работы (в нашем примере — 8 рабочих дней).

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

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


ВЫБРАТЬ
    ОтработанноеВремя.Сотрудник КАК Сотрудник,
    ОтработанноеВремя.Регистратор КАК ДокументРегистратор,
    ОтработанноеВремя.ВидИспользованияВремени КАК ВидВремени,
    ОтработанноеВремя.Дни КАК РабочиеДни,
    ОтработанноеВремя.ОплаченоДней КАК КалендарныеДни
ИЗ
    РегистрНакопления.ОтработанноеВремяПоСотрудникам КАК ОтработанноеВремя
ГДЕ
    ОтработанноеВремя.Сотрудник = &Сотрудник

Если в результате запроса в поле РабочиеДни для строки больничного вы увидите числа, совпадающие с календарными днями или не соответствующие графику сотрудника, значит, вы столкнулись именно с этой проблемой.

Проблема пересечения: почему «Невыход» (НН) и «Больничный» отображаются вместе?

Другой частый сценарий — когда сотрудник заболевает неожиданно. Сначала в системе фиксируется документ Отсутствие (болезнь, прогул, неявка) с кодом НН (отсутствие по невыясненной причине). В конце первой половины месяца или в конце периода закрывается Табель. Позже сотрудник приносит листок нетрудоспособности, и бухгалтер вводит Больничный лист.

В этот момент возникает логический конфликт документов:

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

Пошаговая инструкция по исправлению расчетного листка

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

Шаг 1. Временная отмена проведения документов времени

Прежде всего необходимо снять проведение с документов, которые зафиксировали время до ввода больничного. Найдите в журнале документов за отчетный месяц документ Табель по данному сотруднику (или по всему подразделению) и отмените его проведение. Аналогично поступите с документом Начисление за первую половину месяца, если он был рассчитан в период болезни сотрудника.

Шаг 2. Перезаполнение и перерасчет Больничного листа

Откройте проблемный документ Больничный лист. Чтобы заставить программу пересчитать время с чистого листа (без учета зафиксированных ранее табелем данных):

  1. Нажмите кнопку Еще в правом верхнем углу формы документа и выберите команду Перезаполнить документ (или перевыберите сотрудника в поле «Сотрудник»).
  2. Убедитесь, что на вкладке оплаты рассчитались корректные суммы, а программа правильно распознала рабочие дни по графику.
  3. Проведите документ Больничный лист.

Шаг 3. Перезаполнение Табеля учета рабочего времени

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

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

Шаг 4. Финальный перерасчет зарплаты

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

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

Методологическая рекомендация фирмы «1С»

Для того чтобы минимизировать возникновение подобных ошибок в будущем, методисты фирмы «1С» рекомендуют по возможности избегать постоянного ручного ввода документа «Табель».

Программа 1С:ЗУП 3.1 построена на «методе отклонений». Это значит, что для сотрудников со стандартными графиками работы (пятидневка, сменные графики) программа сама рассчитывает норму и фактически отработанное время на основании планового графика и введенных документов отклонений (Отпуск, Больничный лист, Командировка, Отсутствие). Ручной ввод Табеля требуется только в исключительных случаях (например, при сложной сдельной оплате или нестандартных изменениях смен «на лету»). Если не вводить документ Табель без крайней необходимости, то любые документы отклонений будут автоматически и без ошибок вставать на свои места в расчетных листках.

← На главную