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