Как в 1С настроить расчет квартальной премии пропорционально отработанному времени за три месяца?

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

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

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

В чем заключается ограничение типового механизма формул 1С

Проанализируем типовое поведение программы при настройке начислений с назначением «Премия» или «Разовое начисление»:

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

Анализ формулы на основе расчетной базы

Рассмотрим вариант, который часто применяют пользователи при настройке разового начисления с базовым периодом в 3 месяца:

Формула начисления: (РасчетнаяБаза / ОтработаноВремениВДнях) * (ОтработаноВремениВДнях / 3)

Разберем математический смысл этого выражения. При сокращении числителя и знаменателя формула превращается в: РасчетнаяБаза / 3. В данном случае РасчетнаяБаза представляет собой сумму начислений по окладу за предыдущие 3 месяца.

Посмотрим на примеры работы этого алгоритма:

  1. Ситуация 1 (оклад стабилен): Сотрудник отработал 1-й месяц полностью (оклад 30 000 руб.), 2-й месяц был в отпуске (начислено 0 руб.), 3-й месяц отработал полностью (30 000 руб.). База составит 60 000 руб. Результат: 60 000 / 3 = 20 000 руб. В этой ситуации премия рассчитывается корректно относительно фактически полученного дохода.
  2. Ситуация 2 (оклад изменился в течение квартала): Сотрудник первые 2 месяца работал с окладом 10 000 руб. и отработал их полностью по норме (по 20 дней). В 3-м месяце оклад повысили до 20 000 руб., при норме 20 дней отработано 10 дней (начислено 10 000 руб.). По формуле расчетной базы получим: (10 000 + 10 000 + 10 000) / 3 = 10 000 руб. Однако если по положению о премировании требуется взять текущий оклад (20 000 руб.) и умножить на общее отношение времени за квартал (50 отработанных дней / 60 дней нормы), то результат должен быть: 20 000 * 50 / 60 = 16 666,67 руб.

Таким образом, формула через РасчетнаяБаза подходит для начисления премии от среднего фактического заработка за квартал, но не решает задачу начисления от текущего оклада.

Вариант 1. Использование пользовательских показателей и документа «Данные для расчета зарплаты»

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

  1. Перейдем в раздел Настройка — Показатели расчета зарплаты и создадим новый показатель:
    • Наименование: Коэффициент отработанного времени за квартал;
    • Идентификатор: КоэффициентОтработанногоВремениЗаКвартал;
    • Назначение: Для сотрудника;
    • Тип показателя: Числовой (точность 4 или 5 знаков);
    • Использование: Вводится единовременно документом ввода данных для расчета зарплаты.
  2. Создадим начисление (раздел Настройка — Начисления):
    • Назначение начисления: Премия;
    • Начисление выполняется: По отдельному документу (документ «Премия»);
    • Формула расчета: Оклад * КоэффициентОтработанногоВремениЗаКвартал (или Оклад * (ФактДнейКвартал / НормаДнейКвартал), если создать два раздельных показателя для нормы и факта).
  3. Настроим шаблон ввода данных (раздел Настройка — Шаблоны ввода исходных данных), выбрав созданные показатели.
  4. Перед расчетом квартальной премии зарегистрируем фактический коэффициент документом Зарплата — Данные для расчета зарплаты, после чего рассчитаем документ Премия.

Вариант 2. Использование служебного ежемесячного начисления-накопителя

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

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

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

Вариант 3. Подключение внешней обработки заполнения документа

Для исключения ручного подсчета нормы и факта за 3 месяца часто применяют механизм внешних подключаемых обработок заполнения табличной части документа Премия (без изменения конфигурации и снятия с поддержки):

  1. Обработка программно обращается к регистрам учета рабочего времени (графикам работы и фактически отработанному времени) за выбранные три месяца базового периода.
  2. Считывает текущее плановое начисление сотрудника (размер оклада на дату документа).
  3. Рассчитывает результат по формуле Оклад * ФактДней / НормаДней и заполняет строки документа «Премия» готовыми суммами.

Настройка учета премии в среднем заработке

Обратим внимание на вкладку Средний заработок в настройках создаваемого вида начисления:

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