В процессе ведения кадрового учета и расчета заработной платы в программе 1С:Зарплата и Управление Персоналом 3.1 пользователи часто сталкиваются с ситуацией, когда у сотрудников неожиданно появляются странные повышающие или понижающие коэффициенты, а норма времени рассчитывается некорректно. Например, расчетчик обнаруживает, что у сотрудника с графиком 176 часов и сотрудника с графиком 132 часа в документе начисления подставляется абсолютно одинаковая норма времени — 132 часа.
В этой статье мы подробно разберем, почему возникает эта проблема, где хранятся коэффициенты доли времени, как настройки графиков работы влияют на расчет нормы и как правильно отладить эти показатели (как пользователю, так и разработчику).
Для того чтобы понять, почему программа ошибается, проанализируем базовые механизмы расчета времени в 1С:ЗУП 3.1. В отличие от старых версий решений на платформе 1С (например, ЗУП 2.5), в редакции 3.1 показатель ДоляНеполногоРабочегоВремени (коэффициент ставки) может рассчитываться автоматически на основе настроек графика работы сотрудника.
Здесь возможны два принципиально разных сценария работы системы:
Если кто-то из пользователей изменил настройки графика, установив флаг расчета нормы по другому графику, либо ошибочно отметил или снял флаг «Неполное рабочее время», то у всех сотрудников, привязанных к этому графику, расчет нормы времени и оклада «поплывет». Для своевременного выявления расхождений нормы и фактически отработанных часов можно использовать отчет для сверки планового и фактического времени сотрудников.
Рассмотрим по шагам, как выявить и устранить ошибку в настройках графиков работы сотрудников, которая приводит к искажению нормы времени.
Шаг 1. Проверяем настройки графиков работы сотрудников.
Перейдем в раздел Настройка — Графики работы сотрудников. Нам необходимо открыть карточки тех графиков, по которым у сотрудников зафиксирован неверный расчет (в нашем примере это графики на 132 и 176 часов). Внутри карточки графика нажмем на ссылку «Изменить свойства графика».
Шаг 2. Анализируем параметры неполного рабочего времени.
В открывшемся окне настроек обратим внимание на раздел «Неполное рабочее время»:
Шаг 3. Влияние флага «Неполное рабочее время» на отчетность.
Помните, что простая деактивация настроек неполного времени может повлиять на регламентированную отчетность. Установка флага «Неполное рабочее время» напрямую влияет на заполнение подраздела 1.1 формы ЕФС-1 (бывшая СЗВ-ТД). Если этот флаг снят для сотрудника, который фактически работает на полставки, программа не передаст в СФР признак неполного рабочего дня, что является нарушением законодательства. Поэтому настраивать этот признак нужно аккуратно и в строгом соответствии с кадровыми условиями.
Программа 1С:ЗУП 3.1 активно кэширует результаты расчетов и данные о плановом ФОТ. Простое изменение настроек графика «задним числом» не исправит уже созданные и рассчитанные документы «Начисление зарплаты и взносов». Чтобы изменения вступили в силу, выполним следующие действия:
Если интерфейсные методы не помогают и требуется понять, в какой момент и откуда берется неверный показатель или коэффициент, разработчику придется прибегнуть к механизму отладки в конфигураторе.
В 1С:ЗУП 3.1 расчет зарплаты реализован по совершенно иному принципу, нежели в старых конфигурациях. Программа производит вычисления не в цикле по строкам документа, а пакетными запросами во временных таблицах базы данных. Поэтому стандартный пошаговый проход отладчиком внутри формулы невозможен.
Разберем, как правильно поймать точку расчета:
РасчетЗарплатыВнутренний.РассчитатьЗарплату или в процедурах подготовки таблиц показателей (например, там, где формируется ТаблицаПоказателей).МенеджерРасчетаЗарплаты. Нам необходимо анализировать состояние временных таблиц этого менеджера непосредственно перед выполнением пакета запросов расчета.Для детального анализа таблиц показателей в момент отладки можно воспользоваться следующим шаблоном кода в табло или в режиме вычисления выражений:
// Пример получения таблицы показателей из менеджера расчета для анализа в отладчике
ТаблицаПоказателей = МенеджерРасчета.ТабличныеЧасти.Показатели.Выгрузить();
Для Каждого СтрокаПоказателя Из ТаблицаПоказателей Цикл
Если СтрокаПоказателя.Показатель = Справочники.ПоказателиРасчетаЗарплаты.НайтиПоНаименованию("ДоляНеполногоРабочегоВремени") Тогда
ЗаписатьЛогСобытия("Сотрудник: " + СтрокаПоказателя.Сотрудник + " Значение: " + СтрокаПоказателя.Значение);
КонецЕсли;
КонецЦикла;
Анализируя содержимое таблицы показателей ТаблицаПоказателей и таблицы времени, вы сможете быстро локализовать, на каком именно этапе расчета (при подготовке данных по графикам или при расчете средних величин) система подставляет некорректный коэффициент доли рабочего времени.