Почему 1С:ЗУП берет расчетную базу не полностью и как это исправить?

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

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

Проанализируем механизм «пропорционального деления» базы

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

Внутренний движок расчета при получении показателя РасчетнаяБаза выполняет запрос к виртуальным таблицам. Если в настройках начисления указано, что оно зависит от времени, система автоматически применяет коэффициент отработанного времени к базовым суммам. То есть, если норма времени — 20 дней, а отработано 15, программа возьмет только 75% от суммы премии в качестве базы для надбавки, даже если сама премия является фиксированной суммой и не уменьшалась из-за отсутствия сотрудника.

Выясним причину: почему ручное изменение формулы не помогает?

Многие пользователи пытаются решить проблему, упрощая формулу начисления. Например, исключают из неё показатели времени, оставляя только:


Результат = РасчетнаяБаза * ПроцентНадбавки / 100

Однако это не дает результата. Рассмотрим подробнее, почему. Дело в том, что расчет показателя РасчетнаяБаза происходит до того, как формула начинает вычисляться. Сами настройки вида расчета на вкладках «Основное» и «Расчет базы» диктуют системе, как именно собирать данные. Если программа видит, что основное начисление (надбавка) имеет вытесняющие виды расчета (больничные, отпуска), она автоматически считает, что и база для этого начисления должна «схлопнуться» до фактического периода действия.

Решение проблемы: Настройка «Период расчета базы»

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

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

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

Влияние приоритетов и вытеснений

Проанализируем еще один важный аспект — вкладку «Приоритет». На этой вкладке указаны начисления, которые «вытесняют» нашу надбавку. Если мы хотим, чтобы надбавка рассчитывалась за весь месяц в фиксированной сумме (как процент от полной премии), нам необходимо убедиться, что логика вытеснения не противоречит нашим задачам.

Если надбавка должна начисляться только за рабочие дни, но от полной суммы премии, то настройка «Период действия (весь период)» на вкладке расчета базы решит проблему. Но если надбавка сама по себе не должна уменьшаться при больничном, следует очистить список вытесняющих видов расчета в правой колонке на вкладке «Приоритет».

Проверим настройки учета времени

Посмотрим на вкладку «Учет времени». Для корректной работы надбавок, которые являются простым процентом от других сумм, рекомендуется обратить внимание на переключатель типа начисления:

Пример настройки формулы для сложных случаев

Иногда требуется, чтобы надбавка считалась от базы, но при этом имела собственный показатель ограничения по времени. В таких случаях мы можем использовать в формуле условия ?() или специализированные показатели. Рассмотрим пример:


Результат = РасчетнаяБаза * (ДоляВремени) * Процент / 100

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

Заключение

Подведем итоги. Если вы видите, что 1С:ЗУП берет в расчет только часть премии или оклада, хотя вы ожидаете полную сумму, выполните следующие действия:

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

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

← На главную