Как ограничить общую сумму нескольких начислений одного вида в 1С:ЗУП 3.1?

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

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

Если сотрудник замещал коллегу один раз за месяц, стандартная формула вида Мин((ДоплатаНов * ОтработаноЧасов / НормаЧасов), 11500) отрабатывает идеально. Но что делать, если в течение одного месяца у сотрудника было два, три или более периодов совмещения/переработок? Программа рассчитает каждый период отдельной строкой и применит ограничение к каждой строке изолированно. В результате совокупная сумма начислений превысит установленный лимит в 11 500 рублей. Рассмотрим подробнее, почему так происходит, и разберем по шагам рабочие способы решения этой проблемы без изменения типовой конфигурации.

Выясняем причину: почему программа «дробит» лимит?

Режим расчетов в программе 1С:ЗУП устроен так, что расчетный механизм документа НачислениеЗарплатыИВзносов производит вычисления построчно. Если у сотрудника в течение месяца менялись кадровые условия (подразделение, должность, график работы) или вводились разные документы-основания (например, несколько документов назначения доплаты на разные периоды), программа создает в табличной части несколько строк расчета.

При этом расчетная система вычисляет формулу для каждой строки отдельно. Система «не видит» в момент расчета первой строки, сколько будет начислено по второй и третьей. Функция Мин отрабатывает локально для каждой строки, из-за чего итоговая сумма начислений сотрудника за месяц оказывается существенно выше лимита.

Для решения этой проблемы мы можем использовать несколько методических приемов. Разберем три основных сценария настройки.

Способ №1. Связка «Технического» и «Основного» начислений через расчетную базу

Это самый надежный и методологически верный способ, который позволяет автоматически собирать все «кусочки» начислений сотрудника за месяц в одну общую сумму и ограничивать ее лимитом. Мы разделим процесс расчета на два этапа: накопление неограниченной суммы и применение лимита к общему итогу.

Шаг 1. Создание технического (вспомогательного) начисления

Нам необходимо создать новое начисление, которое будет рассчитывать полную сумму доплаты без ограничений по всем периодам работы.

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

ДоплатаНов * ОтработаноЧасов / НормаЧасов

  1. Заполним показатели начисления и сохраним его. Данное начисление будет рассчитываться в документе начисления зарплаты несколькими строками по всем периодам и автоматически суммироваться.

Шаг 2. Настройка основного (итогового) начисления

Теперь создадим то начисление, которое реально пойдет к выплате сотруднику в конверте или на карту.

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

Мин(РасчетнаяБаза, 11500)

  1. Перейдем на вкладку Расчет базы. В списке Базовые начисления выберем только что созданное нами техническое начисление Доплата техническая (расчетная).
  2. Период расчета базы укажем как Текущий месяц.
  3. Сохраним начисление.

Как это работает при расчете зарплаты?

Проанализируем алгоритм работы программы. При заполнении документа НачислениеЗарплатыИВзносов система сначала рассчитывает все строки технического начисления Доплата техническая (расчетная) за каждый период замещения отдельно. Например, сотруднику начислено три раза по 5 000 рублей. Итого техническая сумма составляет 15 000 рублей.

Затем программа переходит к расчету начисления Доплата итоговая (с ограничением лимита). Она суммирует техническое начисление в рамках показателя РасчетнаяБаза (получается 15 000 рублей), подставляет это значение в формулу основного начисления и находит минимум между 15 000 и 11 500. В итоге к выплате сотруднику начисляется ровно 11 500 рублей одной строкой. Переплата полностью исключается.

Способ №2. Использование признака «Начисляется в целом за месяц»

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

В настройках вашего начисления перейдем на вкладку Основное и найдем флаг Начисляется в целом за месяц.

Если этот флаг установлен, программа принудительно объединит все показатели отработанного времени и нормы за месяц по сотруднику, рассчитает формулу один раз за весь месяц целиком и применит ограничение к общему результату.

Важный нюанс: Часто данный флаг заблокирован для редактирования в зависимости от выбранного назначения начисления. Разберем, как обойти это ограничение:

  1. Откроем инструмент Групповое изменение реквизитов (раздел Администрирование — Обслуживание — Корректировка данных).
  2. Выберем объект изменения — Начисления.
  3. Добавим отбор по конкретному начислению, которое необходимо скорректировать.
  4. Найдем реквизит Начисляется в целом за месяц и установим его значение в Да.
  5. Нажмем кнопку Изменить реквизиты.

После проведения этой настройки программа перестанет делить расчет формулы по строкам кадровых перемещений и выдаст единый верный результат с учетом лимита.

Способ №3. Накопление показателей в течение месяца

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

Выполним настройку по шагам:

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

Мин(ОбщаяДоплатаНов, 11500)

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

Что делать, если доплаты рассчитываются межрасчетными документами?

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

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

? (РасчетнаяБаза > 11500, 11500 - РасчетнаяБаза, 0)

Где в качестве расчетной базы будут выступать все ранее проведенные разовые начисления по этой доплате. Если сумма разовых выплат превысила 11 500 рублей, программа автоматически начислит отрицательную корректирующую сумму, которая вернет итоговую выплату сотрудника к установленному лимиту.

← На главную