При приеме на работу или кадровом переводе сотрудника с почасовой оплатой труда пользователи программы 1С:Зарплата и Управление Персоналом 3.1 (ЗУП) иногда сталкиваются со странным поведением системы. В кадровых документах плановый ФОТ (Фонд оплаты труда) по начислению рассчитывается некорректно: программа упорно использует в качестве нормы времени ровно 160 часов, хотя по графику сотрудника (например, при стандартной пятидневке в 2019 году) среднемесячное количество часов составляет 164,17. В этой статье мы подробно разберем, как устроен механизм расчета планового ФОТ, почему возникает эта ошибка и как ее быстро исправить.
Для начала проанализируем базовый алгоритм, по которому программа вычисляет плановый ФОТ для сотрудников с тарифными ставками. В отличие от фактических начислений за месяц, которые зависят от реально отработанного времени, плановый ФОТ — это усредненный показатель. Он необходим для долгосрочного планирования затрат на оплату труда и отражается в кадровых документах в качестве справочной величины.
Если для сотрудника назначено начисление, в формуле которого присутствуют показатели времени (например, НормаЧасов, ВремяВЧасах или тарифная ставка за час), программа не может знать заранее, сколько часов человек отработает в конкретном месяце. Чтобы получить плановый ФОТ, система принудительно заменяет эти показатели на средние значения. Формула расчета планового ФОТ выглядит следующим образом:
ФОТ = ЧасоваяТарифнаяСтавка * СреднемесячноеКоличествоЧасовПоГрафику
Среднемесячное количество часов рассчитывается автоматически в настройках конкретного графика работы сотрудника по формуле: Годовая норма часов по графику / 12 месяцев. Например, для стандартного графика "Пятидневка 40 часов" в 2019 году годовая норма составляла 1970 часов. Разделив это число на 12, мы получаем 164,16667 часов, что округляется до 164,17. Именно это число программа должна использовать в качестве множителя.
Если в кадровом документе при часовой ставке 100 рублей вы видите ФОТ равным ровно 16 000 рублей вместо 16 417 рублей, значит, программа подставила вместо нормы графика жесткое дефолтное значение — 160 часов. Выясним, почему так происходит.
Когда система 1С:ЗУП 3.1 не может корректно определить среднемесячное количество часов по назначенному графику работы, она использует внутренний резервный алгоритм. В коде программы прописана стандартная норма: 40 часов в неделю * 4 недели = 160 часов. Использование этого значения сигнализирует о техническом сбое или некорректных настройках в информационной базе. Рассмотрим основные причины возникновения этой проблемы:
ПлановыйФОТИтоги). Если вы сначала провели документ приема на работу (когда график еще не был заполнен), а затем исправили и заполнили график, сумма ФОТ в самом кадровом документе автоматически не изменится. Программа продолжит показывать старые 160 часов, пока вы принудительно не пересчитаете ФОТ.Разобравшись в причинах, выполним последовательные шаги по исправлению ситуации в информационной базе.
Перейдем в раздел Настройка, затем откроем справочник Производственные календари. Нам нужно выбрать календарь, который используется в качестве основного (обычно это "Российская Федерация"). Выберем год, соответствующий дате приема сотрудника на работу (в нашем примере — 2019 год), и убедимся, что календарь заполнен (выходные и праздничные дни должны быть выделены цветом). Если календарь не заполнен, нажмем кнопку Заполнить по умолчанию и запишем изменения.
Перейдем в раздел Настройка — Графики работы сотрудников. Нам нужно открыть тот график, который назначен сотруднику в документе приема на работу (например, "Основной пятидневка"). Выполним следующие действия:
Поскольку плановый ФОТ уже рассчитан и сохранен в регистрах сведений с неверным значением 160 часов, нам необходимо запустить процедуру его принудительного обновления. Для этого воспользуемся встроенным сервисным инструментом:
Проанализируем программную логику конфигурации 1С:ЗУП 3.1, которая отвечает за вывод ФОТ на форму кадрового документа. Это поможет разработчикам понять, как устроен этот механизм изнутри.
Само поле "ФОТ" на форме кадрового документа не является реквизитом самого документа. Это расчетное поле, которое формируется динамически на клиенте и сервере при открытии формы или изменении ключевых показателей. Исполняемый код расположен глубоко в общих модулях конфигурации.
Сборка и расчет итогов по плановому ФОТ происходит в общем модуле при помощи функции ИтогиПоФОТ:
// Фрагмент кода расчета ФОТ на форме документа
Форма.ФОТ = ЗарплатаКадрыРасширенныйКлиентСервер.ИтогиПоФОТ(ДанныеНачислений);
Для Каждого СтрокаНачисления Из ДанныеНачислений Цикл
// Программа суммирует размеры всех плановых начислений сотрудника
ФОТ = ФОТ + СтрокаНачисления.Размер;
КонецЦикла;
Показатель Размер в табличной части начислений рассчитывается в процедуре РассчитатьФОТНаСервере. В этой процедуре система обращается к регистру сведений и вычисляет плановый объем начисления. Если формула содержит показатели времени, алгоритм обращается к кэшированным данным графика работы сотрудника. Если в графике поле СреднемесячноеКоличествоЧасов равно нулю или не заполнено, срабатывает исключение, подставляющее константу 160.
Таким образом, мы выяснили причину сбоя и разобрали детальный алгоритм исправления данных. Регулярное заполнение производственных календарей перед началом нового рабочего года и своевременное обновление графиков работы сотрудников полностью исключают появление подобных расхождений в плановом ФОТ.