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