Как определить систему оплаты труда и корректно учесть нормы времени в формулах начислений 1С:ЗУП 3?

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

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

Исходная ситуация заключается в том, что при пересчете оклада в ЗУП 3 по умолчанию используется показатель среднемесячного количества часов. Однако существуют надбавки, для которых норму необходимо учитывать от месячной нормы по графику, а не от среднемесячной. Стандартный показатель СтоимостьЧаса всегда оперирует среднемесячным показателем, что создает сложности.

Почему возникают сложности с предопределенными показателями?

Мы выясним, что предопределенные показатели в 1С:ЗУП 3, такие как Оклад, СтоимостьЧаса, СтоимостьДняЧаса, имеют свою внутреннюю логику и границы применимости. Эта логика не всегда подробно документирована, и ее поведение может быть неочевидным, особенно при изменении плановых начислений сотрудника. Например, при переходе сотрудника с оклада на тариф, показатель Оклад может продолжать свою "жизнь", сохраняя значение, что приводит к некорректным расчетам в формулах, которые его анализируют.

Давайте проанализируем возможные подходы к решению этой проблемы.

Решение 1: Разделение систем оплаты труда по видам начисления

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

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

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

Решение 2: Использование собственных показателей и произвольных формул

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

  1. Создание собственных показателей:

    Мы заводим свои показатели в разделе "Настройка" – "Показатели расчета зарплаты". Например, мы можем создать показатель СтоимостьДняЧасаПоНормеГрафика или ПризнакОкладнойСистемы. Эти показатели могут быть:

    • Постоянными: Значение задается один раз и действует до отмены (например, через кадровые документы).
    • Разовыми или периодически изменяющимися: Значение задается на определенный период или для конкретного месяца.

    Пример нового показателя, который может быть нам полезен, — это "СтоимостьДняЧасаПоНормеГрафика", который будет рассчитывать стоимость дня или часа, основываясь на месячной норме рабочего времени по графику сотрудника, а не на среднемесячной.

  2. Настройка начислений с произвольной формулой:

    После создания показателей, мы переходим в раздел "Настройка" – "Начисления". Здесь мы создаем или изменяем нужные виды расчетов. В качестве способа расчета мы выбираем "Результат рассчитывается по формуле" и вводим нашу произвольную формулу, включая созданные ранее показатели, а также предопределенные, если это необходимо.

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

    
    ?(Оклад > 0,
        ВремяВДняхЧасах / НормаДнейЧасов * Оклад,
        ?(ТарифнаяСтавкаЧасовая > 0,
            ВремяВДняхЧасах * ТарифнаяСтавкаЧасовая,
            0)
    )
    

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

    Вместо прямого сравнения с Оклад > 0, мы можем использовать собственный показатель, например, ПризнакОкладнойСистемы, который мы сами устанавливаем в кадровых документах.

    
    ?(ПризнакОкладнойСистемы = ИСТИНА,
        // Логика для окладной системы, использующая месячную норму
        Оклад / МесячнаяНормаЧасовПоГрафику * ВремяВДняхЧасах,
        // Логика для тарифной системы
        ТарифнаяСтавкаЧасовая * ВремяВДняхЧасах
    )
    

    Здесь МесячнаяНормаЧасовПоГрафику также будет нашим собственным показателем, который мы настроим для получения значения нормы часов по графику сотрудника за текущий месяц.

  3. Назначение значений показателей:
    • Для постоянных показателей их значения задаются при помощи кадровых документов: "Прием на работу", "Кадровое перемещение", "Изменение плановых начислений". Мы можем добавить наши собственные показатели в табличные части этих документов.
    • Для разовых или периодически изменяющихся показателей используется документ "Данные для расчета зарплаты" (раздел "Зарплата").

Различия в расчете норм времени: среднемесячная vs. по графику

Ключевым моментом в нашей задаче является необходимость учета разных норм времени — среднемесячной и месячной нормы по графику сотрудника. Мы выясним, как ЗУП 3 управляет этими нормами.

  1. Настройка расчета СтоимостьЧаса и СтоимостьДняЧаса:

    Расчет предопределенных показателей СтоимостьЧаса и СтоимостьДняЧаса в ЗУП 3.1 сильно зависит от настройки "Способ учета нормы времени при пересчете тарифной ставки сотрудника". Эту настройку мы найдем в разделе "Настройка" – "Расчет зарплаты".

  2. "Среднемесячное количество часов (дней) в месяце":

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

  3. "По норме времени графика сотрудника":

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

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

  4. Совокупная тарифная ставка:

    Показатель СтоимостьДняЧаса также зависит от "Совокупной тарифной ставки", состав которой настраивается в разделе "Настройка" – "Расчет зарплаты". Совокупная тарифная ставка может быть часовой, дневной или месячной (оклад) и включать как постоянные, так и переменные части. При изменении ее состава может потребоваться выполнить обработку "Пересчет планового ФОТ" (раздел "Зарплата" – "Сервис"). Мы должны убедиться, что ее состав корректен для наших целей.

Управление изменением систем оплаты труда

Когда сотрудник переходит с оклада на тариф или наоборот, нам критически важно корректно отразить это изменение в системе, чтобы избежать ошибок в расчетах.

  1. Документы для изменения оплаты:

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

    • Изменение плановых начислений: Этот документ позволяет точечно отменить одни начисления и назначить другие, а также изменить значения показателей.
    • Кадровый перевод: При изменении должности или подразделения, что часто сопряжено с изменением системы оплаты труда, мы можем использовать этот документ. Он также позволяет корректировать плановые начисления и показатели.

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

Анализ предопределенных показателей

В процессе настройки и отладки расчетов очень полезно анализировать, как работают предопределенные показатели. В программе ЗУП 3 предусмотрена возможность просмотра показателей расчета в зарплатных документах ("Больничный лист", "Командировка", "Начисление зарплаты и взносов" и др.) нажатием кнопки "Показать подробности расчета". Это помогает нам понять, какие показатели используются в конкретном расчете и проверить их значения на каждом этапе. Этот инструмент незаменим для диагностики.

Выводы и рекомендации

Для реализации нашей задачи по гибкому определению системы оплаты труда и корректному учету норм времени в 1С:ЗУП 3 мы рекомендуем следующий комплексный подход:

  1. Приоритетное использование разных видов начислений: Если это возможно по бизнес-логике, стараемся разделять системы оплаты труда на разные виды начислений. Каждое начисление будет иметь свою, относительно простую и однозначную формулу.
  2. Создание собственных показателей: В случаях, когда стандартные показатели не дают нужной гибкости (например, для точного учета месячной нормы по графику), создаем собственные показатели. Показатель СтоимостьДняЧасаПоНормеГрафика является отличным примером такого решения.
  3. Тщательная настройка норм времени: Мы должны внимательно проверить и при необходимости изменить "Способ учета нормы времени при пересчете тарифной ставки сотрудника" в настройках расчета зарплаты, чтобы обеспечить использование месячной нормы по графику, а не среднемесячной.
  4. Контроль за изменением плановых начислений: При переводе сотрудников с одной системы оплаты на другую, мы используем документы Изменение плановых начислений или Кадровый перевод, убеждаясь, что старые начисления и показатели корректно отменяются, а новые назначаются с нужными значениями.
  5. Систематический анализ расчетов: Мы регулярно используем функцию "Показать подробности расчета" в зарплатных документах для контроля значений показателей и проверки корректности формул.

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

← На главную