К статье
Практический материал

Администрирование · 9 мин

Ошибка RunScript при удалении 1С: как завершить деинсталляцию

Ошибка «runscript when not marked in progress» при удалении 1С: почему возникает, как завершить деинсталляцию платформы и очистить следы в реестре и папках.

При удалении платформы 1С:Предприятие через «Программы и компоненты» или установщик Windows иногда появляется сообщение вида «Error 1722. There is a problem with this Windows Installer package. A program run as part of the setup did not finish as expected» либо «runscript when not marked in progress». После этого деинсталляция откатывается, платформа остаётся в списке установленных программ, а повторная установка новой версии может блокироваться. Ошибка связана не с самой 1С, а с механизмом Windows Installer: пакет MSI пытается выполнить встроенный скрипт (Custom Action) в момент, когда служба установщика не находится в состоянии выполнения сценария.

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

Что означает ошибка RunScript и почему она возникает

Пакеты установки платформы 1С распространяются в формате MSI. Помимо копирования файлов, MSI выполняет так называемые настраиваемые действия (Custom Actions) — скрипты, которые регистрируют компоненты, прописывают службы, обновляют ассоциации файлов. Сообщение «runscript when not marked in progress» появляется, когда установщик пытается запустить такой скрипт, но внутренняя транзакция установки не переведена в состояние «выполняется». Это внутренняя несогласованность службы Windows Installer, а не ошибка в коде 1С.

На практике к этому приводят несколько ситуаций: прерванная ранее установка или удаление (например, отключение питания в середине процесса), повреждение кэшированной копии MSI в папке C:\Windows\Installer, запуск деинсталляции без прав администратора, активные процессы 1cv8.exe, ragent.exe или агента сервера 1С, удерживающие файлы, а также вмешательство антивируса, который блокирует выполнение скрипта установщика.

Ошибка появляется сразу после старта удаленияСбой инициализации установщика

Проверьте права администратора и перезапустите службу Windows Installer

Удаление доходит до середины и откатываетсяСкрипт не может завершить работу

Проверьте, не запущены ли процессы 1cv8.exe, ragent.exe, и антивирус

1С удалена из списка, но папки осталисьЧастичная деинсталляция

Потребуется ручная очистка каталогов и реестра

Новая версия не устанавливается после сбояРеестр содержит запись о старой версии

Ищите остатки продукта по коду продукта в реестре

Подготовка: что сделать перед повторной попыткой удаления

Прежде чем повторять удаление, устраните факторы, которые мешают установщику. Откройте диспетчер задач и завершите все процессы, связанные с 1С: 1cv8.exe, 1cv8c.exe, ragent.exe, rmngr.exe, rphost.exe. Если на компьютере работает агент сервера 1С, остановите соответствующую службу через оснастку services.msc — она удерживает файлы и может блокировать скрипт удаления.

Далее временно отключите антивирус и контролируемый доступ к папкам, если он включён. Убедитесь, что вы работаете под учётной записью с правами локального администратора, и запускайте удаление именно с повышением прав: правый клик по элементу в «Программы и компоненты» не даёт такого выбора, поэтому надёжнее использовать командную строку от имени администратора. После этого перезагрузите компьютер — это сбрасывает зависшие транзакции Windows Installer и освобождает заблокированные файлы.

Порядок действий
  1. 1
    Завершите процессы 1cv8.exe, ragent.exe, rphost.exe в диспетчере задач
  2. 2
    Остановите службу агента сервера 1С, если она установлена
  3. 3
    Временно отключите антивирус и перезагрузите компьютер
  4. 4
    Запустите командную строку от имени администратора
  5. 5
    Выполните удаление через msiexec с кодом продукта или из «Программы и компоненты»
  6. 6
    Проверьте, что платформа исчезла из списка установленных программ

Удаление через msiexec и поиск кода продукта

Если стандартное удаление завершается ошибкой, попробуйте запустить деинсталляцию напрямую через msiexec. Для этого нужен код продукта (ProductCode) — GUID, под которым платформа зарегистрирована в системе. Его можно найти в реестре по пути HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall (а для 32-разрядной платформы на 64-разрядной системе — в ветке WOW6432Node) либо через PowerShell.

Команда удаления выглядит так: msiexec /x {код-продукта} /qn. Параметр /qn запускает тихое удаление без интерфейса. Если и оно завершается ошибкой RunScript, добавьте ведение журнала параметром /l*v C:\uninstall_1c.log — по логу можно определить, какой именно Custom Action вызывает сбой, и понять, что блокирует выполнение.

powershell
Get-WmiObject Win32_Product | Where-Object {$_.Name -like "<em>1C</em>"} | Select-Object Name, IdentifyingNumber

Обратите внимание: запрос Win32_Product при перечислении может инициировать проверку целостности установленных пакетов и выполняется медленно. Альтернатива — поиск по реестру или использование средства Microsoft «Устранение неполадок, связанных с установкой и удалением программ» (Program Install and Uninstall Troubleshooter), которое автоматически находит повреждённые записи и удаляет пакет в обход штатного сценария.

Ручная очистка остатков платформы

Если штатное удаление невозможно, а платформа мешает установке новой версии, остаётся ручная очистка. Это радикальный метод: сначала создайте точку восстановления системы и экспортируйте изменяемые ветки реестра. Затем удалите каталоги платформы — обычно это C:\Program Files\1cv8\<номер версии> (или C:\Program Files (x86)\1cv8) и служебные данные в %APPDATA%\1C и %PROGRAMDATA%\1C. Каталоги информационных баз и шаблонов конфигураций удалять не нужно — они хранятся отдельно и к платформе не привязаны.

В реестре удалите разделы, относящиеся к конкретной версии: запись о продукте в ветке Uninstall, соответствующий код продукта в HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData, а также ветку HKCR\Installer\Products с тем же кодом в перекодированном виде. Удалять следует только разделы, однозначно относящиеся к удаляемой версии 1С, — ошибочное удаление чужих записей Installer может сломать деинсталляцию других программ.

Проверка результата и установка новой версии

После любого способа удаления убедитесь, что система в консистентном состоянии. Откройте «Программы и компоненты» — записи о платформе 1С быть не должно. Проверьте, что каталог C:\Program Files\1cv8 не содержит удалённой версии, а служба агента сервера отсутствует в services.msc (если вы её удаляли). Затем перезагрузите компьютер — это гарантирует снятие остаточных блокировок.

Только после этого запускайте установку новой версии платформы. Если установщик по-прежнему сообщает, что продукт уже установлен, значит, в реестре осталась запись о старом ProductCode — вернитесь к поиску по коду продукта и удалите её. Успешная установка и запуск 1cv8.exe подтверждают, что проблема решена полностью.

Контрольные точки

Как проверить результат

Список «Программы и компоненты»
Норма

Версии 1С нет в списке

Тревожный признак

Запись осталась, повторное удаление даёт ошибку

Папка C:\Program Files\1cv8
Норма

Каталог удалённой версии отсутствует

Тревожный признак

Папка версии на месте и содержит файлы

Установка новой версии
Норма

Установщик проходит до конца без сообщений

Тревожный признак

Ошибка «продукт уже установлен» или откат

Службы
Норма

Нет службы агента сервера удалённой версии

Тревожный признак

Служба висит в состоянии «Остановлена» или «Отключена»

Типичные ошибки при борьбе с этой проблемой

Самая частая ошибка — многократный запуск удаления без устранения причины: каждый откат оставляет транзакцию установщика в ещё более неопределённом состоянии. Вторая — удаление папки платформы вручную до деинсталляции: после этого MSI не находит свои файлы и гарантированно падает с ошибкой, а запись в системе остаётся. Третья — использование «чистильщиков реестра» общего назначения: они могут удалить записи Windows Installer, нужные другим программам.

Типичные ошибки
01
Удаление папки 1cv8 до штатной деинсталляции — MSI теряет файлы и не может завершить удаление
02
Правка реестра без экспорта ветки — при ошибке восстановить запись невозможно
03
Игнорирование работающего агента сервера 1С — служба блокирует файлы и скрипт удаления
04
Использование сторонних «чистильщиков» вместо средства устранения неполадок Microsoft

Частые вопросы

Можно ли просто удалить папку с платформой 1С?

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

Опасна ли эта ошибка для информационных баз?

Нет. Ошибка касается только установщика платформы. Файловые базы (.1CD) и базы на сервере СУБД хранятся отдельно и не затрагиваются. Тем не менее перед любыми манипуляциями с платформой разумно иметь актуальную выгрузку или резервную копию баз.

Поможет ли перезагрузка без других действий?

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

Что делать, если средство устранения неполадок не видит 1С в списке?

Выберите в средстве пункт «Нет в списке» и укажите код продукта (GUID) вручную — его можно найти в реестре в ветке Uninstall. Если и это не помогает, остаётся ручная очистка записей о продукте с предварительной резервной копией реестра.

Нужно ли удалять старые версии платформы вообще?

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

Итог

Что важно запомнить

Ошибка RunScript при удалении 1С — это сбой Windows Installer, а не платформы. Последовательность: завершить процессы 1С, перезагрузиться, удалить от имени администратора через msiexec или средство устранения неполадок Microsoft; ручную чистку реестра выполнять только с резервной копией и только записей конкретной версии.