Как перенести Обновлятор-1с на другой компьютер?

  оглавление  Как отключить расширения на время выполнения обработчиков обновления (v2)?

Обновлятор-1с. Как исправить ошибку "EF_XXXXXXXX" процедура или функция с указанным именем уже определена

Описание ошибки

Пример сообщения при ошибке: "{EF_10215746 ОбщийМодуль.УчетВзаиморасчетов.Модуль(2, 9)}: Процедура или функция с указанным именем уже определена (Подготовить таблицыЗачетаАвансовКассовыйМетод)".

Причина возникновения ошибки

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

И получается, что разработчик, выпустив какое-то обновление к конфигурации, далее выпускает эти самые патчи, чтобы исправить обнаруженные в обновлении ошибки.

Патчи можно безболезненно устанавливать и удалять (это ведь на самом деле расширения) - причём это можно делать при работающих пользователях.

Установленный патч начинает работать у пользователя только после перезапуска открытой у него базы.

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

И вот если этого не сделать - возникает описанная выше ошибка.

Как устранить возникшую ошибку

Прежде всего обновите ваш обновлятор на последнюю доступную на сайте версию.

Начиная с версии обновлятора от 6 декабря 2019 года я предусмотрел выполнение необходимых процедур при выполнении обработчиков обновления. Эти процедуры удаляют из конфигурации устаревшие патчи (речь идёт о вызове функции 'ИсправленияИзменены' из общего модуля 'ОбновлениеКонфигурации').

Но что делать, если ошибка уже возникла?

Первый способ устранения ошибки

Откройте базу в режиме пользователя.

 Если база не запускается в режиме пользователя - удалите проблемное расширение через конфигуратор

Зайдите в раздел "Администрирование" пункт "Обслуживание":

Далее раскройте подраздел "Обновление программы" и выберите пункт "Установленные исправления (патчи)":

В открывшемся окне удалите все установленные исправления:

После этого перезапустите 1с и убедитесь, что ошибка исчезла.

Используйте версию обновлятора после 6 декабря 2019 года, чтобы эта ошибка не возникла вновь (так как он автоматически удаляет устаревшие патчи при выполнении обработчиков обновления).

Второй способ устранения ошибки

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

 Внимание, если у вас базовая 1с, то этот способ не сработает.  В этом случае вам нужно удалить проблемное расширение по имени (оно есть в описании ошибки, например EF_10215746) при помощи другого скрипта - вот он.

Прежде всего обновляем обновлятор на последнюю версию (не ранее 6 декабря 2019 года).

Далее запускаем обновлятор и переходим на закладку "Скрипты":

Если закладка 'Скрипты' скрыта

Далее:

  • в пункте "Базы для запуска" выберите базы, в которых нужно исправить ошибку
  • отметьте значение "пакетный скрипт"
  • в редактор скрипта вставьте следующую строчку: @remove_obsolete_patches()
  • снимите все галки под редактором скрипта
  • если есть возможность выгнать пользователей на время операции установите галки "блокировать" и "разблокировать"
  • нажмите кнопку "запустить" и дождитесь окончания операции

Указанный скрипт выполнит процедуру удаления устаревших патчей во всех базах.

Для баз, в которых возникли ошибки при выполнении скрипта воспользуйтесь первым способом.

По поводу установки новых патчей

Прямо из обновлятора это можно делать вот так (ссылка).

С уважением, (преподаватель школы 1С программистов и разработчик обновлятора).



Владимир Милькин
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Нажмите одну из кнопок, чтобы поделиться:



Как перенести Обновлятор-1с на другой компьютер?

  оглавление  Как отключить расширения на время выполнения обработчиков обновления (v2)?