Нужно ли вручную удалять типовые патчи расширений при обновлении 1С?

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

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

Зачем вообще удалять патчи перед обновлением?

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

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

Способ 1: Удаление через режим Предприятия (для 1С:Бухгалтерии)

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

  1. Перед началом процесса обновления запустите базу в режиме 1С:Предприятие.
  2. Перейдите в раздел Администрирование, далее выберите пункт Обслуживание.
  3. Найдите подраздел Обновление программы и перейдите по гиперссылке Установленные исправления (патчи).
  4. В открывшемся списке выделите все строки (используя сочетание клавиш Ctrl + A) и нажмите кнопку Удалить.
  5. Только после завершения удаления и закрытия программы можно приступать к обновлению конфигурации через Конфигуратор.

Этот метод считается стандартным для «легких» конфигураций, где риск несовместимости на уровне ядра метаданных ниже.

Способ 2: Удаление через Конфигуратор (для ERP, КА и ЗУП)

Для более сложных систем, таких как 1С:ERP, 1С:Комплексная автоматизация и 1С:Зарплата и управление персоналом, требования более жесткие. В последних релизах этих конфигураций 1С прямо рекомендует удалять расширения с префиксом EF_ непосредственно в Конфигураторе перед первым запуском обновленной базы. Проанализируем эту ситуацию подробнее.

Рассмотрим последовательность действий:

  1. Зайдите в Конфигуратор и выполните процедуру обновления конфигурации (накатывание cfu или cf файла).
  2. После завершения обновления, но до первого запуска в режиме Предприятия, откройте меню Конфигурация — Расширения конфигурации.
  3. В списке расширений найдите все объекты, имена которых начинаются с EF_.
  4. Удалите их вручную.
  5. Только после этого запускайте 1С:Предприятие для выполнения обработчиков обновления.

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

Технические аспекты работы с кодом и автоматизацией

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

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

Посмотрим на пример логики, которую можно использовать в своих обработках для проверки наличия патчей перед обновлением:


Для Каждого Расширение Из РасширенияКонфигурации.Получить() Цикл
    Если СтрНачинаетсяС(Расширение.Имя, "EF_") Тогда
        // Здесь может быть логика оповещения администратора 
        // или программного удаления в разрешенных случаях
        Сообщить("В базе найдено активное исправление: " + Расширение.Имя);
    КонецЕсли;
КонецЦикла;

Рекомендованный алгоритм «безопасного обновления»

Основываясь на опыте практикующих специалистов и официальных инструкциях, выделим «золотой стандарт» обновления:

  1. Резервное копирование: Обязательный этап перед любым действием.
  2. Очистка патчей: Удаляем все исправления EF_ (через Обслуживание в Предприятии или Расширения в Конфигураторе — зависит от сложности конфигурации).
  3. Обновление метаданных: Проводим обновление в Конфигураторе (F7).
  4. Закрытие Конфигуратора: После завершения реструктуризации закройте Конфигуратор полностью. Это помогает избежать некоторых ошибок блокировок при первом старте.
  5. Первый запуск: Запускаем 1С:Предприятие от имени администратора и дожидаемся завершения всех фоновых процедур обновления.
  6. Установка новых патчей: После того как база успешно обновилась до нового релиза, зайдите в раздел Интернет-поддержка и сервисы — Обновление программы и загрузите свежие патчи, актуальные именно для вашей новой версии.

Заключение

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

← На главную