Как правильно удалять старые версии платформы 1С и восстанавливать COM-соединения?

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

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

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

Почему удаление старой версии ломает текущую платформу

Проанализируем архитектуру установщика Windows Installer (MSI), который используется платформой 1С. Все релизы ветки 8.3 используют одинаковые системные идентификаторы (GUID) и общие ветки реестра Windows для следующих компонентов:

  1. Интерфейсы COM-соединения: V83.COMConnector и V83.Application.
  2. Ассоциации расширений файлов: .epf, .erf, .cf, .cfe, .dt.
  3. Системные протоколы запуска: e1c:// и e1cib://.

Когда мы запускаем деинсталлятор любой старой версии платформы, он корректно стирает свои файлы, но одновременно с этим подчищает за собой системные записи в реестре. Служба MSI не проверяет, установлены ли в системе более свежие релизы 1С, и просто удаляет зарегистрированные ветки COM-классов. В результате актуальная платформа остается на диске, но внешние приложения (например, веб-сервисы, скрипты интеграции, клиент-банк или другие базы 1С) теряют возможность подключиться к ней через COM.

Способ 1. Ручная регистрация COM-компонентов после удаления

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

Шаг 1. Регистрация внешнего COM-соединения (comcntr.dll)

Запустим командную строку cmd.exe от имени Администратора. В зависимости от разрядности используемой платформы выполним соответствующую команду:

Для 64-разрядной версии платформы:


C:\Windows\System32\regsvr32.exe "C:\Program Files\1cv8\8.3.XX.YYYY\bin\comcntr.dll"

Для 32-разрядной версии платформы на 64-битной операционной системе:


C:\Windows\SysWOW64\regsvr32.exe "C:\Program Files (x86)\1cv8\8.3.XX.YYYY\bin\comcntr.dll"

Параметр 8.3.XX.YYYY необходимо заменить на точный номер установленного актуального релиза. После выполнения команды появится системное сообщение об успешной регистрации модуля.

Шаг 2. Регистрация OLE/COM-приложения (V83.Application)

Объект V83.Application отвечает за запуск полноценного сеанса 1С в режиме автоматизации. Чтобы перерегистрировать его в системе, перейдем в каталог bin текущей версии и выполним команду с ключом /RegServer:

"C:\Program Files\1cv8\8.3.XX.YYYY\bin\1cv8.exe" /RegServer

Для тонкого клиента используется аналогичная команда с исполняемым файлом 1cv8c.exe:

"C:\Program Files\1cv8\8.3.XX.YYYY\bin\1cv8c.exe" /RegServer

Для восстановления интеграции общего диалога запуска баз зарегистрируем стартер 1С:

"C:\Program Files\1cv8\common\1cestart.exe" /RegServer

Способ 2. Восстановление платформы через режим Repair (без перезагрузки)

Если после массовой очистки старых версий нарушились не только COM-классы, но и ассоциации типов файлов, самым надежным решением будет вызов штатной процедуры восстановления текущей версии через Windows Installer.

Преимущество этого метода в том, что установщик не перезаписывает бинарные файлы, если они не повреждены. Это позволяет избежать конфликтов с блокировкой файлов запущенными сеансами пользователей и не требует немедленной перезагрузки сервера.

Выполним команду восстановления в тихом режиме через утилиту msiexec:

msiexec /fpecms {GUID_Текущей_Версии} /qn

Узнать GUID установленного продукта можно в системном реестре в ветке HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall.

Очистка «фантомных» записей из списка программ

Иногда системные администраторы просто удаляют папки с номерами старых релизов из каталога C:\Program Files\1cv8\. В этом случае файлы исчезают, но в списке «Установка и удаление программ» Windows остаются висеть пустые записи, штатный запуск деинсталлятора для которых выдает ошибку о неназванных файлах.

Чтобы удалить такие записи из реестра вручную, выполним следующие шаги:

  1. Откроем редактор реестра regedit от имени Администратора.
  2. Перейдем в ветку:
    • Для 64-битных программ: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
    • Для 32-битных программ: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall
  3. Через поиск Ctrl+F найдем подразделы, где значение параметра DisplayName содержит название удаленной версии 1С (например, 1С:Предприятие 8.3 (8.3.22.1709)).
  4. Удалим весь подраздел с соответствующим GUID.

Важные моменты при удалении платформ на сервере

Если мы обслуживаем серверную инфраструктуру, перед удалением старых каталогов обязательно проверим две вещи:

  1. Служба кластера серверов ragent: служба жестко привязана к пути конкретного релиза. Если удалить версию, из которой запускается служба, кластер 1С перестанет работать. Изменить путь к новому бинарнику без переустановки службы можно командой:
    
    sc config "1C:Enterprise 8.3 Server Agent" binPath= "\"C:\Program Files\1cv8\8.3.XX.YYYY\bin\ragent.exe\" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d \"C:\Program Files\1cv8\srvinfo\""
    
  2. Веб-публикации (IIS / Apache): публикации информационных баз обращаются к модулям расширения веб-сервера (wsap24.dll или wsisapi.dll) в каталоге конкретной платформы. После удаления старого релиза необходимо переопубликовать базы через конфигуратор новой платформы либо через утилиту webinst из каталога bin актуальной версии.

Оптимальный регламент обновления и очистки

Чтобы минимизировать риски и простои, рекомендуется придерживаться следующего алгоритма:

  1. Устанавливаем новый релиз платформы, не удаляя текущий рабочий.
  2. Тестируем работу конфигураций и внешних обработок на новой версии.
  3. Переключаем службу сервера и веб-публикации на новый релиз.
  4. Удаляем устаревшие версии через штатный деинсталлятор Windows (оставляя одну предыдущую стабильную версию для возможности быстрого отката).
  5. Сразу после завершения деинсталляции запускаем bat-файл с командами regsvr32 для comcntr.dll и 1cv8.exe /RegServer актуального релиза.
← На главную