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