При работе с системой 1С:Зарплата и Управление Персоналом (ЗУП 3) мы часто сталкиваемся с необходимостью тонкой настройки расчета заработной платы и различных надбавок. Одной из распространенных проблем является правильное определение системы оплаты труда сотрудника (окладная или тарифная) непосредственно в формуле начисления, а также учет различных норм времени — среднемесячной или нормы по графику сотрудника. Рассмотрим подробнее, как решить эту задачу.
Исходная ситуация заключается в том, что при пересчете оклада в ЗУП 3 по умолчанию используется показатель среднемесячного количества часов. Однако существуют надбавки, для которых норму необходимо учитывать от месячной нормы по графику, а не от среднемесячной. Стандартный показатель СтоимостьЧаса всегда оперирует среднемесячным показателем, что создает сложности.
Мы выясним, что предопределенные показатели в 1С:ЗУП 3, такие как Оклад, СтоимостьЧаса, СтоимостьДняЧаса, имеют свою внутреннюю логику и границы применимости. Эта логика не всегда подробно документирована, и ее поведение может быть неочевидным, особенно при изменении плановых начислений сотрудника. Например, при переходе сотрудника с оклада на тариф, показатель Оклад может продолжать свою "жизнь", сохраняя значение, что приводит к некорректным расчетам в формулах, которые его анализируют.
Давайте проанализируем возможные подходы к решению этой проблемы.
Один из самых надежных и типовых способов — это разделение логики расчета через создание отдельных видов начислений для каждой системы оплаты труда. Мы можем назначить сотруднику оплату по окладу по дням, где будет использоваться одна формула, а для оплаты по тарифу или почасовой ставке — другой вид начисления с соответствующей формулой.
Этот подход позволяет избежать сложной логики в одной формуле и делает систему более прозрачной и управляемой.
Если нам необходимо более гибкое решение, или если разделение начислений по каким-то причинам нежелательно, мы можем использовать собственные показатели. Этот подход предполагает создание дополнительных показателей, которые будут явно отражать нужную логику или нормативные значения.
Мы заводим свои показатели в разделе "Настройка" – "Показатели расчета зарплаты". Например, мы можем создать показатель СтоимостьДняЧасаПоНормеГрафика или ПризнакОкладнойСистемы. Эти показатели могут быть:
Пример нового показателя, который может быть нам полезен, — это "СтоимостьДняЧасаПоНормеГрафика", который будет рассчитывать стоимость дня или часа, основываясь на месячной норме рабочего времени по графику сотрудника, а не на среднемесячной.
После создания показателей, мы переходим в раздел "Настройка" – "Начисления". Здесь мы создаем или изменяем нужные виды расчетов. В качестве способа расчета мы выбираем "Результат рассчитывается по формуле" и вводим нашу произвольную формулу, включая созданные ранее показатели, а также предопределенные, если это необходимо.
Предположим, мы хотим определить систему оплаты труда прямо в формуле. Один из вариантов, предложенных автором, выглядел так:
?(Оклад > 0,
ВремяВДняхЧасах / НормаДнейЧасов * Оклад,
?(ТарифнаяСтавкаЧасовая > 0,
ВремяВДняхЧасах * ТарифнаяСтавкаЧасовая,
0)
)
Однако, как мы выяснили, такая формула может работать некорректно, если показатель Оклад продолжает "жить" даже после перехода на тарифную ставку. Это происходит из-за особенностей заполнения и актуальности значений предопределенных показателей в системе.
Вместо прямого сравнения с Оклад > 0, мы можем использовать собственный показатель, например, ПризнакОкладнойСистемы, который мы сами устанавливаем в кадровых документах.
?(ПризнакОкладнойСистемы = ИСТИНА,
// Логика для окладной системы, использующая месячную норму
Оклад / МесячнаяНормаЧасовПоГрафику * ВремяВДняхЧасах,
// Логика для тарифной системы
ТарифнаяСтавкаЧасовая * ВремяВДняхЧасах
)
Здесь МесячнаяНормаЧасовПоГрафику также будет нашим собственным показателем, который мы настроим для получения значения нормы часов по графику сотрудника за текущий месяц.
Ключевым моментом в нашей задаче является необходимость учета разных норм времени — среднемесячной и месячной нормы по графику сотрудника. Мы выясним, как ЗУП 3 управляет этими нормами.
СтоимостьЧаса и СтоимостьДняЧаса:
Расчет предопределенных показателей СтоимостьЧаса и СтоимостьДняЧаса в ЗУП 3.1 сильно зависит от настройки "Способ учета нормы времени при пересчете тарифной ставки сотрудника". Эту настройку мы найдем в разделе "Настройка" – "Расчет зарплаты".
Если выбран этот способ, то в формулу попадает норма, которая рассчитывается как сумма часов при 40-часовой неделе за год, деленная на 12 месяцев. Именно это приводит к использованию среднемесячного показателя, что не всегда подходит для надбавок.
Если нам требуется использовать точную месячную норму по индивидуальному графику сотрудника (например, для надбавок, зависящих от фактически отработанного времени по графику), мы обязательно должны выбрать этот способ в настройках расчета зарплаты. Тогда в расчетах будет использоваться норма часов за месяц по индивидуальному графику сотрудника.
Важный момент: Изменение этой настройки может повлиять на многие стандартные расчеты, поэтому перед ее изменением необходимо провести тщательное тестирование.
Показатель СтоимостьДняЧаса также зависит от "Совокупной тарифной ставки", состав которой настраивается в разделе "Настройка" – "Расчет зарплаты". Совокупная тарифная ставка может быть часовой, дневной или месячной (оклад) и включать как постоянные, так и переменные части. При изменении ее состава может потребоваться выполнить обработку "Пересчет планового ФОТ" (раздел "Зарплата" – "Сервис"). Мы должны убедиться, что ее состав корректен для наших целей.
Когда сотрудник переходит с оклада на тариф или наоборот, нам критически важно корректно отразить это изменение в системе, чтобы избежать ошибок в расчетах.
Переход сотрудника с одной системы оплаты на другую обычно оформляется с помощью следующих документов:
Изменение плановых начислений: Этот документ позволяет точечно отменить одни начисления и назначить другие, а также изменить значения показателей.Кадровый перевод: При изменении должности или подразделения, что часто сопряжено с изменением системы оплаты труда, мы можем использовать этот документ. Он также позволяет корректировать плановые начисления и показатели.Мы должны помнить, что при таком переходе важно не просто назначить новое начисление, но и убедиться, что старое начисление было корректно отменено, а его показатели обнулены или перестали действовать в расчетном периоде.
В процессе настройки и отладки расчетов очень полезно анализировать, как работают предопределенные показатели. В программе ЗУП 3 предусмотрена возможность просмотра показателей расчета в зарплатных документах ("Больничный лист", "Командировка", "Начисление зарплаты и взносов" и др.) нажатием кнопки "Показать подробности расчета". Это помогает нам понять, какие показатели используются в конкретном расчете и проверить их значения на каждом этапе. Этот инструмент незаменим для диагностики.
Для реализации нашей задачи по гибкому определению системы оплаты труда и корректному учету норм времени в 1С:ЗУП 3 мы рекомендуем следующий комплексный подход:
СтоимостьДняЧасаПоНормеГрафика является отличным примером такого решения.Изменение плановых начислений или Кадровый перевод, убеждаясь, что старые начисления и показатели корректно отменяются, а новые назначаются с нужными значениями.Динамическое изменение логики расчета внутри одной формулы начисления требует тщательного контроля над актуальными значениями всех используемых показателей. Создание собственных показателей и разделение видов начислений по системам оплаты труда значительно упростят этот процесс и повысят надежность расчетов.