При ведении учета в программе 1С:Зарплата и управление персоналом 3.1 (ЗУП) одной из наиболее сложных и уязвимых подсистем является учет по обособленным территориям. Особенно часто пользователи сталкиваются с трудностями, когда сотрудники перемещаются между территориями с разными значениями районных коэффициентов (РК) в середине расчетного месяца. На первый взгляд, программа делает расчет корректно: итоговые суммы оклада и базовых начислений сходятся. Однако при детальном анализе распределения базы РК обнаруживается критическая погрешность, из-за которой итоговая сумма самого районного коэффициента рассчитывается неверно.
В этой статье мы подробно разберем, почему возникает данная проблема, проанализируем внутренние механизмы распределения базы в 1С:ЗУП и найдем практические способы решения этой ошибки.
---
Рассмотрим классическую практическую ситуацию. Сотрудник организации с начала месяца работает на одной территории, а с 3-го числа переводится на другую территорию, где установлен иной районный коэффициент. При расчете заработной платы в документе НачислениеЗарплатыИВзносов мы видим следующие показатели за первые два дня месяца:
Логика подсказывает, что для первой территории расчетная база районного коэффициента (при значении РК = 1.7, то есть надбавке 70%) должна составить:
(4 215,87 + 191,63) * 0,7 = 3 085,25 руб.
Однако по факту программа рассчитывает сумму 3 653,76 руб. Разница существенна. При этом, если мы откроем детальную расшифровку расчета начислений по кнопке «Показать подробности расчета», то увидим, что общая итоговая база по окладу и ночным за месяц зафиксирована абсолютно верно. Ошибка кроется глубже — в скрытых механизмах распределения базы по территориям, которые программа хранит во внутренних таблицах документа.
---
Проанализировав поведение системы и особенности различных релизов 1С:ЗУП 3.1 (особенно ранних версий ветки 3.1.7, а также некоторых промежуточных релизов более новых веток), можно выделить несколько ключевых причин, ломающих расчет:
ТабельУчетаРабочегоВремени создается или пересчитывается после проведения документов начисления, либо если кадровый перевод был оформлен «задним числом», распределение долей времени ломается. Программа жестко ориентируется на зафиксированные в табеле часы работы по территориям, и любые расхождения ведут к неверному распределению базы.---
Рассмотрим подробнее, какими методами мы можем исправить расчет базы районного коэффициента и вернуть учет в корректное русло.
Если вы работаете на устаревших релизах (например, ветки 3.1.7, 3.1.8 или ранних версиях 3.1.10/3.1.14), данная ошибка является системным багом платформы и конфигурации. В этих версиях механизм распределения по территориям только обкатывался разработчиками 1С. Лучшим и самым надежным решением является обновление конфигурации до актуального поддерживаемого релиза, в котором исправлены зарегистрированные ошибки распределения баз (включая ошибки №10221113 и №10214192).
При массовом расчете сотрудников в документе НачислениеЗарплатыИВзносов программа задействует оптимизированные пакетные алгоритмы, которые чаще сбоят при распределении по территориям. Попробуем выполнить точечный перерасчет проблемного сотрудника:
При индивидуальном расчете программа заново формирует временные таблицы распределения базы в оперативной памяти, что во многих случаях решает проблему «зависших» некорректных долей времени.
Для корректного распределения критически важен порядок ввода документов. Проанализируем правильную цепочку действий:
КадровыйПеревод, ПеремещениеМеждуТерриториями), фиксирующие работу на новых территориях.Табель (если он используется в организации). Обратите внимание: в табеле должны быть четко разделены строки по территориям работы.НачислениеЗарплатыИВзносов.Если последовательность была нарушена, рекомендуем полностью отменить проведение начисления зарплаты, перезаполнить и перепровести табель, а затем заново заполнить и рассчитать документ начисления.
Выясним, корректно ли настроена зависимость РК от базовых начислений. Для этого перейдем в настройки программы:
Если стандартные действия не помогают, необходимо заглянуть «под капот» системы. Распределение начислений по территориям фиксируется в специализированных регистрах сведений. Проанализируем записи с помощью несложного запроса или через функции технического специалиста.
Посмотрим на структуру данных в регистре сведений ТерриторииСотрудников. Мы можем извлечь эти данные для анализа следующей выборкой:
ВЫБРАТЬ
ТерриторииСотрудников.Период КАК ПериодЗаписи,
ТерриторииСотрудников.Сотрудник КАК Сотрудник,
ТерриторииСотрудников.Территория КАК Территория,
ТерриторииСотрудников.Территория.РайонныйКоэффициент КАК КоэффициентРК
ИЗ
РегистрСведений.ТерриторииСотрудников КАК ТерриторииСотрудников
ГДЕ
ТерриторииСотрудников.Сотрудник = &ПараметрСотрудник
И ТерриторииСотрудников.Период МЕЖДУ &НачалоПериода И &КонецПериода
Если в результате выполнения запроса вы увидите накладывающиеся периоды или дублирующиеся записи по одной и той же территории на разные даты внутри месяца, это означает наличие логической ошибки в кадровых документах. В таком случае необходимо распроводить кадровые перемещения за этот месяц и вводить их заново, контролируя отсутствие «наползания» дат друг на друга.
Также обратите внимание на табличную часть распределения по территориям непосредственно внутри самого документа начисления зарплаты. В некоторых случаях (при повреждении кэша базы данных или сбоях СУБД) очистить неверные данные распределения помогает физическое удаление строки сотрудника из документа начисления с последующим добавлением через кнопку «Подбор» вместо автоматического заполнения.