При проведении документа Начисление зарплаты и взносов в программе 1С:ЗУП (редакция 3.1) пользователи могут столкнуться с критической ошибкой фонового задания, которая полностью прерывает процесс проведения. Чаще всего эта проблема всплывает после перехода с более старой редакции (например, ЗУП 2.5). Разберем по шагам, почему возникает эта проблема, проанализируем технические причины и найдем эффективное решение.
Обычно ситуация выглядит следующим образом: некоторые документы зарплаты проводятся без проблем, а другие зависают и выдают ошибку при вызове метода контекста. Тестирование и исправление базы, а также чистка кэша в этом случае не помогают. Посмотрим на пример технического лога, который выдает система:
Ошибка выполнения фонового задания ДлительныеОперации.ВыполнитьСКонтекстомКлиента...
Ошибка при вызове метода контекста (Записать)
{Документ.НачислениеЗарплаты.МодульМенеджера(432)}:ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
по причине:
Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
Поле объекта не обнаружено (Регистратор)
{ОбщийМодуль.РасчетЗарплатыРасширенный.Модуль(3574)}: Поле объекта не обнаружено (Регистратор)
Проанализируем ситуацию: платформа 1С сообщает, что в модуле РасчетЗарплатыРасширенный при формировании движений программа не смогла обнаружить документ-регистратор. Это означает, что возник серьезный конфликт в алгоритмах формирования движений по регистрам.
Рассмотрим подробнее логику работы программы. Ошибка возникает из-за противоречия в настройках видов расчета (начислений). Чаще всего это ручные доплаты, созданные пользователями, или начисления, перенесенные из версии 2.5 — например, «Совмещение должности», «Персональная доплата» или специфические премии.
Проблема кроется на вкладке Учет времени в настройках самого начисления. Если для доплаты, которая по своей логике является надбавкой, установлен признак За работу полную смену в пределах нормы времени, программа начинает считать это начисление основным отработанным временем. При проведении документа модуль пытается сформировать движения по регистрам отработанного времени. Из-за несовпадения типа начисления с его внутренними свойствами система не может корректно передать документ-регистратор в процедуру записи.
Разберем по шагам, как исправить настройки и избавиться от ошибки.
За работу полную смену в пределах нормы времени (которое должно стоять только у основных начислений, вроде оплаты по окладу или тарифу) установите переключатель в положение Дополнительная оплата за уже оплаченное время.Начисление зарплаты и взносов.После этого алгоритм перестанет пытаться записать неверные движения по регистрам учета времени, и ошибка проведения исчезнет.
Главная сложность этой ошибки заключается в том, что типовая платформа при сбое фонового задания выдает общий технический стек вызовов. В логе не указывается конкретный сотрудник или строка документа. Если в документе сотни строк, визуально найти ошибку невозможно. Для быстрой проверки действующих надбавок и доплат можно использовать отчет для вывода показателей плановых начислений сотрудников на дату.
Рассмотрим практические способы поиска источника проблемы:
Проанализируем дополнительные ситуации. Иногда ошибка возникает из-за попыток обойти заложенную методологию программы. Например, когда доплату за совмещение профессий назначают обычным документом Изменение плановых начислений.
Для корректного учета и исключения подобных ошибок всегда используйте специализированные кадровые документы. Если сотруднику нужно назначить доплату за совмещение, используйте документ Совмещение должностей. Неправильный ввод документов-оснований неминуемо тянет за собой некорректный расчет времени, потерю связи с регистратором и сбои при итоговом расчете зарплаты.