При работе с платформой 1С:Предприятие 8.3 системные администраторы часто сталкиваются с необходимостью перехода на более старую версию (даунгрейд), например, для обеспечения совместимости с конкретной конфигурацией или исправления ошибок, возникших в новых релизах. Одной из самых неприятных проблем в этой ситуации является ошибка «Не обнаружена установленная версия 1С:Предприятия». Примечательно, что ошибка возникает сразу при запуске 1cestart.exe, не давая даже открыть окно со списком информационных баз, хотя прямой запуск файла 1cv8.exe из каталога bin конкретной версии работает исправно.
В этой статье мы подробно разберем, почему «умный» загрузчик 1cestart.exe перестает видеть установленные платформы и как восстановить его работоспособность, проанализировав конфигурационные файлы и системные настройки.
Для начала проанализируем, как работает стандартный механизм запуска. Программа 1cestart.exe — это не само «Предприятие», а лишь оболочка-загрузчик. Ее задача — просканировать конфигурационные файлы, определить список установленных версий на компьютере, прочитать список баз и запустить наиболее подходящий исполняемый файл (1cv8.exe или 1cv8c.exe).
Когда мы получаем сообщение о том, что версия не найдена, это означает, что загрузчик обратился к своим спискам путей установки, но либо не нашел там ничего подходящего, либо столкнулся с противоречивой информацией, которая вызвала критический сбой. Рассмотрим основные причины такого поведения.
Как показывает практика, стандартные инструкции часто советуют проверять настройки в профиле пользователя (папка AppData), но забывают о системном уровне. Выясним причину ошибки, скрытую в общих настройках системы.
Проанализируем содержимое файла конфигурации, который находится по пути: C:\ProgramData\1C\1CEStart\1CEStart.cfg. В отличие от пользовательских настроек, параметры здесь применяются ко всем учетным записям на сервере или компьютере.
В этом файле хранятся параметры InstalledLocation, указывающие загрузчику, где искать исполняемые файлы 1С. Рассмотрим типичный пример проблемного содержимого:
InstalledLocation=C:\Program Files (x86)\1cv8
InstalledLocation=C:\Program Files\1cv8
InstallComponents=DESIGNERALLCLIENTS=1 THINCLIENTFILE=0 THINCLIENT=1 WEBSERVEREXT=1 SERVER=1
Если вы выполнили даунгрейд и перешли, например, полностью на 64-битную версию платформы, наличие строки InstalledLocation=C:\Program Files (x86)\1cv8 может сбить загрузчик с толку. Если папка x86 пуста или содержит поврежденные остатки предыдущих версий, 1cestart.exe может аварийно завершить поиск, не дойдя до корректной 64-битной папки.
Порядок действий:
C:\ProgramData\1C\1CEStart\.1CEStart.cfg с помощью текстового редактора (от имени Администратора).InstalledLocation, указывающие на несуществующие каталоги или каталоги с неверной разрядностью.1cestart.exe снова.Если правка файла в ProgramData не помогла, нам необходимо проверить всю цепочку конфигураций. Выясним, в каком порядке 1С ищет настройки. Загрузчик последовательно читает файлы:
Common (где расположен сам 1cestart.exe).%ProgramData%\1C\1CEStart\1CEStart.cfg.%AppData%\1C\1CEStart\1CEStart.cfg.Разберем ситуацию: если в одном из этих файлов параметр InstalledLocation указан неверно или у текущего пользователя нет прав на чтение указанной папки, возникнет ошибка. Проверьте, чтобы во всех этих файлах пути соответствовали фактическому расположению папок с версиями (например, 8.3.18.1563).
Рассмотрим ситуацию, когда загрузчик «ломается» из-за попытки запустить конкретную версию, прописанную в настройках базы. В файле ibases.v8i (который обычно лежит в %AppData%\1C\1CEStart\) для каждой базы есть параметры.
Посмотрим на пример параметров информационной базы:
[НазваниеВашейБазы]
Connect=Srvr="ServerName";Ref="BaseName";
ID=...
DefaultVersion=8.3.20.1710
Если в параметре DefaultVersion жестко указана старая (удаленная) версия, загрузчик будет пытаться найти именно ее. При даунгрейде система может не успеть переключиться на «ближайшую подходящую» версию. Попробуйте изменить значение на DefaultVersion=8.3 или вовсе удалить эту строку, чтобы загрузчик выбрал самую свежую из установленных платформ автоматически.
Иногда обычное удаление программы через «Панель управления» оставляет хвосты в реестре Windows. Проанализируем ключи, которые могут влиять на запуск. Нам помогут ветки:
HKEY_LOCAL_MACHINE\SOFTWARE\1C\1Cv8HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\1C\1Cv8 (для 32-битных компонентов на 64-битной системе)В этих ветках могут содержаться параметры CommonRootInstallDir. Если этот путь указывает на пустую папку C:\Program Files (x86)\1cv8, а платформа установлена в Program Files, загрузчик может выдать ошибку. Также стоит обратить внимание на ветку HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall, где могут дублироваться записи об установленных продуктах 1С. Если система «считает», что версия 8.3.20 все еще установлена, она будет пытаться передать управление ей.
Выясним, где еще могут храниться временные данные, мешающие запуску. Помимо файлов настроек, загрузчик использует кэш-файлы в локальных папках пользователя. Попробуем выполнить полную очистку:
%Temp%.%LocalAppData%\1C\1cv8 и %AppData%\1C\1cv8. Внимание: это приведет к удалению списка баз, поэтому предварительно сохраните файл ibases.v8i.1cestart.exe. Если окно открылось, просто добавьте свои базы обратно (или верните файл ibases.v8i).При выполнении понижения версии платформы (например, с 8.3.20 на 8.3.18), рекомендуется соблюдать следующую последовательность действий, чтобы избежать ошибок инициализации:
C:\Program Files\1cv8\ и C:\Program Files (x86)\1cv8\, если они остались после деинсталляции.1CEStart.cfg во всех местах их расположения.C:\Program Files\1cv8\common\1cestart.exe, а не к исполняемому файлу конкретной версии.Использование таких методов позволяет «сбросить» состояние загрузчика до эталонного и гарантирует, что 1cestart.exe корректно просканирует систему и найдет установленную платформу.