Часто при переходе на новую версию платформы или при необходимости поддерживать старые конфигурации (например, Управление торговлей 10.3 на платформе 8.2) системные администраторы сталкиваются с неприятной ситуацией. После установки 1С:Предприятие 8.3 штатный загрузчик 1cestart.exe внезапно «забывает» о существовании версии 8.2. При попытке запуска базы загрузчик выдает ошибку о несоответствии версий клиента и сервера или сообщает, что нужная версия платформы не обнаружена, хотя вручную через 1cv8.exe всё прекрасно работает. Давайте подробно разберем, почему это происходит и как заставить систему работать корректно.
Для начала нам необходимо понять, как именно 1cestart.exe определяет, какие версии платформы установлены на сервере. В отличие от прямого запуска исполняемого файла из папки bin, загрузчик является «умным» посредником. Он выполняет следующие действия:
conf.cfg и 1cestart.cfg.1cv8.exe в каталогах, указанных как места установки (InstalledLocation).Если на терминальном сервере Windows Server 2008 R2 x64 установлены обе платформы, конфликт чаще всего возникает из-за путаницы в путях или разрядности приложений. Рассмотрим пошагово, что нужно проверить.
Первым делом выясним, действительно ли установлены клиентские части платформы 8.2. Бывает так, что при обновлении или установке серверной части 8.3 системные компоненты 8.2 повреждаются или «перекрываются» новыми записями. Рассмотрим, как это проверить:
Зайдем в Панель управления — Программы и компоненты. Найдем в списке 1С:Предприятие 8.2. Нажмем кнопку «Изменить» и выберем пункт «Изменить» в мастере установки. Нам нужно убедиться, что установлены компоненты:
Если эти галочки отсутствуют, 1cestart.exe не будет считать эту папку пригодной для запуска клиента, даже если там лежат файлы сервера. После проверки или переустановки клиента 8.2 обязательно убедитесь, что файлы физически присутствуют по пути C:\Program Files (x86)\1cv82\номер_релиза\bin\1cv8.exe.
Это самый важный этап, который часто упускают. Файл conf.cfg управляет тем, где загрузчик ищет платформы. На 64-битных системах таких файлов может быть несколько. Нам нужно проанализировать содержимое файла по пути C:\Program Files (x86)\1cv8\common\conf\conf.cfg.
Рассмотрим пример правильного содержания этого файла, если платформы установлены в стандартные папки:
SystemId=1C-Enterprise-8.2
InstalledLocation=C:\Program Files (x86)\1cv82
InstalledLocation=C:\Program Files (x86)\1cv8
Если параметр InstalledLocation указывает только на папку 1cv8 (где лежит 8.3), то загрузчик просто не «заглядывает» в папку 1cv82. Добавьте строку с путем к 8.2 вручную, используя обычный текстовый редактор от имени администратора. Обратите внимание, что пути должны указывать на корень установки, а не на папку конкретного релиза.
На терминальном сервере у каждого пользователя в его профиле создается свой файл настроек. Проанализируем путь %APPDATA%\1C\1CEStart\1cestart.cfg. В этом файле могут содержаться переопределения, которые блокируют запуск 8.2.
Особое внимание уделим параметру UseAppServer. Если он установлен в значение 0, загрузчик не будет пытаться автоматически определить версию платформы через сервер 1С. Попробуем установить его в значение 1:
UseAppServer=1
InstalledLocation=C:\Program Files (x86)\1cv82
InstalledLocation=C:\Program Files (x86)\1cv8
Также проверьте, нет ли в этом файле параметра DefaultVersion, который принудительно заставляет систему всегда использовать 8.3. Если такая строка есть, ее лучше удалить или закомментировать.
Если автоматическое определение версии не срабатывает, нам нужно явно указать 1cestart.exe, какую платформу использовать для конкретной информационной базы. Рассмотрим, как это сделать правильно:
8.2.19.130.Почему это важно? Если указано просто «8.2», загрузчик ищет в реестре самую последнюю установленную версию, начинающуюся на эти цифры. Если регистрация версии 8.2 в реестре Windows была повреждена при установке 8.3, поиск не даст результатов. Указание полного номера заставляет загрузчик искать конкретную папку на диске.
Выясним причину, связанную с архитектурой x64. Поскольку 1С 8.2 чаще всего является 32-битным приложением, ее данные хранятся в специальной ветке реестра для 32-битных программ на 64-битных системах (WOW6432Node).
Проанализируем ветку реестра: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\1C\1Cv8. Там должен существовать раздел InstalledProducts, в котором перечислены ID установленных версий. Если при установке 8.3 инсталлятор некорректно обновил общие компоненты, записи о 8.2 могут пропасть из этой ветки. В таком случае помогает «Исправление» установки 8.2 через Панель управления, что заново регистрирует компоненты в реестре.
В ситуации, когда серверы 8.2 и 8.3 работают одновременно на одной машине, они должны занимать разные сетевые порты. Например, 8.2 остается на стандартном порту 1541, а 8.3 переносится на 2541. Рассмотрим, как это влияет на запуск:
Если в строке соединения с базой не указан порт (например, просто SERVER-1C\BaseName), загрузчик всегда будет стучаться на порт по умолчанию (1540/1541). Если на этом порту теперь «сидит» сервер 8.3, а база требует 8.2, возникнет конфликт версий. Всегда указывайте порт явно в свойствах базы:
ИмяСервера:1541\ИмяБазы (для 8.2)
ИмяСервера:2541\ИмяБазы (для 8.3)
Мы выяснили, что проблема «невидимости» платформы 8.2 загрузчиком 1cestart.exe чаще всего не является техническим сбоем самой программы, а является следствием нарушения конфигурационных файлов или регистрации компонентов в реестре. Для восстановления нормальной работы нам достаточно синхронизировать пути в conf.cfg, убедиться в наличии установленного толстого клиента 8.2 и, при необходимости, явно указать номер релиза в настройках подключения к базе. Эти шаги позволяют обеспечить стабильную одновременную работу нескольких поколений платформ 1С на одном терминальном сервере.