Почему 1cestart некорректно выбирает версию платформы и как исправить ошибку HTTP: Conflict?

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

При работе с несколькими версиями платформы 1С:Предприятие на одном сервере (особенно на терминальных серверах) системные администраторы часто сталкиваются с ситуацией, когда программа запуска 1cestart.exe игнорирует настройки и пытается запустить самую свежую версию платформы вместо требуемой. Это приводит к возникновению ошибки "HTTP: Conflict", так как версия клиентского приложения не соответствует версии сервера 1С. Разберем подробно, почему это происходит и как настроить систему для корректной работы.

Анализируем симптомы проблемы

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

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

  1. Различие в правах: Под учетной записью администратора 1С запускается корректно, выбирая нужную версию. У обычных пользователей лончер принудительно запускает последнюю установленную версию.
  2. Прямой запуск: Если запустить исполняемый файл напрямую из папки bin конкретной версии (например, C:\Program Files\1cv8\8.3.22.2239\bin\1cv8.exe), база открывается без ошибок.
  3. Игнорирование параметров .v8i: Указание Version=8.3.22.2239 в файле списка баз не дает результата для обычного пользователя.

Эти признаки указывают на то, что проблема кроется не в самой платформе, а в механизме работы программы запуска 1cestart.exe и ее взаимодействии с конфигурационными файлами и реестром Windows под ограниченными правами.

Разберем механизм выбора версии платформы

Когда мы запускаем 1cestart.exe, программа выполняет поиск подходящей версии по определенному алгоритму. Она проверяет:

Если 1С не может найти версию, точно соответствующую запросу (например, из-за несовпадения разрядности или отсутствия прав на чтение папки), она по умолчанию пытается запустить самую старшую из доступных версий. В случае с версиями 8.3.25.x алгоритм стал более агрессивным, и зачастую он "не видит" старые версии, если они были установлены иначе, чем новая, или если сбились пути поиска.

Решение 1: Настройка параметра InstalledLocation в 1CEStart.cfg

Выясним основную причину, которая часто встречается при установке платформы через доменные политики или под разными учетными записями. Программа запуска ищет установленные компоненты по путям, прописанным в файле 1CEStart.cfg. Если путь к старой версии там отсутствует или недоступен для пользователя, лончер ее проигнорирует.

Выполним следующие шаги:

  1. Перейдем в каталог C:\ProgramData\1C\1CEStart.
  2. Найдем файл 1cestart.cfg и откроем его с помощью текстового редактора от имени администратора.
  3. Проверим наличие и корректность параметров InstalledLocation.

Пример правильного заполнения файла, если у вас установлены и 32-битные, и 64-битные версии:


InstalledLocation=C:\Program Files\1cv8
InstalledLocation=C:\Program Files (x86)\1cv8
DefaultVersion=8.3
UseNativeLauncher=1

Важно: Убедитесь, что у группы "Пользователи" есть права на чтение этого файла. Если файл 1cestart.cfg недоступен для чтения пользователю, 1cestart.exe будет использовать настройки по умолчанию, которые могут не включать путь к старой платформе.

Решение 2: Явное указание разрядности (AppArch)

Часто конфликт возникает из-за того, что новая платформа установлена только в 64-битном варианте, а старая — в 32-битном (или наоборот). Если в параметрах запуска базы не указана архитектура, лончер может решить, что старая версия "не подходит" под текущую архитектуру системы, и запустит новую.

Рассмотрим, как прописать это в общем файле списков баз (.v8i). Добавим параметр AppArch для проблемной базы:


[Имя Вашей Базы]
Connect=Srvr="server";Ref="base";
ID=...
OrderInList=1
Folder=/
OrderInTree=1
External=1
App=Auto
WA=1
Version=8.3.22.2239
AppArch=x86_64

Если нужно задать архитектуру глобально для всех запусков на сервере, можно добавить строку в 1cestart.cfg:

DefaultVersion=8.3;x86_64_prt

Это укажет системе отдавать приоритет 64-разрядным версиям платформы 8.3.

Решение 3: Проверка прав доступа и реестра

Проанализируем ситуацию, когда права администратора влияют на запуск. 1С хранит информацию об установленных версиях в ветке реестра HKEY_LOCAL_MACHINE\SOFTWARE\1C\1Cv8 (для 64-битных) и HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\1C\1Cv8 (для 32-битных).

Если при установке новой версии 8.3.25 права на эти ветки были изменены, обычный пользователь может перестать "видеть" записи о предыдущих инсталляциях. Проверим следующее:

  1. Откройте regedit и перейдите к указанным веткам.
  2. Убедитесь, что группа "Пользователи" имеет права на "Чтение" этой ветки и всех подпапок.
  3. Проверьте права на сами папки с платформой в C:\Program Files\1cv8\. Пользователи должны иметь права "Чтение и выполнение" на папку каждой версии.

Использование параметра UseNativeLauncher

В современных релизах 1С внедрила новый механизм запуска (Native Launcher). Иногда он работает некорректно в сложных терминальных средах. Мы можем попробовать переключить режим запуска в файле 1cestart.cfg, добавив или изменив строку:

UseNativeLauncher=0

Это заставит 1cestart.exe использовать классический алгоритм поиска исполняемых файлов, который более предсказуем при наличии жестко прописанных версий в ibases.v8i.

Итоги и рекомендации

Подводя итог, можно сказать, что ошибка HTTP: Conflict при запуске через 1cestart.exe — это почти всегда следствие того, что лончер "потерял" путь к старой версии платформы или не имеет прав на чтение конфигурации.

Для стабильной работы терминального сервера рекомендуем:

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

← На главную