Почему в 1С:ЗУП 3.1 при расчете разных начислений используется одно и то же значение показателя и как это исправить?

Программист 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом
← На главную

При настройке сложных систем оплаты труда в конфигурации 1С:Зарплата и управление персоналом 3.1 (ЗУП) пользователи и разработчики часто сталкиваются с ситуацией, когда один и тот же показатель (например, СтавкаСумма) используется в нескольких разных начислениях. Проблема возникает в момент назначения этих начислений сотруднику: если мы пытаемся указать разные значения для этого показателя в рамках одного документа (например, «Прием на работу»), программа при расчете зарплаты «подтягивает» только одно, последнее значение для всех видов расчета. Рассмотрим подробно, почему это происходит и как правильно настроить систему.

Разберем причину: архитектура регистров сведений

Для начала проанализируем ситуацию с технической точки зрения. Многие ошибочно полагают, что это баг системы, но на самом деле — это базовая логика архитектуры 1С. В ЗУП 3.1 значения показателей, которые мы вводим в кадровых документах, хранятся в специализированных регистрах. Основной из них — ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковИнтервальный.

Посмотрим на структуру измерений этого регистра. В него входят:

  1. Сотрудник (или Физическое лицо).
  2. Показатель.

Обратим внимание на критически важный момент: в измерениях регистра отсутствует «Вид расчета» (начисление). Это означает, что для системы показатель — это свойство самого сотрудника, а не конкретного начисления. Программа физически не может хранить в одной точке времени две разные записи для одного и того же сотрудника и одного и того же показателя. Когда вы записываете документ, где один показатель используется дважды с разными значениями, система просто перезаписывает предыдущее значение последним. В итоге при расчете Начисления 1 и Начисления 2 будет использована одна и та же цифра.

Принцип «Один показатель — одна сущность»

Рассмотрим аналогию, которая хорошо объясняет логику разработчиков 1С. Представим, что показатель — это «рост сотрудника». Сотрудник не может иметь рост 170 см для одного вида работ и 180 см для другого. Если вы используете показатель СтавкаСумма, система воспринимает его как единую характеристику условий труда данного человека.

Если для одного начисления вам нужно платить «за сложность» 5000 рублей, а для другого «за интенсивность» 3000 рублей, то с точки зрения методологии учета — это разные свойства. Следовательно, они требуют создания разных объектов в справочнике Показатели расчета зарплаты.

Решение №1: Создание уникальных показателей (Рекомендуемое)

Самый правильный и надежный способ — это создание отдельных показателей для каждого вида начисления. Выясним, как это сделать правильно, чтобы не запутать пользователя.

  1. Перейдем в раздел Настройка — Показатели расчета зарплаты.
  2. Вместо одного универсального показателя создадим два: например, СтавкаКомпенсации и СтавкаНадбавки.
  3. Для каждого показателя установим настройки:
    • Назначение показателя: Для сотрудника.
    • Тип показателя: Денежный.
    • Использование показателя: Во всех месяцах после введения значения (постоянное использование).
  4. Отредактируем формулы соответствующих начислений в справочнике Начисления, заменив старый общий показатель на новые уникальные.

Такой подход гарантирует, что в кадровых документах (Прием на работу, Кадровый перевод) для каждого начисления будет выделено отдельное поле ввода, и значения не будут конфликтовать друг с другом в регистрах.

Решение №2: Использование механизма «Ввод данных для расчета зарплаты»

Если специфика вашей организации такова, что показатели меняются часто и вы не хотите фиксировать их в кадровых приказах, проанализируем альтернативный вариант. Можно настроить показатели так, чтобы их значения вводились отдельным документом Ввод данных для расчета зарплаты.

В настройках показателя выберите вариант «Вводится единовременно документом ввода данных для расчета зарплаты». В самом Шаблоне ввода данных можно настроить таблицу таким образом, чтобы ввод осуществлялся в разрезе сотрудников. Хотя это не решает проблему уникальности имени показателя, это позволяет более гибко управлять суммами вне привязки к кадровой истории.

Решение №3: Использование «Доли неполного рабочего времени» и базовых начислений

Иногда дублирование показателей можно обойти за счет математики формул. Если одно из ваших начислений всегда является производным от другого, мы можем использовать показатель РасчетнаяБаза.

Например, если Начисление 2 — это всегда 50% от Начисления 1, не нужно вводить второй показатель суммы. Достаточно в формуле Начисления 2 указать:

Результат = РасчетнаяБаза * 0.5

В этом случае на вкладке «Расчет базы» нужно просто указать Начисление 1. Это избавит систему от хранения лишних данных и исключит ошибки ручного ввода.

Понятие «Основного показателя» и его влияние

Стоит также упомянуть скрытый реквизит, доступный через инструменты разработчика или обработку «Редактор реквизитов» — Основной показатель. В типовой конфигурации ЗУП у каждого начисления в табличной части Показатели один из них помечен как основной (ЭтоОсновнойПоказатель = Истина).

Проанализируем ситуацию: если вы используете один и тот же показатель как «основной» для двух разных начислений, программа при формировании печатных форм приказов или отчетов о плановом ФОТ может запутаться, какую именно сумму выводить в колонку «Оклад/Тарифная ставка». Это еще один аргумент в пользу разделения показателей.

Выясним причины сопротивления пользователей

Часто пользователи жалуются, что «плодить показатели» — это неудобно, так как за ними нужно следить. Однако в 1С:ЗУП 3.1 порядок в справочнике показателей — это залог правильного расчета среднего заработка, корректного заполнения отчетности и отсутствия «фантомных» сумм при пересчетах.

Резюмируем: использование одного показателя для разных значений — это нарушение логики проектирования системы. Для каждого независимого значения, которое должно храниться в истории сотрудника отдельно, необходимо создавать свой объект в справочнике показателей. Это обеспечит стабильность работы регистров ЗначенияПериодическихПоказателей... и исключит конфликты при расчете зарплаты.

← На главную