Формулы видов начислений в 1С ЗУП 8 3 архитектура типы показателей и лучшие практики

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

+7 (800) 302-87-29

Реклама jurik.ru

В системе 1С:ЗУП (Зарплата и управление персоналом) 8.3 формулы видов начислений являются основным инструментом автоматизации расчета заработной платы. Грамотная настройка формул позволяет исключить ручной труд, минимизировать ошибки и обеспечить соответствие расчетов трудовому законодательству РФ и внутренним локальным нормативным актам организации.

Общая архитектура формул в 1С:ЗУП

Механизм расчетов в 1С:ЗУП построен на объектной модели. Каждый Вид расчета (начисление, удержание, выплата) имеет свой алгоритм, который определяется:

  • Базовым периодом действия — за какой период считать (месяц, квартал, год, произвольный).
  • Порядком расчета — приоритет выполнения (важно для зависимых расчетов, например, НДФЛ считается после начислений).
  • Формулой — непосредственно алгоритм вычисления суммы.
  • Показателями — вспомогательными данными (плановыми, фактическими, накапливаемыми), используемыми в формуле.

Редактор формул

Формулы редактируются в встроенном редакторе формул, который поддерживает:

  • Арифметические операции: +, -, *, /, .
  • Функции: Min, Max, Round, Int, Abs.
  • Условные конструкции: Если(Условие, Тогда, Иначе).
  • Логические операторы: И, Или, Не.
  • Обращение к показателям: Показатели.ИмяПоказателя.
  • Обращение к параметрам вида расчета: Параметры.ИмяПараметра.
  • Обращение к табельным данным: Табель.ИмяКолонки.

Типы показателей и их роль в формулах

Показатели — это «переменные», которые хранят значения, необходимые для расчета. В 1С:ЗУП выделяют три основных типа:

Плановые показатели

Задаются заранее (в карточке сотрудника, штатном расписании или документе «Установка плановых показателей»).

  • Примеры: Оклад, тарифная ставка, процент премии, коэффициент региона, ставка за единицу продукции.
  • Использование в формуле: Показатели.Оклад, Показатели.ПроцентПремии.

Фактические (разовые) показатели

Вводятся документами за конкретный период (например, документ «Начисление премии», «Пiecework» — сдельная зарплата).

  • Примеры: Сумма разовой премии, количество произведенных деталей, часы переработки.
  • Использование в формуле: Обычно доступны через табличную часть документа начисления или через виртуальные таблицы табеля.

Накапливаемые показатели

Автоматически рассчитываются системой в процессе выполнения расчетов и накапливают значения за определенный период (месяц, квартал, год). Критически важны для расчетов, зависящих от накопленного итога (НДФЛ, страховые взносы, больничные, годовые премии).

  • Примеры: Накопленный доход с начала года, накопленная база по взносам, отработанное время с начала года.
  • Настройка: В виде расчета на вкладке «Накапливаемые показатели» указывается, какие базы пополняет данный расчет и от каких зависит.

Синтаксис и лучшие практики написания формул

Базовый синтаксис

// Пример простой формулы оклада
Показатели.Оклад * Показатели.КоэффициентРегиона

// Пример с округлением (до 2 знаков)
Округ(Показатели.Оклад * Показатели.КоэффициентРегиона, 2)

Условные формулы (Если)

Самый частый сценарий — расчет в зависимости от отработанного времени или категории сотрудника.

// Если отработано полное время — полный оклад, иначе пропорционально
Если(Табель.ОтработаноДней = Табель.НормаДней, 
 Показатели.Оклад, 
 Показатели.Оклад * Табель.ОтработаноДней / Табель.НормаДней)

Работа с накапливаемыми показателями

Для доступа к накопленным значениями используются специальные функции или прямые ссылки, в зависимости от контекста (обычно внутри формулы вида расчета «Накопление» или при расчете лимитов).

// Пример: Премия за год, если накопленный доход > 1 млн
Если(Накопления.ДоходСНачалаГода > 1000000, 
 Показатели.ПроцентГодовойПремии * Накопления.ДоходСНачалаГода / 100, 
 0)

Типовые примеры формул для популярных видов начислений

Оклад (Фиксированная зарплата)

Логика: Полный оклад при полной отработке, пропорционально дням/часам — при неполной.

Округ(
 Показатели.Оклад 
 
  • Табель.ОтработаноДней / Табель.НормаДней
  • Показатели.КоэффициентРегиона
, 2)

Сдельная зарплата / Оплата за единицу продукции

Логика: Количество продукции * Цена за единицу. Количество берется из табеля или документа начисления.


// Если количество в табеле (колонка "Выработка")
Округ(Табель.Выработка * Показатели.ЦенаЗаЕдиницу, 2)

// Если используется документ "Начисление сдельной зарплаты"
// Сумма часто считается в самом документе, формула вида расчета может быть просто:
СуммаДокумента

Премия за выполнение плана (Процентная)

Логика: Процент от оклада или от начисленного зарплатного фонда.

// Премия как % от оклада
Округ(Показатели.Оклад * Показатели;ПроцентПремии / 100, 2)

// Премия как % от суммы начисленного оклада (вида расчета "Оклад")
// Требуется, чтобы вид расчета "Премия" шел ПОСЛЕ "Оклада" по порядку расчета
Округ(БазаНачислений.Оклад * Показатели.ПроцентПремии / 100, 2)

Доплата за выслугу лет / Классность / Вредность

Логика: Процент от тарифной ставки (оклада). Часто ставка фиксирована законом или коллективным договором.

Округ(Показатели.Оклад * Показатели.ПроцентВыслугиЛет / 100, 2)

Ночные часы (Сверхурочные, Выходные)

Логика: Используем табельные часы и часовую ставку. Часовая ставка часто вычисляется как Оклад / НормаЧасов.

// Ночные часы: оплата не менее 20% от часовой ставки (ТК РФ ст. 154)
// Часовая ставка:
Перем ЧасоваяСтавка = Показатели.Оклад / Табель.НормаЧасов;

// Сумма доплаты за ночные часы (20% или больше по ЛНА)
Округ(Табель.НочныеЧасы * ЧасоваяСтавка * 0.2, 2)

// Сверхурочные: первые 2 часа в 1.5, следующие в 2.0
Перем Час1 = Min(Табель.СверхурочныеЧасы, 2);
Перем Час2 = Max(Табель.СверхурочныеЧасы ౼ 2, 0);
Округ((Час1 * ЧасоваяСтавка * 1.5) + (Час2 * ЧасоваяСтавка * 2), 2)

Отпускные (Средний заработок)

В 1С:ЗУП отпускные обычно считаются специальным алгоритмом (не простой формулой), так как требуют расчета среднего заработка за 12 месяцев по правилам Постановления № 922. Вид расчета «Отпускные» настраивается как «По среднему заработку». Формула здесь не пишется вручную, настраивается база для расчета среднего (какие виды расчетов включать).

Порядок расчета и зависимости (Критически важно!)

Формулы не работают в вакууме. 1С выполняет виды расчетов строго по Порядку расчета (числу в поле «Порядок»).

  1. Базовые начисления (Оклад, Сдельная, Почасовая) — Порядок 100–200.
  2. Процентные доплаты (Выслуга, Вредность, Регион) — Порядок 200–300. Зависят от Оклада.
  3. Премии, зависящие от начисленного фонда — Порядок 300–400. Должны видеть результат предыдущих.
  4. Расчеты по среднему (Отпускные, Больничные, Простои) — Порядок 500+. Используют накопленные базы за 12 мес.
  5. Удержания (НДФЛ, Алименты, Зачет задолженности) — Порядок 600+. Считаются от «Начислено к выплате».

Ошибка: Если поставить Премию (зависящую от Оклада) ПЕРЕД Окладом — формула вернет 0 или ошибку, так как база еще не сформирована.

Отладка и проверка формул

Консоль расчетов (F12 в документе «Расчет зарплаты»)

Главный инструмент диагностики. Позволяет пошагово увидеть:

  • Какие показатели подтянулись и с какими значениями.
  • Как вычислялась формула на каждом шаге.
  • Почему сработало или не сработало условие Если.

Использование «Сообщить» в формуле (для разработчиков)

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

Проверка показателей

Перед проверкой формулы убедитесь, что:

  • Плановые показатели заведены в карточке сотрудника / штатном расписании на дату расчета.
  • Табель заполнен корректно (нормы часов, отработанное время, коды отклонений).
  • Накопления за предыдущие периоды рассчитаны и проведены (для больничных/отпускных/НДФЛ).

Типичные ошибки и как их избежать

Ошибка Причина Решение
Деление на ноль Норма дней/часов = 0 (не заведен график работы или табель пуст) Использовать Если(Табель.НормаДней = 0, 0, ...) или проверять заполнение графика.
Формула возвращает 0 Не заведен плановый показатель (Оклад, Ставка) на дату расчета Проверить раздел «Плановые показатели» в карточке сотрудника или ШР.
Неверная сумма премии % от оклада Порядок расчета Премии < Порядка Оклада Увеличить порядок расчета Премии.
Округление «теряет» копейки Округление внутри формулы по строкам, а не в итоге Округлять только финальный результат вида расчета. В настройках вида расчета есть флаг «Округлять результат».
Не считает больничный/отпускные Нет накоплений за 12 месяцев (база пуста) Провести перерасчет за прошлые периоды или ввести вручную через «Ввод начальных накоплений».

Продвинутые техники

Параметры вида расчета

Вместо жесткого кода процентов в формуле (например, 0.2 за ночные), создайте Параметр вида расчета (например, ПроцентНочных). Тогда формула станет универсальной:

Округ(Табель.НочныеЧасы * (Показатели.Оклад / Табель.НормаЧасов) * Параметры.ПроцентНочных / 100, 2)

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

Использование виртуальных таблиц (для сложных отчетов/расчетов)

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

Формулы для «Расчета по среднему» (Больничные, Командировочные)

Здесь формула пишется не для суммы, а для базы. Настраивается вид расчета типа «База для расчета среднего». В формуле базы указывается, какие виды доходов включать:

// Пример логики базы (упрощенно)
БазаНачислений.Оклад + БазаНачислений.Премия + БазаНачислений.Доплаты
// Исключаем: Материальную помощь, Путевые, Страховки

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

  1. Используйте плановые показатели для параметров, меняющихся редко (оклады, ставки, %).
  2. Настраивайте порядок расчета строго по зависимостям (база -> процентные -> итоговые).
  3. Тестируйте на консоли расчетов каждый новый или измененный вид расчета.
  4. Документируйте логику в комментариях к виду расчета (описание) — это сэкономит часы коллегам при аудите.
  5. Избегайте хардкода — выносите константы в Параметры вида расчета или Плановые показатели.

Грамотно настроенная система формул превращает расчет зарплаты из рутины в управляемый, прозрачный и контролируемый бизнес-процесс.