В процессе работы с программой 1С:Зарплата и управление персоналом 3.1 (особенно в релизах линейки 3.1.14) пользователи часто сталкиваются с системным предупреждением: «Начисленный оклад превышает размер планового». Эта проблема может возникнуть внезапно после обновления программы, даже если фактически оклады сотрудников не менялись, а расчеты верны. Разберем подробно, почему так происходит, и рассмотрим все способы решения — от простых пользовательских настроек до глубокой правки программного кода.
Данная ошибка является следствием работы механизма «Мониторинг учета». Это встроенная система самодиагностики, которая призвана помогать бухгалтеру находить ошибки в начислениях. Однако в ряде релизов (например, 3.1.14.55) алгоритм проверки содержал программную ошибку (баг), из-за чего система выдавала ложноположительные результаты.
Проанализируем ситуацию: программа сравнивает данные из регистра накопления НачисленияУдержанияПоСотрудникам с плановыми показателями из регистра сведений ЗначенияПоказателейНачислений. Основная причина «ложного срабатывания» кроется в том, что при наличии нескольких начислений в одном документе или при перерасчетах система некорректно сопоставляет строки начислений с их показателями.
Дополнительные факторы, которые могут провоцировать эту ошибку:
Если вы уверены в правильности своих расчетов и вам просто нужно убрать раздражающий индикатор ошибки, самым быстрым способом будет отключение конкретного правила проверки. Рассмотрим, как это сделать:
Однако простого отключения правила иногда недостаточно: индикатор ошибки может продолжать висеть на главной панели. Чтобы окончательно очистить «хвосты», проделаем следующее:
Результаты проверки учета.Иногда проблема кроется в «рассинхроне» регистров планового ФОТ и фактических начислений. Попробуем обновить данные без правки конфигурации. Рассмотрим шаги:
Плановый ФОТ.Изменение плановых начислений или Кадровый перевод). Это заставит систему переписать значения в регистре Значения показателей начислений.Если вы хотите устранить саму причину ошибки, не дожидаясь обновления от 1С, необходимо внести правки в программный код. Выясним причину технического сбоя. Ошибка локализована в общем модуле ПлановыеНачисленияСотрудниковПроверки, в функции РезультатПроверкиПревышенияПлановогоОкладаСотрудников.
Проблема заключается в том, что в запросе таблицы соединяются по полю НомерСтроки. В сложных документах начисления номера строк в регистре расчета и регистре показателей могут не совпадать. Необходимо использовать уникальный ИдентификаторСтроки.
Рассмотрим пример исправленного запроса, который можно внедрить через расширение:
// В общем модуле ПлановыеНачисленияСотрудниковПроверки
// Находим функцию РезультатПроверкиПревышенияПлановогоОкладаСотрудников
Запрос.Текст = "ВЫБРАТЬ
| КадровыеДанныеСотрудников.Сотрудник КАК Сотрудник,
| КадровыеДанныеСотрудников.ФизическоеЛицо КАК ФизическоеЛицо
|ИЗ
| ВТКадровыеДанныеСотрудников КАК КадровыеДанныеСотрудников
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрРасчета.Начисления КАК Начисления
| ПО КадровыеДанныеСотрудников.Период = Начисления.ПериодРегистрации
| И КадровыеДанныеСотрудников.Сотрудник = Начисления.Сотрудник
| И КадровыеДанныеСотрудников.ОсновноеНачисление = Начисления.ВидРасчета
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияПоказателейНачислений КАК ЗначенияПоказателейНачислений
| ПО (Начисления.Регистратор = ЗначенияПоказателейНачислений.РегистраторИзмерение)
| И (Начисления.ИдентификаторСтроки = ЗначенияПоказателейНачислений.ИдентификаторСтроки)
| И КадровыеДанныеСотрудников.ПоказательТарифнойСтавки = ЗначенияПоказателейНачислений.Показатель
| И КадровыеДанныеСотрудников.ТарифнаяСтавка < ЗначенияПоказателейНачислений.Значение
|УПОРЯДОЧИТЬ ПО
| ФизическоеЛицо";
Важные замечания по коду:
Начисления.НомерСтроки на Начисления.ИдентификаторСтроки.КадровыеДанныеСотрудников.ПоказательТарифнойСтавки = ЗначенияПоказателейНачислений.Показатель. Это гарантирует, что мы сравниваем именно оклад с окладом, а не с другими показателями.После того как мы внесли правки в код (через расширение) или изменили настройки, необходимо принудительно обновить результаты проверки. Проанализируем, как это сделать быстро:
Если задание не запустить вручную, программа обновит данные только по расписанию (обычно ночью), и бухгалтер будет продолжать видеть ложную ошибку в течение всего рабочего дня.
Подведем итог. Ошибка «Начисленный оклад превышает размер планового» в большинстве случаев является информационной и не влияет на итоговые суммы в расчетных листках или отчетности. Для её устранения рекомендуется обновить конфигурацию до актуального релиза (где 1С уже применила исправление с ИдентификаторСтроки). Если обновление невозможно, используйте метод отключения правила в настройках или примените расширение с исправленным кодом запроса, приведенным выше.