Чистка лишних сборок платформы 1С на компьютере и сервере без последствий

· 9 мин

Содержание

Старую версию платформы 1С удаляют штатно: в Windows через Параметры → Приложения (или Панель управления → Программы и компоненты), где каждая сборка 8.3 стоит отдельной строкой вида «1С:Предприятие 8 (8.3.xx.xxxx)». В Linux — пакетным менеджером или деинсталлятором из каталога версии. Удалять можно любую сборку, кроме той, на которую завязаны служба сервера, веб-публикации, консоль кластера или конкретные базы.

Частое заблуждение — что вместе с платформой пропадут базы или лицензии. Нет: базы лежат в своих каталогах или на SQL-сервере, программные лицензии — в C:\ProgramData\1C\licenses, и деинсталлятор их не трогает. Ломается другое: то, что ссылается на файлы удалённой версии.

Почему мало просто нажать «Удалить» в списке программ

Сама кнопка «Удалить» работает корректно. Проблема в том, что одна сборка платформы часто обслуживает больше, чем кажется. После её удаления в каталоге C:\Program Files\1cv8\8.3.xx.xxxx\bin пропадают файлы, на которые ссылаются другие компоненты.

Что обычно завязано на конкретную версию:

  • 🖥️ служба агента сервера 1С — путь к ragent.exe прописан в параметрах службы;
  • 🌐 веб-публикации — IIS или Apache загружают модуль wsisapi.dll / wsap24.dll из папки определённой версии;
  • 🛠️ консоль администрирования кластера — оснастка работает через зарегистрированную radmin.dll конкретной сборки;
  • 🔌 COM-соединение — внешние программы используют зарегистрированный comcntr.dll;
  • 📌 базы с жёстко заданной версией — в свойствах базы в окне запуска указана именно эта сборка;
  • 🧩 обработки и обмены по расписанию — bat-файлы и планировщик заданий, где прописан полный путь к 1cv8.exe.

Если удалить версию, не проверив этот список, служба не стартует, публикация отдаёт ошибку 500, а консоль кластера перестаёт открываться. Данные целы, но работа стоит.

32-разрядная и 64-разрядная платформа — это разные установки. Первая лежит в C:\Program Files (x86)\1cv8, вторая в C:\Program Files\1cv8. Удаляются они независимо друг от друга.

Подготовка: какие зависимости и процессы проверить до удаления старых версий 1С

Начните с инвентаризации. Посмотрите, какие сборки стоят, и решите, какую оставляете рабочей. Обычно оставляют последнюю установленную и одну предыдущую — на случай отката.

Список установленных версий

Быстрее всего — PowerShell, он читает реестр и не запускает проверку установщика:

Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*,
  HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* |
  Where-Object { $_.DisplayName -like '1С*' -or $_.DisplayName -like '1C*' } |
  Select-Object DisplayName, DisplayVersion, PSChildName

В колонке PSChildName будет код продукта в фигурных скобках. Он пригодится для тихого удаления.

Какую версию использует служба сервера

sc qc "1C:Enterprise 8.3 Server Agent (x86-64)"

Имя службы на вашем сервере может отличаться — посмотрите его в оснастке services.msc. В строке BINARY_PATH_NAME виден полный путь к ragent.exe, а значит, и номер версии. Эту сборку трогать нельзя, пока служба не переведена на другую.

Остальные проверки

Что проверитьГде смотреть
Веб-публикации IISДиспетчер IIS → сайт → «Сопоставления обработчиков», путь к wsisapi.dll
Веб-публикации Apachehttpd.conf, строка LoadModule _1cws_module
Версия у базОкно запуска → «Изменить» → последний шаг, поле «Версия 1С:Предприятия»
Скрипты и заданияПланировщик заданий, bat-файлы с полным путём к 1cv8.exe
Запущенные процессыДиспетчер задач: 1cv8.exe, 1cv8c.exe, rphost.exe, rmngr.exe

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

Остановка службы сервера 1С или процессов rphost.exe обрывает сеансы всех пользователей. Делайте это вне рабочего времени и предупредите людей заранее.

Ручное и тихое удаление старых версий 1С в Windows

Через интерфейс Windows

  1. Закройте все окна 1С на компьютере.
  2. Откройте Параметры → Приложения → Установленные приложения (в Windows 10 — Приложения и возможности).
  3. В поиске наберите «1С».
  4. Найдите строку с ненужной сборкой, проверьте номер версии и разрядность.
  5. Нажмите «Удалить» и дождитесь окончания работы установщика.
  6. Повторите для остальных лишних сборок.

Оставшаяся пустая папка C:\Program Files\1cv8\8.3.xx.xxxx после удаления — нормальная ситуация. Если внутри ничего нет, её можно удалить руками.

Из командной строки

Когда версий много или компьютеров десяток, удобнее тихий режим. Код продукта берите из вывода PowerShell выше:

msiexec /x {КОД-ПРОДУКТА} /qn /norestart /l*v C:\Temp\uninstall-1c.log

Ключ /qn убирает окна, /l*v пишет подробный журнал. Если что-то пошло не так, причину ищите в конце журнала по слову error.

Не используйте для поиска версий запрос к классу Win32_Product (wmic product или Get-CimInstance). Он медленный и запускает проверку целостности всех MSI-пакетов на машине.

Массовая чистка на нескольких компьютерах

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

$keep = '8.3.xx.xxxx'   # версия, которую оставляем
$apps = Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*,
  HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* |
  Where-Object { $_.DisplayName -like '1С:Предприятие 8*' -and $_.DisplayVersion -ne $keep }
foreach ($a in $apps) {
  Write-Output "$($a.DisplayName) $($a.DisplayVersion)"
  Start-Process msiexec.exe -ArgumentList "/x $($a.PSChildName) /qn /norestart" -Wait
}

Сравнение идёт по точной строке версии, поэтому проверьте формат в колонке DisplayVersion на одном компьютере. На серверах такой скрипт не запускайте: там сначала нужен перенос службы.

Чего не делать

  • ❌ Не удаляйте папку версии вручную вместо деинсталлятора. Запись в списке программ останется, а следующая установка той же сборки может завершиться ошибкой.
  • ❌ Не удаляйте C:\Program Files\1cv8\common и C:\Program Files\1cv8\conf — там общий запускатель 1cestart.exe и общие настройки.
  • ❌ Не трогайте C:\ProgramData\1C\licenses — это файлы программных лицензий, к версии платформы они не привязаны.

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

С сервером порядок важнее, чем на клиенте. Сначала служба переводится на новую версию, потом удаляется старая.

Шаг 1. Установите новую версию сервера

Ставьте с компонентами «Сервер 1С:Предприятия» и, если нужно, «Модули расширения веб-сервера». На шаге выбора параметров службы не регистрируйте новую службу поверх старой, если планируете перенести её вручную.

Шаг 2. Переведите службу

Остановите службу агента. Затем из папки старой версии снимите регистрацию, а из папки новой — зарегистрируйте службу заново с тем же каталогом кластера:

"C:\Program Files\1cv8\8.3.OLD\bin\ragent.exe" -rmsrvc
"C:\Program Files\1cv8\8.3.NEW\bin\ragent.exe" -instsrvc -usr .\USR1CV8 -pwd ПАРОЛЬ -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"
"C:\Program Files\1cv8\8.3.NEW\bin\ragent.exe" -start

Порты, учётную запись и путь к srvinfo возьмите из текущих параметров службы — из вывода sc qc. Если они нестандартные, а вы поставите стандартные, кластер «потеряется».

Каталог srvinfo не удаляйте ни при каких условиях: в нём реестр кластера со списком баз, администраторами и настройками.

Шаг 3. Перерегистрируйте консоль и веб-модули

Консоль кластера после удаления старой версии перестанет открываться, пока вы не зарегистрируете radmin.dll новой сборки. Запуск от имени администратора:

regsvr32 "C:\Program Files\1cv8\8.3.NEW\bin\radmin.dll"

Если используете COM-соединение — так же зарегистрируйте comcntr.dll из новой версии. Веб-публикации переопубликуйте из Конфигуратора новой версии (Администрирование → Публикация на веб-сервере) или поправьте путь к модулю в настройках IIS/Apache.

Шаг 4. Удалите старую сборку

Только теперь — через список программ или msiexec /x, как описано выше. Перед этим проверьте, что сервер работает: консоль открывается, пользователи заходят в базы.

Удаление старых версий 1С в Linux: Debian, Ubuntu, CentOS

В Linux многое зависит от того, как платформа ставилась: отдельными пакетами или единым установщиком.

Сборки, поставленные единым дистрибутивом

Начиная с 8.3.20 платформу для Linux распространяют единым установщиком setup-full-…run. Он раскладывает каждую версию в собственный каталог /opt/1cv8/x86_64/8.3.xx.xxxx. Посмотреть установленные:

ls /opt/1cv8/x86_64/

Внутри каталога версии есть деинсталлятор. Запускать от root:

sudo /opt/1cv8/x86_64/8.3.xx.xxxx/uninstaller-full

Сборки, поставленные пакетами deb

dpkg -l | grep 1c-enterprise
sudo apt remove 1c-enterprise-8.3.xx.xxxx-*

Проверьте маску на списке из dpkg -l до запуска удаления, чтобы не зацепить рабочую версию.

Сборки, поставленные пакетами rpm (CentOS, РЕД ОС, ALT)

rpm -qa | grep -i 1c-enterprise
sudo dnf remove <имена пакетов старой версии>

На старых CentOS вместо dnf используется yum.

Служба сервера в Linux

Перед удалением убедитесь, что служба работает от новой версии:

systemctl list-units --all | grep srv1cv8

В имени юнита у новых сборок указан номер версии. Если там старая — остановите её, подключите юнит из каталога новой версии и включите его. Каталог кластера (по умолчанию в домашнем каталоге пользователя usr1cv8, папка .1cv8) сохраните.

Остановка юнита сервера 1С отключает всех пользователей. Планируйте окно обслуживания.

Проверка системы после удаления старой версии 1С

После удаления пройдитесь по короткому списку. Пять минут здесь избавляют от звонков в понедельник утром.

Проверка после удаления
Выполнено: 0 / 6

Если у пользователей при входе появляется ошибка вида «версия не найдена» — у базы в окне запуска закреплена удалённая сборка. Откройте свойства базы через «Изменить» и очистите поле «Версия 1С:Предприятия» или укажите оставшуюся версию. Для массовой правки удобнее отредактировать список баз в файле ibases.v8i: строки Version= относятся к каждой базе.

Каталоги временных файлов пользователей в %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8 после смены версии разрастаются. Их можно чистить при закрытой 1С — программа заново создаст нужное при следующем запуске, но первый вход будет медленнее.

Если старую версию 1С удалили неправильно

Ситуации, с которыми чаще всего приходят после неудачного удаления, и что с ними делать:

Диагностика: выберите симптом

Удаление ключа защиты HASP — отдельная история. Его драйвер ставится как самостоятельная программа и в список «1С:Предприятие» не входит. Если у вас аппаратные ключи, драйвер не удаляйте.

Частые вопросы об удалении старых версий 1С

Пропадут ли базы после удаления платформы?
Нет. Файловые базы лежат в своих папках, серверные — на СУБД. Деинсталлятор удаляет только файлы программы.
Сколько версий платформы держать на компьютере?
Достаточно рабочей и одной предыдущей. Предыдущая нужна для отката, если новая сборка окажется несовместимой с конфигурацией.
Можно ли удалить версию, если база создана в ней?
Можно. База не привязана к сборке платформы, её откроет любая версия не ниже минимально требуемой конфигурацией.
Нужно ли удалять старую версию перед установкой новой?
Нет. Разные сборки 8.3 ставятся параллельно в отдельные каталоги. Старую удаляют после проверки новой.
Почему после удаления версии клиент всё равно пытается её запустить?
В свойствах базы или в ibases.v8i закреплена удалённая сборка. Очистите поле версии в настройках базы.