Как исправить ошибку «Метод объекта не обнаружен (ВосстановитьДвиженияСПревышенияПоРасчетыНалоговыхАгентовСБюджетомПоНДФЛ)» при обновлении УПП до версии 1.3.156.1

Программист 1С v8.3 (Обычные формы) Налоговый учет Промышленность, строительство и АПК
← На главную

При переходе на новые релизы 1С:Управление производственным предприятием (УПП), особенно в периоды серьезных изменений в налоговом законодательстве, администраторы и программисты часто сталкиваются с критическими ошибками при запуске системы в режиме «Предприятие». Одной из самых резонансных проблем при обновлении на релиз 1.3.156.1 стала ошибка выполнения обработчиков обновления, связанная с отсутствием метода ВосстановитьДвиженияСПревышенияПоРасчетыНалоговыхАгентовСБюджетомПоНДФЛ.

Рассмотрим подробно, почему возникает эта ситуация, как проанализировать состояние базы и какими способами можно завершить обновление успешно.

Причины возникновения ошибки

Проанализируем техническую подоплеку. Конфигурация УПП является комплексной и включает в себя подсистему, аналогичную Зарплата и Управление Персоналом (ЗУП) 2.5. В начале 2021 года в ЗУП были внесены изменения для поддержки прогрессивной ставки НДФЛ 15% (на доходы свыше 5 млн рублей). Для корректного пересчета прошлых периодов разработчики 1С создали специальные процедуры обновления.

Ошибка «Метод объекта не обнаружен» возникает в следующих случаях:

  1. Нарушение последовательности запуска: Вы последовательно применили файлы обновлений (cfu) в конфигураторе (например, 1.3.154 -> 1.3.155 -> 1.3.156), но не запускали базу в режиме «Предприятие» после каждого шага. В итоге система пытается выполнить обработчик от старого релиза, который в коде нового релиза уже был удален или переименован.
  2. Рассинхронизация подсистем: В регистре сведений ВерсииПодсистем зафиксирована версия ЗУП, требующая запуска именно этого обработчика, в то время как общий модуль ПроцедурыОбновленияИнформационнойБазы уже соответствует более новой версии, где этот код отсутствует.
  3. Некорректное сравнение/объединение: Если конфигурация находится на поддержке с возможностью изменения, при обновлении модуль мог быть заменен не полностью или в него не попали необходимые экспортные процедуры.

Способ 1. Использование программной «заглушки»

Если вам необходимо срочно запустить базу и вы уверены, что учет НДФЛ по ставке 15% за предыдущие периоды вам не требуется (или будет проверен позже вручную), самым быстрым решением будет создание пустой процедуры. Выясним, как это сделать правильно.

Разберем шаги по внедрению «заглушки»:

  1. Откройте конфигуратор и перейдите в общий модуль ПроцедурыОбновленияИнформационнойБазы.
  2. Пролистайте в самый конец модуля.
  3. Добавьте следующий код:

Процедура ВосстановитьДвиженияСПревышенияПоРасчетыНалоговыхАгентовСБюджетомПоНДФЛ() Экспорт
    // Пустая процедура для обхода ошибки обновления в релизе 1.3.156.1
КонецПроцедуры

Важный момент: Обратите внимание на ключевое слово Экспорт. Без него система не увидит метод при вызове через Выполнить(), и ошибка повторится. После сохранения конфигурации и запуска «Предприятия» обновление успешно «проскочит» этот шаг.

Способ 2. Корректировка регистра «Версии подсистем»

Если вы не хотите вносить изменения в программный код, можно воздействовать на логику подсистемы обновления через данные. Система 1С понимает, какие обработчики запускать, ориентируясь на записи в регистре сведений ВерсииПодсистем.

Рассмотрим алгоритм действий:

  1. Запустите базу в режиме «Предприятие» (если это возможно через параметры запуска или если ошибка не блокирует вход полностью). Если вход заблокирован, используйте внешнюю обработку для изменения регистра.
  2. Найдите в регистре ВерсииПодсистем строку, отвечающую за зарплатную часть (обычно это ЗарплатаИПерсонал).
  3. Проанализируйте текущий номер версии. Проблема возникает, если версия ниже 2.5.159.4.
  4. Установите значение версии, соответствующее вашему текущему релизу УПП (для 1.3.156 это соответствует ЗУП 2.5.160.1).

После этого система посчитает, что все промежуточные обновления уже выполнены, и не будет пытаться вызвать отсутствующий метод ВосстановитьДвиженияСПревышенияПоРасчетыНалоговыхАгентовСБюджетомПоНДФЛ.

Способ 3. Сравнение с типовой конфигурацией

Бывают ситуации, когда ошибка вызвана тем, что при обновлении «допиленной» конфигурации программист случайно удалил часть типового кода. Посмотрим на пример того, как это проверить.

Разберем процесс восстановления модуля:

  1. Разверните рядом чистую типовую базу (демо-базу) релиза 1.3.155.1 или 1.3.156.1.
  2. Найдите общий модуль ПроцедурыОбновленияИнформационнойБазы в обеих конфигурациях.
  3. Используйте текстовое сравнение или инструмент «Сравнить, объединить с конфигурацией из файла».
  4. Убедитесь, что все процедуры, начинающиеся на ВосстановитьДвижения... или ВыделитьНалогСПревышения..., присутствуют в вашем модуле.

В релизе 1.3.156.1 данный метод действительно мог быть исключен, так как его сменил более актуальный обработчик ВыделитьНалогСПревышенияВРасчетыНалоговыхАгентовСБюджетомПоНДФЛ(). Поэтому стратегически важно убедиться, что ваша база «считает» себя обновленной до нужной версии подсистемы.

Влияние платформы и режима совместимости

Проанализируем технические требования к окружению. Начиная с версии 1.3.155, конфигурация УПП начала использовать методы, доступные только в платформе версии 8.3.14.1976 и выше. Например, в коде активно меняются типы УправляемаяФорма на ФормаКлиентскогоПриложения.

Если вы используете старую платформу (например, 8.3.12 или 8.3.10), механизмы фонового обновления могут отрабатывать некорректно. Рекомендуется:

Что делать после исправления ошибки?

После того как вы применили «заглушку» или поправили версию в регистре и успешно зашли в базу, обязательно выполните следующие действия:

  1. Проверьте журнал регистрации на наличие других ошибок, которые могли возникнуть в фоновом режиме.
  2. Если в вашей организации есть сотрудники с годовым доходом более 5 миллионов рублей, пересчитайте НДФЛ в документах за текущий период, чтобы убедиться, что ставка 15% применяется корректно.
  3. Проверьте движения регистра накопления Расчеты налоговых агентов с бюджетом по НДФЛ. Если данные выглядят некорректно, возможно, пропущенный метод все-таки нужно было выполнить, и в этом случае его стоит временно скопировать из кода релиза 1.3.155.1.

Таким образом, мы выяснили, что ошибка носит организационно-технический характер и чаще всего лечится правильной установкой версии подсистемы в регистре или временным добавлением пустой процедуры в модуль. Помните, что каждое обновление УПП в текущих реалиях требует обязательного запуска в режиме «Предприятие» перед переходом к следующему релизу конфигуратора.

← На главную