1с формулы в основных начислениях

Бесплатная консультация юриста

+7 (800) 302-87-29

Реклама jurik.ru

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

  • Где и как создавать формулу основного начисления;
  • Основные конструкции языка формул 1С;
  • Примеры использования условий ЕСЛИ, МИН, МАКС;
  • Как добавить собственный показатель и использовать его в формуле;
  • Рекомендации по отладке и тестированию сложных расчетов.

Где находится редактор формул основных начислений
  1. Открываем Настройка → Начисления, удержания и надбавки (в зависимости от редакции может быть Настройка → Виды начислений и удержаний).
  2. В списке выбираем нужное основное начисление (например, Оклад, Премия за выслугу лет, Доплата за вредность) и нажимаем Изменить.
  3. На вкладке Формула расчета находится поле ввода формулы и кнопка Редактировать формулу (открывает конструктор с подсказками).

После внесения изменений не забываем нажать Записать и закрыть и провести Регистрация изменений для активации новой формулы.


Синтаксис языка формул 1С

Формула в 1С представляет собой выражение на языке встроенного программирования. Основные элементы:

  • Константы – числа, строки, даты (например, 1000, "Премия").
  • Переменные‑показатели – ссылки на реквизиты документа, справочники или регистры (например, Оклад, КоличествоЧасов). Их имена начинаются с буквы и могут содержать цифры и знак подчёркивания.
  • Операторы: арифметические (+ — * /), сравнения (< > = <= >=), логические (И ИЛИ НЕ).
  • Функции: ЕСЛИ(Условие; Тогда; Иначе), МИН(Значение1; Значение2; …), МАКС(Значение1; Значение2; …), ОКРУГЛ(Число; Знаки), ДАТА(Год; Месяц; День) и др.
  • Круглые скобки задают порядок вычислений.

Пример простой формулы:

Оклад * 1.15 // надбавка 15 % к окладу

Использование условных конструкций

Функция ЕСЛИ

Синтаксис: ЕСЛИ(ЛогическоеВыражение; ЗначениеЕслиИстина; ЗначениеЕслиЛожь).

Пример: Надбавка за стаж – 5 % если стаж < 5 лет, иначе 10 %.

ЕСЛИ(Стаж < 5; Оклад * 0.05; Оклад * 0.10)

Вложенные ЕСЛИ (многовариантные условия)

Для нескольких диапазонов удобно вкладывать функции:

ЕСЛИ(Сумма < 30000; Сумма * 0.15;
 ЕСЛИ(Сумма < 60000; Сумма * 0.1125;
 ЕСЛИ(Сумма < 120000; Сумма * 0.075;
 Сумма * 0.025)))

Это реализует схему: до 30 000 – 15 %, от 30 000 до 60 000 – 11,25 %, от 60 000 до 120 000 – 7,5 %, свыше 120 000 – 2,5 %.

Функции МИН и МАКС

Полезны для установления нижней или верхней границы.

Пример: Премия не может быть меньше 4500 руб.

МАКС(Сумма * 0.1125; 4500)

Одновременное использование МИН и МАКС позволяет задать «коридор»:

МИН(МАКС(Сумма * 0.075; 6750); 15000)

Здесь результат будет не меньше 6750 и не больше 15000.


Добавление собственных показателей

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

  1. Переходим в Настройка → Пользовательские показатели.
  2. Нажимаем Создать, указываем:
    • Название (например, КоэффициентВредности);
    • Тип (Число, Дата, Строка и т.д.);
    • Способ вычисления (Постоянное значение, По формуле, По регистру и т.д.).
  3. Сохраняем показатель.
  4. В редакции формулы начисления теперь можно обращаться к нему по имени, например КоэффициентВредности.

Пример формулы с пользовательским показателем:

Оклад * КоэффициентВредности * (1 + ПремияЗаВыслугу / 100)

Пошаговая настройка сложного начисления (пример)

Задача: начислить вознаграждение за выполнение кровельных работ по следующей схеме:

  • База – сумма отработанных часов (показатель ЧасыКровли) умноженная на тарифную ставку (ТарифСтавка).
  • Если сумма базы < 30 000 – коэффициент 0,15; от 30 000 до 60 000 – 0,1125 (но не менее 4500); от 60 000 до 120 000 – 0,075 (но не менее 6750); свыше 120 000 – 0,025 (но не менее 9000).

Реализация:

// 1. Базовая сумма
База := ЧасыКровли * ТарифСтавка;

// 2. Определяем коэффициент с учетом минимумов
Коэф := ЕСЛИ(База < 30000;
 0.15;
 ЕСЛИ(База < 60000;
 МАКС(База * 0.1125; 4500) / База; // делим на Базу, чтобы получить коэффициент
 ЕСЛИ(База < 120000;
 МАКС(База * 0.075; 6750) / База;
 МАКС(База * 0.025; 9000) / База)));

Вознаграждение := База * Коэф;

В поле Формула расчета достаточно ввести итоговое выражение (последнюю строку), а промежуточные переменные можно определить через Блок вычислений (кнопка Добавить блок в конструкторе формул).


Отладка и тестирование формул
  • Тестовые данные: создайте отдельный документ Начисление с фиксированными значениями показателей (например, через Ввод начальных остатков или прямой ввод в регистр накоплений) и проверьте результат формулы вручную;
  • Проверка границ: обязательно протестируйте значения, находящиеся exatamente на границах условий (30 000, 60 000, 120 000), чтобы убедиться, что переход между диапазонами корректен.
  • Использование функции ОКРУГЛ: если требуется округление до копеек, заверните итоговое выражение в ОКРУГЛ( … ; 2).

Рекомендации по поддержке и сопровождению
  1. Комментируйте сложные формулы прямо в поле ввода (используйте символ // для однострочных комментариев). Это облегчит будущим администраторам понимание логики.
  2. Выносите часто используемые выражения в отдельные пользовательские показатели – так формула становится короче и легче поддерживается.
  3. При обновлении конфигурации 1С проверяйте, не изменились ли имена стандартных показателей; при необходимости корректируйте ссылки в формулах.
  4. Документируйте все изменения в отдельном журнале (например, в таблице История изменений начислений) – это упрощает аудит и соответствие внутренним регламентам.

Формулы в основных начислениях 1С:ЗУП предоставляют гибкий инструмент для реализации самых разнообразных схем оплаты труда: от простых надбавок до многоуровневых бонусных систем с условиями и минимумами. Понимание синтаксиса языка формул, умение пользоваться функциями ЕСЛИ, МИН, МАКС и возможность создавать собственные показатели позволяют бухгалтеру и специалисту по ЗУП адаптировать систему под любые требования организации без привлечения внешних программистов.

При правильной настройке и тщательном тестировании такие начисления работают стабильно, обеспечивая прозрачность и точность расчетов заработной платы.