Почему стартер 1С не видит старую версию платформы после установки новой через GPO?

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

При администрировании крупных инфраструктур «1С:Предприятие» часто применяется схема поэтапного обновления. Сначала новая версия платформы централизованно устанавливается на компьютеры пользователей с помощью групповых политик (GPO) Active Directory, а серверная часть обновляется позже — во внерабочее время, когда все рабочие станции уже подготовлены. При такой схеме стартер 1cestart.exe должен автоматически определять версию сервера и запускать соответствующий локально установленный релиз тонкого или толстого клиента.

Однако системные администраторы часто сталкиваются со следующей проблемой: после успешной установки нового релиза платформы на клиентские машины, стартер при попытке входа в базу выдает ошибку: «HTTP: Conflict. Требуется установка новой версии 1С:Предприятия» (с указанием старой версии, на которой работает сервер, например, 8.3.13.1644). При этом физически старая версия платформы остается установленной на компьютере пользователя, и если запустить исполняемый файл напрямую (например, через C:\Program Files (x86)\1cv8\8.3.13.1644\bin\1cv8s.exe), подключение к базе проходит успешно.

В этой статье мы подробно разберем механизмы поиска версий стартером 1С, выясним причины сбоя при использовании GPO и рассмотрим правильные варианты решения этой проблемы.

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

Для того чтобы понять природу ошибки, проанализируем алгоритм работы программы запуска 1cestart.exe. При старте утилита обращается к конфигурационным файлам 1cestart.cfg, которые располагаются в двух основных каталогах операционной системы:

  1. Общий профиль компьютера (для всех пользователей): C:\ProgramData\1C\1CEStart\1cestart.cfg
  2. Индивидуальный профиль текущего пользователя: %APPDATA%\1C\1CEStart\1cestart.cfg

Основную роль в поиске установленных на компьютере версий платформы играет параметр InstalledLocation в файле конфигурации. Этот параметр указывает стартеру корневые папки, внутри которых находятся каталоги с релизами платформы. По умолчанию стандартный инсталлятор прописывает туда пути к каталогам установки 1С:


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

Если этот параметр отсутствует или поврежден в конфигурационном файле, стартер теряет возможность динамически искать папки с установленными релизами (такими как 8.3.13.1644, 8.3.15.1700 и т.д.). В этом случае он может запустить только ту версию платформы, которая является для него «родной» (из каталога которой запущен сам исполняемый файл или на которую указывает ярлык на рабочем столе). Пытаясь подключиться к базе на новом клиенте, он получает отказ от старого сервера в виде ошибки HTTP 409 (Conflict).

Выясняем причину сбоя при использовании GPO

Разберем ситуацию, которая приводит к поломке механизма автовыбора версий при развертывании платформы через групповые политики Active Directory. Часто для удобства пользователей администраторы настраивают централизованное распространение списка информационных баз. Для этого через Preferences (Предпочтения GPO) на клиентские компьютеры копируется готовый файл настроек 1cestart.cfg в папку C:\ProgramData\1C\1CEStart\.

Если в шаблоне копируемого файла администратор указал только ссылку на список общих баз (параметр CommonInfoBases), но забыл добавить строки InstalledLocation, то при первом же применении групповой политики корректный локальный файл настроек заменяется усеченной версией шаблона. В результате стартер полностью «слепнет» и перестает видеть любые ранее установленные версии платформы, кроме самой последней.

Пошаговое решение проблемы

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

Вариант 1. Быстрое исправление конфигурационного файла

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

Убедимся, что шаблон файла содержит корректный набор параметров. Откроем шаблон конфигурационного файла в текстовом редакторе и приведем его к следующему виду:


InstalledLocation=C:\Program Files\1cv8
InstalledLocation=C:\Program Files (x86)\1cv8
CommonInfoBases=C:\ProgramData\1C\1CEStart\ibases.v8i
UseHwLicenses=1

Важно: Файлы конфигурации 1С (1cestart.cfg) должны быть сохранены строго в кодировке UTF-16LE (в блокноте Windows этот формат называется «Юникод» или «UTF-16 LE»). Если сохранить файл в обычной кодировке UTF-8 или ANSI, стартер 1С не сможет корректно прочитать параметры, что приведет к неработоспособности программы запуска.

После обновления шаблона в GPO выполните принудительное обновление политик на клиентских ПК с помощью команды:

gpupdate /force

Вариант 2. Использование сетевого файла общих настроек (Рекомендуемый способ)

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

  1. Создадим в сетевой папке, доступной для всех пользователей на чтение (например, \\Server-1C\Deploy\), общий конфигурационный файл с именем 1cescmn.cfg.
  2. Внутри этого файла пропишем пути к общим спискам баз и другие глобальные параметры, которые должны применяться ко всем клиентам:
    
    CommonInfoBases=\\Server-1C\Deploy\ibases.v8i
    DistributiveLocation=\\Server-1C\Deploy\Distr\
    
  3. В групповой политике настроим однократное создание на компьютерах пользователей локального файла 1cestart.cfg в каталоге C:\ProgramData\1C\1CEStart\ со ссылкой на наш сетевой файл. Содержимое локального файла должно выглядеть следующим образом:
    
    CommonCfgLocation=\\Server-1C\Deploy\1cescmn.cfg
    InstalledLocation=C:\Program Files\1cv8
    InstalledLocation=C:\Program Files (x86)\1cv8
    

При такой конфигурации локальный файл 1cestart.cfg больше не требуется постоянно обновлять или заменять через GPO. Он указывает стартеру базовые пути поиска платформ на самом компьютере (благодаря InstalledLocation) и перенаправляет его к централизованному файлу настроек на сервере. При изменении списка баз администратору достаточно отредактировать один файл 1cescmn.cfg в сетевом каталоге.

Учет разрядности платформы (x86 и x64)

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

По умолчанию пути установки различаются:

Если на компьютерах пользователей одновременно используются платформы разной разрядности (например, старая версия 8.3.13 была 32-битной, а новая 8.3.15 развернута как 64-битная), стартер обязательно должен иметь пути к обоим каталогам. Убедитесь, что в параметрах InstalledLocation вашего конфигурационного файла прописаны обе строчки. Это гарантирует, что 64-битный стартер сможет без проблем найти и запустить устаревшего 32-битного клиента для подключения к еще не обновленному серверу приложений.

← На главную