При работе в программе 1С:Зарплата и Управление Персоналом 3.1 бухгалтеры часто сталкиваются с ситуацией, когда при окончательном расчете зарплаты сумма взыскания по исполнительному листу в ведомости оказывается завышенной. Проблема особенно остро проявляется, если в настройках расчета зарплаты включена опция "Ограничивать сумму удержаний процентом от заработной платы". В этой статье мы подробно разберем, почему программа «забывает» учесть уже произведенные межрасчетные удержания, и выработаем алгоритм правильного исправления документов.
Рассмотрим типичный сценарий. В настройках программы (раздел Настройка – Расчет зарплаты) установлен флаг Ограничивать сумму удержаний процентом от заработной платы. У сотрудника есть исполнительный лист (например, 25%). В течение месяца выполняются следующие действия:
В этот момент мы обнаруживаем, что в финальной ведомости сумма в колонке "Взыскано" подбирается без учета того, что часть суммы уже была удержана при выплате отпуска. Проанализируем причину: это происходит из-за того, что при включенном ограничении взысканий алгоритм 1С переходит на сложную модель учета очередей и лимитов. В этой модели цепочка «начисление — выплата — исчисление удержания» разрывается, если база для расчета «плавает» внутри одного месяца из-за сторнирующих записей документа исправления.
Выясним причину зависимости от флажка ограничения. Когда флаг Ограничивать сумму удержаний... снят, программа использует упрощенный метод: она просто вычитает сумму всех удержаний из всех начислений. Но как только флаг установлен, в расчет вступает регистр накопления Удержания по исполнительным документам и механизм очередности. Программа пытается сопоставить каждое начисление с конкретной выплатой.
Если мы используем документ "Исправление", создаются записи сторно. Механизм ограничения в текущих релизах (включая 3.1.30.81) имеет зарегистрированную ошибку №000159298. Суть ее в том, что программа не анализирует движения по выплаченным ведомостям при пересчете базы внутри месяца, если была создана корректирующая цепочка документов.
Проанализируем самый эффективный способ избежать дублирования сумм. Методологически в 1С:ЗУП принято правило: если расчетный период еще не закрыт (зарплата не выплачена окончательно и отчетность не сдана), использовать механизм исправления (кнопку внизу документа) не рекомендуется.
Пошаговый алгоритм действий:
При таком подходе не создается лишних записей в регистре Взаиморасчеты по сотрудникам и Удержания по исполнительным документам, и программа корректно «видит» остаток долга по взысканию.
Если вы все же используете механизм исправлений или сложную структуру начислений, крайне важно правильно завершить расчетный цикл. Многие ошибочно полагают, что документ Ограничение взысканий нужен только тогда, когда сумма удержаний превышает 50%. На самом деле, при включенной настройке в параметрах расчета, этот документ является системным «завершителем», который распределяет суммы по регистрам.
Рассмотрим последовательность:
Разберем ситуацию, когда расчет уже выполнен и времени на перепроведение документов нет. Важно понимать техническую суть колонки "Взыскано" в ведомости. Эта колонка не влияет на бухгалтерское сальдо сотрудника (на него влияют суммы в колонке "Удержания"). Значение "Взыскано" нужно исключительно для передачи в банк в соответствии с 229-ФЗ, чтобы банк понимал, какую сумму уже удержал работодатель.
Если вы видите, что сумма в ведомости «двоится»:
Это гарантирует, что сотрудник получит верную сумму на руки, а банк не спишет лишнее с его счета при зачислении зарплаты.
Для программистов и продвинутых пользователей будет полезно знать, как выглядят движения в регистрах. Удержания для ведомостей хранятся в регистре накопления Удержания по исполнительным документам. Посмотрим на логику его заполнения при исправлении документа внутри месяца:
// Примерная схема логической ошибки алгоритма:
База_Итого = Сумма_Отпуска_Новая + Прочая_Зарплата;
Удержание_Всего = База_Итого * 0.25;
// ОШИБКА: Программа берет Удержание_Всего и вычитает только Удержано_В_Авансе,
// забывая проанализировать Удержано_В_Межрасчете, если связь с исходным
// документом была разорвана через "Сторно".
К_Удержанию_В_Ведомости = Удержание_Всего - Удержано_В_Авансе;
Чтобы избежать подобных ситуаций, старайтесь минимизировать количество корректировок способом "Исправить" в рамках одного и того же месяца. Помните, что настройка "Ограничивать сумму удержаний..." заставляет программу работать по гораздо более строгому и, к сожалению, более подверженному ошибкам алгоритму, чем стандартный расчет.