Что делать, если патчи 1С (исправления) мешают автоматическому обновлению конфигурации?

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

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

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

Почему возникают конфликты при обновлении?

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

  1. Система проверяет наличие установленных патчей.
  2. При запуске обновления платформа сравнивает версию конфигурации и требования патча.
  3. Если новый релиз уже содержит в себе исправленный код, патч должен удалиться автоматически.

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

Стратегия ручного удаления патчей перед обновлением

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

Зайдем в информационную базу в режиме «1С:Предприятие» под пользователем с правами администратора. Перейдем в раздел Администрирование — Обслуживание — Обновление программы. Выберем пункт Установка исправлений (патчей). В открывшемся списке мы увидим все активные расширения с префиксом EF_. Проанализируем список и удалим их все перед запуском процедуры обновления.

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

Особенности работы с базовыми версиями

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

Если мы столкнулись с тем, что программа требует удалить патчи, но не дает зайти в соответствующее меню, воспользуемся командной строкой. Это мощный инструмент системного администратора. Для удаления конкретного расширения в пакетном режиме мы можем использовать следующий синтаксис:


"C:\Program Files\1cv8\common\1cestart.exe" DESIGNER /F "D:\Bases\MyBase" /N "Admin" /P "Pass" /DeleteCfg -Extension "ИмяПатча"

Где ИмяПатча — это внутреннее имя расширения (например, EF_00_00123456). Если патчей много, и мы хотим полностью очистить конфигурацию от всех расширений перед накатыванием нового .cf файла, применим команду:


"C:\Program Files\1cv8\common\1cestart.exe" DESIGNER /F "D:\Bases\MyBase" /DeleteCfg -AllExtensions

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

Проблема кэша и «фантомных» расширений

Иногда даже после удаления патча ошибка сохраняется. Выясним причину: часто это связано с локальным кэшем платформы или серверным кэшем (в случае клиент-серверного варианта). Скомпилированные модули старых патчей могут оставаться в папке snccntx на сервере 1С.

Посмотрим, как правильно произвести очистку:

  1. Остановим службу 1C:Enterprise 8.3 Server Agent.
  2. Перейдем в каталог C:\Program Files\1cv8\srvinfo\reg_1541 (путь может отличаться в зависимости от настроек).
  3. Найдем папку с идентификатором нашей базы и внутри нее удалим папку snccntx.
  4. Запустим службу сервера снова.

Проанализируем также состояние справочника расширений через «Тестирование и исправление». Установим галочку Проверка логической целостности и Очистка ссылок на несуществующие объекты. Это поможет системе окончательно «забыть» о патчах, которые были удалены некорректно.

Работа в распределенных информационных базах (РИБ)

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

Рассмотрим алгоритм действий для РИБ:

  1. В главном узле удаляем все патчи серии EF_.
  2. Выполняем обновление конфигурации главного узла.
  3. Проводим синхронизацию, чтобы изменения ушли в подчиненные узлы.
  4. Если в подчиненном узле обновление не принимается из-за патчей, используем описанный выше метод с командной строкой /DeleteCfg -AllExtensions непосредственно в периферийной базе.

Резюме и рекомендации

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

← На главную