Ошибка при обновлении 1С:Бухгалтерия с релиза 79.21 до 80.36: как исправить отсутствие методов

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

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

Основная причина сложностей на данном этапе заключается в существенном обновлении внутренних библиотек: Библиотеки стандартных подсистем (БСП) и Библиотеки интернет-поддержки (БИП). В релизе 3.0.80 разработчики внедрили механизмы поддержки мобильного клиента и изменили состав сервисов сопровождения, что привело к изменению сигнатур методов и появлению новых подписок на события.

Разбор первой ошибки: Отсутствие метода ЗаблокироватьОткрытиеФормНаМобильномКлиентеЭДО

Проанализируем ситуацию: при запуске системы после объединения конфигураций программа выдает сообщение о том, что метод обработчика события ЗаблокироватьОткрытиеФормНаМобильномКлиентеЭДО не найден. Эта ошибка возникает из-за наличия в метаданных подписки на событие, которая ссылается на несуществующую или измененную процедуру в общем модуле.

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

Для решения этой проблемы выполним следующие шаги:

  1. Откроем Конфигуратор и воспользуемся Глобальным поиском (Ctrl+Shift+F) по строке ЗаблокироватьОткрытиеФормНаМобильномКлиентеЭДО.
  2. Убедимся, что в общем модуле ЭлектронноеВзаимодействиеСлужебный (или аналогичном, указанном в свойствах подписки) присутствует соответствующая экспортная процедура.
  3. Если процедура закомментирована или отсутствует, её необходимо восстановить. Рассмотрим пример правильной реализации данного метода:

Процедура ЗаблокироватьОткрытиеФормНаМобильномКлиентеЭДО(Источник, ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка) Экспорт
    
    Если ЭлектронноеВзаимодействиеСлужебныйВызовСервера.ЭтоМобильныйКлиент() Тогда
        Если ТипЗнч(Источник) = Тип("СправочникМенеджер.Пользователи") И ВидФормы = "ФормаВыбора" Тогда
            Возврат;
        КонецЕсли;
        
        СтандартнаяОбработка = Ложь;
        ЭлектронноеВзаимодействиеСлужебныйВызовСервера.ПриОткрытииНедоступнойФормыНаМобильномКлиенте(ВыбраннаяФорма);
    КонецЕсли;
    
КонецПроцедуры

Важно помнить: если вы используете расширение конфигурации, проверьте, не перекрывает ли оно данный общий модуль методом «Вместо». Если в расширении используется старая версия модуля, в которой еще не было этого метода, система выдаст ошибку именно из-за расширения.

Разбор второй ошибки: Метод объекта не обнаружен ПриОпределенииСервисовСопровождения

Вторая проблема обычно проявляется на этапе выполнения легальных обработчиков обновления информационной базы (когда индикатор прогресса доходит до 80–90%). Система сообщает: Метод объекта не обнаружен (ПриОпределенииСервисовСопровождения) в модуле ИнтернетПоддержкаПользователей.

Проанализируем ситуацию: данный метод относится к подсистеме интернет-поддержки. При обновлении конфигурации до релиза 3.0.80 происходит перенастройка механизмов взаимодействия с порталом 1С:ИТС. Процедура ПриОпределенииСервисовСопровождения должна быть определена в переопределяемом модуле подсистемы.

Для устранения этой ошибки выполним поиск по всей конфигурации (включая расширения) по ключевому слову ПриОпределенииСервисовСопровождения. Рассмотрим возможные сценарии:

  1. Метод отсутствует в модуле: Перейдем в общий модуль ИнтернетПоддержкаПользователейПереопределяемый. Убедимся, что в нем есть декларация процедуры. Если её нет, необходимо добавить её из типовой конфигурации того же релиза.
  2. Конфликт версий в расширении: Если расширение содержит модуль ИнтернетПоддержкаПользователейПереопределяемый с типом «Вместо», и этот модуль был захвачен в расширение еще на релизе 3.0.79, то в нем физически нет нового метода, который требует основная конфигурация версии 3.0.80.

Пример программного кода, который должен присутствовать в модуле:


// Описывает состав сервисов сопровождения, используемых в конфигурации.
//
// Параметры:
//  МодулиСервисов - Массив - Массив имен общих модулей, реализующих API сервисов сопровождения.
//
Процедура ПриОпределенииСервисовСопровождения(МодулиСервисов) Экспорт
    
    // Сюда добавляются модули конкретных сервисов, если это необходимо для кастомной логики.
    
КонецПроцедуры

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

Общие рекомендации при обновлении нетиповых баз 1С

Рассмотрим несколько важных правил, которые помогут избежать подобных ошибок в будущем:

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

Во-вторых, уделите внимание расширениям. Расширения с типом «Вместо» для общих модулей — это главный источник ошибок при обновлении. Попробуйте на время обновления отключить все расширения. Если без них обновление проходит успешно, значит, причина кроется в устаревшем коде внутри расширения.

В-третьих, не забывайте про очистку кэша. Иногда после внесения исправлений в код 1С продолжает выдавать ошибку «Метод не обнаружен». Это связано с тем, что серверный кэш хранит старую структуру метаданных. Попробуйте выполнить следующие действия:

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

← На главную