При обновлении конфигурации «Бухгалтерия предприятия» редакции 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, в котором проблемный вызов обработчика был исключен из плана обновления. Это самый простой и надежный метод решения проблемы, не требующий снятия конфигурации с замка поддержки.
Разберем по шагам, как применить этот способ:
.cfu или файл полной конфигурации .cf релиза 2.0.66.9 (или более нового).Обработка.ОбновлениеИнформационнойБазы успешно завершит работу без ошибок.Если у вас есть резервная копия базы до начала обновления (на релизе 2.0.65.45), восстановим ее и выполним обновление по строгой схеме с обязательным промежуточным запуском пользовательского режима.
Последовательность действий:
Если база уже повреждена, файла релиза 2.0.66.9 под рукой нет, а резервная копия отсутствует, можно временно включить возможность редактирования конфигурации для устранения ошибки.
Рассмотрим порядок действий:
СправкаПоНДФЛВНалоговыйОрганС2015, откроем его Модуль менеджера.
Процедура ОбновитьРеквизиты() Экспорт
// Заглушка для прохождения обновления информационной базы
КонецПроцедуры
Если информационная база работает на платформе 8.3 с режимом совместимости, поддерживающим расширения, можно обойтись без снятия основной конфигурации с поддержки:
СправкаПоНДФЛВНалоговыйОрганС2015 и его модуль менеджера.ОбновитьРеквизиты() Экспорт.Чтобы избежать подобных аварийных ситуаций в будущем, соблюдайте важные правила администрирования 1С:
1. Всегда создавайте резервную копию информационной базы перед началом любых манипуляций (выгрузка .dt или физическое копирование файла 1Cv8.1CD для файловых баз, бэкап средствами СУБД для клиент-серверного варианта).
2. Не объединяйте длинные цепочки .cfu файлов без промежуточного запуска. Платформа не сохраняет код удаленных процедур между версиями при каскадном накатывании файлов обновлений. При переходе через ключевые подверсии всегда производите запуск базы в режиме предприятия на узловых релизах.