Как перенести Обновлятор-1с на другой компьютер? | оглавление | Как отключить расширения на время выполнения обработчиков обновления (v2)? |
Обновлятор-1с. Как исправить ошибку "EF_XXXXXXXX" процедура или функция с указанным именем уже определена
2020-07-17T14:52:41+00:00Оглавление
Описание ошибки
Пример сообщения при ошибке: "{EF_10215746 ОбщийМодуль.УчетВзаиморасчетов.Модуль(2, 9)}: Процедура или функция с указанным именем уже определена (Подготовить таблицыЗачетаАвансовКассовыйМетод)".
Причина возникновения ошибки
В современных типовых конфигурациях появилось такое понятие как патчи (исправления), которые на самом деле представляют из себя уже знакомые нам расширения.
И получается, что разработчик, выпустив какое-то обновление к конфигурации, далее выпускает эти самые патчи, чтобы исправить обнаруженные в обновлении ошибки.
Патчи можно безболезненно устанавливать и удалять (это ведь на самом деле расширения) - причём это можно делать при работающих пользователях.
Установленный патч начинает работать у пользователя только после перезапуска открытой у него базы.
Но каждый патч предназначен лишь для определенной версии конфигурации, а значит после очередного обновления все устаревшие патчи должны быть удалены.
И вот если этого не сделать - возникает описанная выше ошибка.
Как устранить возникшую ошибку
Прежде всего обновите ваш обновлятор на последнюю доступную на сайте версию.
Начиная с версии обновлятора от 6 декабря 2019 года я предусмотрел выполнение необходимых процедур при выполнении обработчиков обновления. Эти процедуры удаляют из конфигурации устаревшие патчи (речь идёт о вызове функции 'ИсправленияИзменены' из общего модуля 'ОбновлениеКонфигурации').
Но что делать, если ошибка уже возникла?
Первый способ устранения ошибки
Откройте базу в режиме пользователя.
Зайдите в раздел "Администрирование" пункт "Обслуживание":
Далее раскройте подраздел "Обновление программы" и выберите пункт "Установленные исправления (патчи)":
В открывшемся окне удалите все установленные исправления:
После этого перезапустите 1с и убедитесь, что ошибка исчезла.
Используйте версию обновлятора после 6 декабря 2019 года, чтобы эта ошибка не возникла вновь (так как он автоматически удаляет устаревшие патчи при выполнении обработчиков обновления).
Второй способ устранения ошибки
Первый способ может быть трудоёмким, если у вас несколько десятков баз. Сейчас я покажу как можно выполнить удаление устаревших патчей при помощи обновлятора сразу во всех базах.
Прежде всего обновляем обновлятор на последнюю версию (не ранее 6 декабря 2019 года).
Далее запускаем обновлятор и переходим на закладку "Скрипты":