При обновлении типовых конфигураций 1С многие специалисты сталкиваются с вопросом: стоит ли тратить время на ручное удаление установленных исправлений (патчей с префиксом EF_), если в составе Библиотеки стандартных подсистем (БСП) заявлен механизм их автоматического удаления? В этой статье мы подробно разберем, почему ручное вмешательство часто оказывается необходимым, проанализируем рекомендации вендора для разных конфигураций и выработаем оптимальный алгоритм действий.
Рассмотрим природу патчей. Патчи — это временные расширения конфигурации, которые призваны оперативно исправить ошибки в текущем релизе. Когда выходит новое полноценное обновление, исправленный код уже включен в основную конфигурацию, и патч становится не только ненужным, но и потенциально опасным. Разберем основные риски:
Предприятия, где должен сработать автоматический механизм удаления БСП.В конфигурации «1С:Бухгалтерия предприятия 3.0» вендор часто указывает в официальном порядке обновления необходимость предварительной очистки списка исправлений. Разберем пошагово, как это сделать правильно:
Ctrl + A) и нажмите кнопку Удалить.Конфигуратор.Этот метод считается стандартным для «легких» конфигураций, где риск несовместимости на уровне ядра метаданных ниже.
Для более сложных систем, таких как 1С:ERP, 1С:Комплексная автоматизация и 1С:Зарплата и управление персоналом, требования более жесткие. В последних релизах этих конфигураций 1С прямо рекомендует удалять расширения с префиксом EF_ непосредственно в Конфигураторе перед первым запуском обновленной базы. Проанализируем эту ситуацию подробнее.
Рассмотрим последовательность действий:
cfu или cf файла).EF_.Важный технический нюанс: метод БСП ОбновлениеКонфигурации.ИсправленияИзменены(), который отвечает за автоматику, в документации содержит пометку: «Выполненные действия применятся после перезапуска сеанса». Это подтверждает, что если патч мешает запуску самого сеанса обновления, автоматика не поможет.
Если вы обслуживаете большое количество информационных баз, удалять патчи вручную в каждой может быть трудозатратно. Проанализируем возможность программного подхода. Для удаления расширений можно использовать пакетный режим запуска Конфигуратора или скрипты. Однако чаще всего проблема решается правильным порядком действий в регламенте обновления.
В коде БСП за удаление неактуальных исправлений отвечает логика, завязанная на регистр сведений УстановленныеИсправления. Если вы ловите «косяки» при обновлении, стоит проверить, не остались ли «хвосты» в системных таблицах. Специалисты рекомендуют после удаления патчей и проведения обновления также очищать серверный кэш, чтобы избежать ошибок инициализации расширений.
Посмотрим на пример логики, которую можно использовать в своих обработках для проверки наличия патчей перед обновлением:
Для Каждого Расширение Из РасширенияКонфигурации.Получить() Цикл
Если СтрНачинаетсяС(Расширение.Имя, "EF_") Тогда
// Здесь может быть логика оповещения администратора
// или программного удаления в разрешенных случаях
Сообщить("В базе найдено активное исправление: " + Расширение.Имя);
КонецЕсли;
КонецЦикла;
Основываясь на опыте практикующих специалистов и официальных инструкциях, выделим «золотой стандарт» обновления:
EF_ (через Обслуживание в Предприятии или Расширения в Конфигураторе — зависит от сложности конфигурации).Несмотря на наличие автоматических механизмов в 1С, ручное удаление патчей остается важным элементом культуры обслуживания систем 1С. Для Бухгалтерии это регламентированное требование, а для ERP-систем — залог того, что тяжелое обновление не «упадет» на этапе первого запуска. Помните, что лучше потратить 2 минуты на удаление расширений перед обновлением, чем несколько часов на восстановление базы из бэкапа и поиск причин несовместимости метаданных.