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