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