Как исправить ошибку «Метод объекта не обнаружен (ОбновитьРеквизиты)» при обновлении 1С:Бухгалтерии 2.0?

Программист 1С v8.3 (Обычные формы) 1C:Бухгалтерия Бухгалтерский учет IT и автоматизация бизнеса
← На главную

При обновлении конфигурации «Бухгалтерия предприятия» редакции 2.0 с релиза 2.0.65.45 сразу до 2.0.66.8 (путем последовательного наложения обновлений без промежуточного запуска программы) при старте информационной базы в пользовательском режиме может возникнуть критическая ошибка:

{Обработка.ОбновлениеИнформационнойБазы.МодульОбъекта(1777)}: Метод объекта не обнаружен (ОбновитьРеквизиты) Документы.СправкаПоНДФЛВНалоговыйОрганС2015.ОбновитьРеквизиты

В результате база данных блокируется, не давая пользователям войти в систему и завершить регламентные процедуры обновления. Разберем подробнее причины возникновения данной неполадки и рассмотрим все способы ее устранения, включая ситуации, когда резервная копия базы отсутствует.

Выясним причину возникновения ошибки

Проанализируем механизм работы процедур обновления данных в платформе 1С:Предприятие. При переходе между версиями конфигурации (особенно при смене второй цифры номера релиза, например с 2.0.65 на 2.0.66) разработчики оптимизируют структуру метаданных: устаревшие реквизиты помечаются префиксом Удалить..., а затем полностью удаляются из конфигурации в последующих сборках.

В релизе 2.0.66.8 из модуля менеджера документа СправкаПоНДФЛВНалоговыйОрганС2015 была удалена экспортная процедура ОбновитьРеквизиты, которая переносила данные из устаревших полей в новые:


// Обработчик обновления. Переносит значения реквизитов Удалить... в новые реквизиты
Процедура ОбновитьРеквизиты() Экспорт
    // Перенос значений реквизита УдалитьНомерКорректировки в НомерКорректировки
    // и реквизита ТЧ УдалитьИННвСтранеГражданства в ИННвСтранеГражданства
КонецПроцедуры

Если администратор объединяет несколько файлов обновлений (.cfu) подряд через конфигуратор и не запускает базу в режиме «1С:Предприятие» на промежуточных релизах, то структура модулей и метаданных сразу становится финальной (2.0.66.8). Однако встроенный механизм обновления данных последовательно запускает зарегистрированные обработчики всех пропущенных версий (включая 2.0.65.48). Обработчик пытается вызвать метод ОбновитьРеквизиты, которого в модуле уже физически нет, что и приводит к аварийному завершению.

Способ 1. Обновление до исправленного релиза 2.0.66.9 и выше (рекомендуемый)

Фирма «1С» оперативно выпустила релиз 2.0.66.9, в котором проблемный вызов обработчика был исключен из плана обновления. Это самый простой и надежный метод решения проблемы, не требующий снятия конфигурации с замка поддержки.

Разберем по шагам, как применить этот способ:

  1. Откроем Конфигуратор нашей заблокированной информационной базы.
  2. Перейдем в главное меню: Конфигурация — Поддержка — Обновить конфигурацию.
  3. Выберем файл обновления .cfu или файл полной конфигурации .cf релиза 2.0.66.9 (или более нового).
  4. Применим изменения в структуре метаданных по клавише F7 (или кнопке Обновить конфигурацию базы данных).
  5. Запустим базу в режиме «1С:Предприятие». Процедура Обработка.ОбновлениеИнформационнойБазы успешно завершит работу без ошибок.

Способ 2. Восстановление копии и правильная пошаговая цепочка обновлений

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

Последовательность действий:

  1. Восстановим базу из резервной копии.
  2. В Конфигураторе обновляем конфигурацию с версии 2.0.65.45 до промежуточной 2.0.65.47 (или 2.0.66.2). Сохраняем изменения в базе данных.
  3. Обязательно запускаем программу в режиме «1С:Предприятие» под учетной записью с правами администратора. Дожидаемся полного завершения процедуры обновления данных информационной базы.
  4. Закрываем пользовательский сеанс, возвращаемся в Конфигуратор и накатываем следующий релиз (например, 2.0.66.8 или новее).
  5. Снова запускаем базу в режиме «1С:Предприятие» для окончательного завершения обработки данных.

Способ 3. Ручное исправление модуля (если копии нет, а релиз 2.0.66.9 недоступен)

Если база уже повреждена, файла релиза 2.0.66.9 под рукой нет, а резервная копия отсутствует, можно временно включить возможность редактирования конфигурации для устранения ошибки.

Рассмотрим порядок действий:

  1. В Конфигураторе сохраним текущую конфигурацию в файл через меню Конфигурация — Сохранить конфигурацию в файл... (создаем резервную копию конфигурации).
  2. Включим возможность редактирования: перейдем в Конфигурация — Поддержка — Настройка поддержки, нажмем кнопку Включить возможность изменения.
  3. Найдем в дереве метаданных документ СправкаПоНДФЛВНалоговыйОрганС2015, откроем его Модуль менеджера.
  4. Добавим в модуль пустую экспортную процедуру-заглушку, чтобы платформа смогла успешно обратиться к методу:
    
    Процедура ОбновитьРеквизиты() Экспорт
        // Заглушка для прохождения обновления информационной базы
    КонецПроцедуры
    
  5. Нажмем F7 для сохранения изменений в базе данных.
  6. Запустим «1С:Предприятие» в обычном режиме. Процедура обновления прочитает пустой метод и продолжит выполнение остальных обработчиков до успешного финала.

Способ 4. Использование временного расширения конфигурации (для платформы 8.3)

Если информационная база работает на платформе 8.3 с режимом совместимости, поддерживающим расширения, можно обойтись без снятия основной конфигурации с поддержки:

  1. Откроем меню Конфигурация — Расширения конфигурации и добавим новое пустое расширение.
  2. Добавим в расширение документ СправкаПоНДФЛВНалоговыйОрганС2015 и его модуль менеджера.
  3. Объявим в модуле менеджера расширения пустую процедуру ОбновитьРеквизиты() Экспорт.
  4. Запустим сеанс «1С:Предприятия» и дождемся завершения регламентных процедур обновления.
  5. После успешного обновления удалим временное расширение из списка.

Рекомендации по безопасному обновлению

Чтобы избежать подобных аварийных ситуаций в будущем, соблюдайте важные правила администрирования 1С:

1. Всегда создавайте резервную копию информационной базы перед началом любых манипуляций (выгрузка .dt или физическое копирование файла 1Cv8.1CD для файловых баз, бэкап средствами СУБД для клиент-серверного варианта).

2. Не объединяйте длинные цепочки .cfu файлов без промежуточного запуска. Платформа не сохраняет код удаленных процедур между версиями при каскадном накатывании файлов обновлений. При переходе через ключевые подверсии всегда производите запуск базы в режиме предприятия на узловых релизах.

← На главную