В практической работе с программой «1С:Зарплата и управление персоналом 8» (редакция 3.1) бухгалтеры и кадровики нередко сталкиваются с неприятной ситуацией: после внесения точечных изменений в ранее проведенные кадровые документы «задним числом» программа начинает вести себя непредсказуемо. Типичный пример — когда массовый кадровый перевод от начала апреля редактируют в конце мая ради одного сотрудника (например, переводят его с внешнего совместительства на основное место работы), после чего у всех остальных сотрудников, включенных в этот документ, оклады в начислении зарплаты внезапно сбрасываются в 0.
Даже ручная очистка зарегистрированных перерасчетов не помогает вернуть плановые начисления. В этой статье мы подробно разберем, почему возникает данная проблема, как устроена работа регистров в 1С:ЗУП 3.1 и как пошагово восстановить корректный расчет заработной платы.
Для того чтобы понять логику программы, рассмотрим внутренний механизм работы документов. Документ КадровыйПеревод (или его списочный аналог КадровыйПереводСписком) — это сложный инструмент, который одновременно производит записи в несколько ключевых регистров программы:
ПлановыеНачисления (виды начислений, размеры окладов/тарифов).ЗначенияПериодическихПоказателей (значения показателей расчета, таких как оклад, тарифная ставка).Когда мы повторно открываем и перепроводим апрельский документ в конце мая, программа автоматически считает, что все плановые начисления и показатели сотрудников, указанных в этом документе, были изменены или актуализированы на дату проведения. Если при редактировании документа (даже ради одного сотрудника) система заново инициализировала табличные части, плановые начисления для остальных сотрудников могли перезаписаться некорректно. Происходит разрыв связи в регистре ПлановыеНачисления: старые начисления закрываются датой изменения, а новые не регистрируются, из-за чего оклады становятся равными нулю.
Дополнительно в релизах ветки 3.1.13 (в частности, 3.1.13.188) и ранних версиях 3.1.14 присутствовала зарегистрированная программная ошибка. При перепроведении кадровых переводов у некоторых сотрудников ошибочно сбрасывалось количество занимаемых ставок в регистре кадровой истории. Так как итоговая формула начисления выглядит как Оклад * ВремяВЧасах / НормаВЧасах * ДоляСтавки, при нулевом количестве ставок результат расчета закономерно приравнивался к нулю.
Очистка таблицы через обработку Перерасчеты в данном случае не помогает, так как эта обработка работает лишь как «сигнальная лента» для документа НачислениеЗарплатыИВзносов. Если в самих регистрах сведений плановые начисления уже затерты или закрыты, программа честно рассчитывает нулевой результат на основе пустых показателей.
Проанализируем альтернативный и более безопасный подход. Если перед нами стоит задача массово перевести сотрудников из одного подразделения в другое (например, при переезде в новый филиал) без изменения условий оплаты труда, графиков работы и состава начислений, то использовать тяжелый документ КадровыйПеревод не рекомендуется.
Для этих целей в системе 1С:ЗУП 3.1 предусмотрен специализированный документ «Перемещение в другое подразделение». Давайте выясним, почему этот способ решает проблему:
Если массовый перевод уже зафиксирован обычным кадровым переводом и база повреждена, для исправления ситуации на будущее рекомендуется заменить этот массовый документ на цепочку «Перемещение в другое подразделение» для общего списка сотрудников, а для проблемного сотрудника, у которого изменился статус (с совместительства на основное место), сделать отдельный точечный документ КадровыйПеревод.
Если проблема нулевых окладов уже проявилась в рабочей базе, восстанавливать расчет необходимо строго последовательно. Ни в коем случае не пытайтесь просто пересчитывать документы поверх существующих начислений — это приведет к еще большему хаосу в регистрах перерасчетов.
Рассмотрим пошагово надежный алгоритм действий:
Шаг 1. Создание резервной копии. Перед началом любых технических манипуляций обязательно сделайте архивную копию информационной базы (файл 1Cv8.1CD или выгрузку информационной базы dt).
Шаг 2. Разделение кадровых документов. Откройте тот самый проблемный массовый кадровый перевод от 1 апреля. Исключите из него сотрудника, чьи данные (совместительство/основное место) вы правили 29 мая. Верните документ для остальных сотрудников в исходное, первоначальное состояние и проведите его.
Для измененного сотрудника создайте индивидуальный, отдельный документ КадровыйПеревод от нужной даты мая или апреля. Это разорвет ложную связь между сотрудниками в регистрах плановых начислений.
Шаг 3. Отмена проведения начислений (разпроведение). Перейдите в журнал документов начисления зарплаты и последовательно снимите с проведения все документы НачислениеЗарплатыИВзносов, начиная с самого первого проблемного месяца (в нашем примере — с апреля, затем май).
Шаг 4. Очистка очереди перерасчетов. Чтобы программа не пыталась тащить за собой ошибочные хвосты корректировок, перейдите в меню Зарплата — Сервис — Перерасчеты (или через меню «Функции для технического специалиста» — обработки — Перерасчеты). Выделите все записи, зарегистрированные в связи с изменениями этого кадрового перевода, и нажмите кнопку «Отменить» (или удалите их). Наша цель — полностью очистить очередь принудительных перерасчетов за апрель и май.
Шаг 5. Последовательный расчет. Теперь запустите процесс расчета зарплаты строго в хронологическом порядке:
НачислениеЗарплатыИВзносов за апрель.Если после выполнения всех шагов оклад у некоторых сотрудников все равно остается нулевым, проанализируем настройки кадрового учета. Зайдите в меню Настройка — Кадровый учет и проверьте флаг «Используется работа по неполной ставке». Если в вашей версии программы отработал баг со сбросом ставок, откройте кадровые документы сотрудников и убедитесь, что в поле «Колич. ставок» явно указано значение «1» (или иное дробное значение), а не пустое поле. При необходимости перевыберите ставку и перепроведите кадровый документ.
Соблюдение этого порядка действий позволит вам вернуть учет в штатный режим и избежать повторного появления нулевых окладов при последующих расчетах.