Как настроить оплату работы в выходные в ЗУП 3.1, чтобы избежать дублирования при кадровом перемещении

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

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

Анализ проблемы: почему часы распределяются поровну?

Когда мы создаем пользовательский показатель, например ВремяРВВ2Размере, и настраиваем его ввод документом Данные для расчета зарплаты один раз в месяц, программа 1С воспринимает это значение как общую величину за весь расчетный период. При кадровом переводе (документ Кадровый перевод или Изменение оплаты труда) система разбивает расчетный месяц на два (или более) подпериода.

Если в формуле начисления используется такой показатель, 1С видит, что он введен «на месяц», и при расчете первой части месяца (до перевода) и второй части (после перевода) она просто делит общее количество часов пропорционально календарным дням или поровну между этими периодами. В результате, даже если сотрудник работал в выходной только 5-го числа, а перевод был 15-го, оплата за этот выходной попадет в обе расчетные строки, причем по второй строке расчет может пройти по новой (неверной для той даты) тарифной ставке.

Метод 1. Настройка показателя с вводом по датам

Первый способ решить проблему — изменить настройки самих показателей. Разберем этот вариант по шагам:

  1. Перейдем в меню Настройка — Показатели расчета зарплаты.
  2. Найдем наши показатели (например, ВремяРВВ2Размере).
  3. В поле Назначение показателя проверим, чтобы было выбрано «Для сотрудника».
  4. В разделе Использование показателя необходимо переключить флаг в положение «Вводится несколько раз в месяц» или «Вводится ежедневно».

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

Метод 2. Использование видов рабочего времени (Рекомендуемый)

Наиболее надежным и методически верным способом является использование справочника Виды использования рабочего времени. Это позволяет программе четко идентифицировать время в табеле и корректно связывать его с периодами действия плановых начислений.

Рассмотрим алгоритм настройки:

  1. Создадим новый вид времени: перейдем в Настройка — Виды рабочего времени.
  2. Создадим элемент «Праздники в двойном размере» (краткий код, например, РВ2). В качестве основного времени укажем стандартное «Праздники».
  3. Аналогично создадим вид времени для полуторной оплаты (например, РВ15).
  4. В настройках начисления на вкладке Учет времени вместо стандартного вида времени «Праздники» выберем созданный нами РВ2.

Проанализируем преимущества этого метода: когда бухгалтер вводит документ Работа в выходные и праздники или заполняет Табель, он указывает конкретные дни. Поскольку кадровый перевод также имеет четкую дату, программа при расчете документа Начисление зарплаты и взносов сопоставляет дату вида времени РВ2 с актуальным на этот момент окладом сотрудника.

Оптимизация формулы расчета

Автор темы использовал формулу: ВремяРВВ2Размере * Оклад / НормаЧасов * 2. Однако при кадровых переводах использование прямого показателя Оклад может приводить к сложностям. Профессиональнее использовать встроенный механизм определения стоимости часа.

Посмотрим на пример более универсальной формулы:


Результат = ВремяВЧасах * СтоимостьЧаса * 2

Или, если мы работаем в версии для Казахстана и нам нужно гибко управлять коэффициентом:


Результат = ВремяВЧасах * СтоимостьЧаса * КоэффициентОплатыВыходного

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

Настройка вкладок «Приоритет» и «Зависимости»

Чтобы избежать дублирования и конфликтов с другими начислениями, важно правильно настроить вытеснение. Выясним причину, по которой это критично: если ваше новое начисление не настроено в списке приоритетов, оно может «накладываться» на периоды отсутствий (больничные, отпуска) или некорректно взаимодействовать с основным окладом.

  1. В форме вида расчета перейдем на вкладку Приоритет.
  2. В левую колонку («Начисления, приоритет которых выше») добавим все виды отсутствий (Оклад, Больничный, Отпуск).
  3. Это заставит программу более жестко контролировать периоды действия расчета.

Специфика для ЗУП Казахстана

Для пользователей из Казахстана важно помнить, что в типовой конфигурации часто уже предусмотрены механизмы полуторной оплаты. Если вам требуется именно два разных алгоритма, лучше всего создать два отдельных начисления с назначением Повременная оплата труда и надбавки. Это даст больше свободы в настройке формул и позволит избежать жестких ограничений, накладываемых системой на стандартный вид времени «Праздники».

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

← На главную