При настройке сложных систем оплаты труда в конфигурации 1С:Зарплата и управление персоналом 3.1 (ЗУП) пользователи и разработчики часто сталкиваются с ситуацией, когда один и тот же показатель (например, СтавкаСумма) используется в нескольких разных начислениях. Проблема возникает в момент назначения этих начислений сотруднику: если мы пытаемся указать разные значения для этого показателя в рамках одного документа (например, «Прием на работу»), программа при расчете зарплаты «подтягивает» только одно, последнее значение для всех видов расчета. Рассмотрим подробно, почему это происходит и как правильно настроить систему.
Для начала проанализируем ситуацию с технической точки зрения. Многие ошибочно полагают, что это баг системы, но на самом деле — это базовая логика архитектуры 1С. В ЗУП 3.1 значения показателей, которые мы вводим в кадровых документах, хранятся в специализированных регистрах. Основной из них — ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковИнтервальный.
Посмотрим на структуру измерений этого регистра. В него входят:
Обратим внимание на критически важный момент: в измерениях регистра отсутствует «Вид расчета» (начисление). Это означает, что для системы показатель — это свойство самого сотрудника, а не конкретного начисления. Программа физически не может хранить в одной точке времени две разные записи для одного и того же сотрудника и одного и того же показателя. Когда вы записываете документ, где один показатель используется дважды с разными значениями, система просто перезаписывает предыдущее значение последним. В итоге при расчете Начисления 1 и Начисления 2 будет использована одна и та же цифра.
Рассмотрим аналогию, которая хорошо объясняет логику разработчиков 1С. Представим, что показатель — это «рост сотрудника». Сотрудник не может иметь рост 170 см для одного вида работ и 180 см для другого. Если вы используете показатель СтавкаСумма, система воспринимает его как единую характеристику условий труда данного человека.
Если для одного начисления вам нужно платить «за сложность» 5000 рублей, а для другого «за интенсивность» 3000 рублей, то с точки зрения методологии учета — это разные свойства. Следовательно, они требуют создания разных объектов в справочнике Показатели расчета зарплаты.
Самый правильный и надежный способ — это создание отдельных показателей для каждого вида начисления. Выясним, как это сделать правильно, чтобы не запутать пользователя.
СтавкаКомпенсации и СтавкаНадбавки.Начисления, заменив старый общий показатель на новые уникальные.Такой подход гарантирует, что в кадровых документах (Прием на работу, Кадровый перевод) для каждого начисления будет выделено отдельное поле ввода, и значения не будут конфликтовать друг с другом в регистрах.
Если специфика вашей организации такова, что показатели меняются часто и вы не хотите фиксировать их в кадровых приказах, проанализируем альтернативный вариант. Можно настроить показатели так, чтобы их значения вводились отдельным документом Ввод данных для расчета зарплаты.
В настройках показателя выберите вариант «Вводится единовременно документом ввода данных для расчета зарплаты». В самом Шаблоне ввода данных можно настроить таблицу таким образом, чтобы ввод осуществлялся в разрезе сотрудников. Хотя это не решает проблему уникальности имени показателя, это позволяет более гибко управлять суммами вне привязки к кадровой истории.
Иногда дублирование показателей можно обойти за счет математики формул. Если одно из ваших начислений всегда является производным от другого, мы можем использовать показатель РасчетнаяБаза.
Например, если Начисление 2 — это всегда 50% от Начисления 1, не нужно вводить второй показатель суммы. Достаточно в формуле Начисления 2 указать:
Результат = РасчетнаяБаза * 0.5
В этом случае на вкладке «Расчет базы» нужно просто указать Начисление 1. Это избавит систему от хранения лишних данных и исключит ошибки ручного ввода.
Стоит также упомянуть скрытый реквизит, доступный через инструменты разработчика или обработку «Редактор реквизитов» — Основной показатель. В типовой конфигурации ЗУП у каждого начисления в табличной части Показатели один из них помечен как основной (ЭтоОсновнойПоказатель = Истина).
Проанализируем ситуацию: если вы используете один и тот же показатель как «основной» для двух разных начислений, программа при формировании печатных форм приказов или отчетов о плановом ФОТ может запутаться, какую именно сумму выводить в колонку «Оклад/Тарифная ставка». Это еще один аргумент в пользу разделения показателей.
Часто пользователи жалуются, что «плодить показатели» — это неудобно, так как за ними нужно следить. Однако в 1С:ЗУП 3.1 порядок в справочнике показателей — это залог правильного расчета среднего заработка, корректного заполнения отчетности и отсутствия «фантомных» сумм при пересчетах.
Резюмируем: использование одного показателя для разных значений — это нарушение логики проектирования системы. Для каждого независимого значения, которое должно храниться в истории сотрудника отдельно, необходимо создавать свой объект в справочнике показателей. Это обеспечит стабильность работы регистров ЗначенияПериодическихПоказателей... и исключит конфликты при расчете зарплаты.