Как организовать накопление результатов расчета показателей в 1С:ЗУП 3.1

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

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

Рассмотрим на примере, почему стандартное накопление не всегда подходит. Допустим, формула расчета: Показатель1 / Показатель2 * Показатель3. Если в течение месяца введено три записи:

  1. 10 000 / 50 * 8 = 1 600
  2. 5 000 / 25 * 4 = 800
  3. 8 000 / 80 * 5 = 500

Сумма результатов: 2 900. Но ЗУП при обычном накоплении показателей посчитает так: (10000+5000+8000) / (50+25+80) * (8+4+5), что даст совершенно иной результат. Разберем по шагам, как настроить систему для получения корректной суммы в 2 900 руб.

Метод 1. Использование промежуточного технического начисления

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

Шаг 1. Создание показателей. Сначала создадим три показателя (например, Тех_База, Тех_Норма, Тех_Коэффициент). В настройках каждого показателя укажем: «Используется только в месяце, в котором введено значение (разовое использование)».

Шаг 2. Настройка технического начисления. Создадим новый вид начисления (назовем его «Технический расчет базы»). Настроим его следующим образом:

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

Шаг 3. Итоговое начисление. Создадим основное начисление (например, «Итоговая сдельная оплата»). В формуле укажем просто РасчетнаяБаза. На вкладке «Расчет базы» выберем наше «Техническое расчетное начисление».

Теперь при вводе документов Разовое начисление в течение месяца программа будет рассчитывать суммы 1 600, 800 и 500 отдельно. В конце месяца документ Начисление зарплаты и взносов соберет их в общую базу и выдаст искомые 2 900.

Метод 2. Использование шаблонов ввода данных (сдельные работы)

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

В ЗУП 3.1 можно настроить Шаблон ввода исходных данных (раздел Настройка — Шаблоны ввода исходных данных). В шаблоне мы можем разрешить ввод нескольких документов в месяц. Однако здесь сохраняется та же проблема: если мы настроим формулу внутри начисления через показатели, система их суммирует перед расчетом.

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

Метод 3. Автоматизация через внешнюю обработку заполнения

Если логика распределения показателей слишком сложная (как указано в Сообщении 19 форума, когда данные зависят от внутренних групп сотрудников, не зафиксированных в штатном расписании), ручной ввод становится невозможным. Проанализируем решение через доработку.

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

  1. Собирает данные из внешних источников (или даже из комментариев к документам, как предложил автор темы).
  2. Производит математический расчет: П1 / П2 * П3 для каждой строки данных.
  3. Записывает итоговое значение в один накопленный показатель (например, ИтоговыйОбъемРабот).

В этом случае формула в начислении будет предельно простой: ИтоговыйОбъемРабот. Весь «накопительный» расчет берет на себя программный код обработки, а ЗУП получает уже готовое число.

Важные нюансы настройки

При использовании метода с расчетной базой (Метод 1) обратите внимание на следующие моменты:

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

← На главную