Часто в практике автоматизации расчетов зарплаты возникает задача начисления премии, размер которой зависит от уровня выполнения определенных показателей, например, дебиторской задолженности (ДЗ). Разберем по шагам, как правильно настроить такую логику в 1С:Зарплата и Управление Персоналом или аналогичных конфигурациях.
Для создания гибких систем мотивации в 1С используется встроенная функция ?(). Она работает по принципу тернарного оператора: ?(Условие, ЗначениеЕслиИстина, ЗначениеЕслиЛожь). При расчете сложных шкал, где премия зависит от того, в какой диапазон попадает процент, важно соблюдать правильный порядок проверки условий.
Распространенная ошибка — проверка условий от меньшего к большему. Если вы сначала проверите ДЗ > 10, то любое значение, например 25%, будет соответствовать этому условию, и формула не пойдет дальше. Поэтому всегда выстраивайте проверку от большего порога к меньшему.
Рассмотрим вариант реализации задачи, когда премия зависит от диапазона процентов дебиторской задолженности:
Для такой логики лучше всего подходит следующая структура:
?(ДЗ > 30, 1500,
?(ДЗ > 20, 3000,
?(ДЗ > 10, 5000, 0)
)
)
Здесь система сначала проверяет самый высокий порог. Если условие не соблюдено, она переходит к следующему вложенному условию. Такая конструкция позволяет корректно отсекать диапазоны.
Чтобы система работала корректно, необходимо правильно настроить Показатели расчета зарплаты. Мы рекомендуем разделять понятия «показатель для организации» и «показатель для сотрудника».
Для сотрудника. Это позволит вводить значения ежемесячно через документ Данные для расчета зарплаты.Только если введено значение показателя. Это предотвратит попытки системы начислить премию, если данные за текущий месяц еще не были внесены.СуммаПремии1, СуммаПремии2 и использовать их в расчете.Иногда требуется, чтобы показатель принимал отрицательное значение для удержания или уменьшения премии. При работе с отрицательными суммами необходимо учитывать следующее:
Данные для расчета зарплаты, если в карточке показателя не установлен запрет на ввод таких значений.Начисление с отрицательным результатом может некорректно отразиться на расчете НДФЛ и страховых взносов. Если ваша задача — внедрить систему штрафов, рассмотрите вариант создания отдельного вида начисления, которое работает на вычитание из общего результата, вместо использования отрицательных значений в базовой премии.?() могут корректно обрабатывать такие цифры, иначе результат может быть неожиданным для пользователя.Используя данный подход, вы сможете построить прозрачную систему мотивации, которая легко масштабируется под новые требования вашего бизнеса.