Как исправить ошибку Метод объекта не обнаружен при обновлении 1С Бухгалтерия 3.0

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

При обновлении конфигураций на базе 1С:Предприятие 8.3 специалисты часто сталкиваются с непредвиденными остановками процесса. Рассмотрим подробнее одну из таких ситуаций на примере 1С:Бухгалтерия 3.0. В момент запуска информационной базы после обновления может появиться критическая ошибка вида: Метод объекта не обнаружен (УстановкаКонстантыПриОбновленииИнформационнойБазы) с указанием конкретной константы, например ИспользоватьПеремещениеТоваров.

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

Выясним причину: почему пропадают процедуры в модулях?

Глубинная причина ошибки кроется в серьезной рассинхронизации между вашей текущей конфигурацией базы данных и оригинальной конфигурацией поставщика (от фирмы 1С). Зачастую это последствия того, что в прошлом кто-то обновил базу некорректно. Например, вместо штатного пункта «Обновить конфигурацию» (с использованием файла .cfu) применялась команда «Загрузить конфигурацию из файла» с выбором .cf. Из-за этого нарушаются внутренние идентификаторы объектов.

В результате объекты «слетают» с правильной поддержки, и при всех последующих обновлениях новые процедуры от разработчиков просто не добавляются в общие модули или модули менеджеров. Платформа 1С запускает обработчик обновления информационной базы, обращается к методу УстановкаКонстантыПриОбновленииИнформационнойБазы, не находит его и выдает ошибку. Для диагностики и быстрого поиска подобных расхождений в коде модулей можно использовать инструмент для анализа конфигураций на ошибки вызова экспортных процедур.

Шаг 1. Очистим кэш платформы 1С

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

Для очистки кэша необходимо закрыть 1С и удалить папки с длинными буквенно-цифровыми названиями в профиле пользователя ОС Windows по путям Local и Roaming в директории 1C/1cv8. Иногда это простое действие решает проблему без дополнительных манипуляций.

Шаг 2. Временное решение: добавление метода вручную

Посмотрим на пример кода, который платформа ожидает увидеть в модуле менеджера константы. Если ошибка возникает на конкретной константе, можно попробовать добавить недостающий метод вручную (однако это часто приводит к появлению аналогичной ошибки на следующем объекте).

Код процедуры для добавления в модуль менеджера константы ИспользоватьПеремещениеТоваров:


Процедура УстановкаКонстантыПриОбновленииИнформационнойБазы() Экспорт 
    ИспользоватьПеремещениеТоваров = Константы.ИспользоватьНесколькоСкладов.Получить() И Константы.ИспользоватьДокументыПоступления.Получить(); 
    Константы.ИспользоватьПеремещениеТоваров.Установить(ИспользоватьПеремещениеТоваров); 
КонецПроцедуры

Но, как показывает практика, добавление одной процедуры приводит к ошибке Метод объекта не обнаружен (УстановкаЗначенияПриОбновленииИнформационнойБазы) уже для другой константы. Поэтому перейдем к правильному, системному решению проблемы.

Шаг 3. Выполним алгоритм полного восстановления поддержки

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

  1. Создайте резервную копию базы данных. Это обязательный шаг перед любыми манипуляциями в конфигураторе; при наличии нескольких информационных баз эту операцию можно передать программе для автоматического архивирования и обновления 1С.
  2. Зайдите в Конфигуратор и откройте конфигурацию.
  3. Перейдите в меню Конфигурация -> Поддержка -> Настройка поддержки.
  4. Нажмите кнопку Снять с поддержки (если конфигурация была на поддержке, но с включенной возможностью изменения).
  5. Выполните команду Конфигурация -> Сравнить, объединить с конфигурацией из файла.
  6. Выберите чистый типовой файл конфигурации (.cf) точно такого же релиза, на котором ваша база находится в данный момент.
  7. На предложение системы «Поставить на поддержку?» обязательно ответьте Да.
  8. В открывшемся окне сравнения и объединения снимите абсолютно все галочки. Это критически важно, чтобы не затереть возможные доработки вашей базы и сохранить текущий код.
  9. Нажмите кнопку Выполнить.

Данная процедура восстанавливает правильную «невидимую» связь объектов вашей базы данных с конфигурацией поставщика 1С. После этого последующие обновления будут корректно добавлять все новые процедуры и функции в модули.

Шаг 4. Проконтролируем отложенные обработчики обновления

Важный момент, который часто упускают: в современных конфигурациях, таких как 1С:Бухгалтерия 3.0, недостаточно просто дождаться зеленой галочки после обновления. Рассмотрим подробнее работу обработчиков.

Многие процедуры модификации данных (включая заполнение новых констант) выполняются в фоновом режиме. Необходимо зайти в пользовательском режиме в раздел Администрирование -> Обслуживание -> Результаты обновления программы и убедиться, что абсолютно все отложенные процедуры выполнились со статусом «Успешно».

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

Шаг 5. Установим официальные патчи и исправления

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

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

← На главную