В практике администрирования систем на базе 1С:Предприятие часто возникает классическая проблема: после установки нового релиза платформы на сервере терминалов у пользователей при запуске баз через общий стартер начинает автоматически открываться последняя установленная версия. Если при этом серверная часть (служба сервера 1С:Предприятия) осталась на прежнем релизе, пользователи получают критическую ошибку: «Несоответствие версий клиента и сервера».
В этой статье мы подробно разберем, как решить данную проблему изящно и централизованно, не прибегая к ручному переписыванию ярлыков на рабочих столах десятков пользователей и не редактируя свойства каждой базы вручную.
Проанализируем, почему возникает данная ситуация. По умолчанию программа запуска 1cestart.exe, расположенная в папке C:\Program Files\1cv8\common\, сканирует систему на наличие установленных версий 1С:Предприятия. Из всех найденных релизов она выбирает наиболее свежий по номеру и пытается запустить информационную базу именно под ним.
Если для файловой базы «Бухгалтерия предприятия» это нормальный сценарий, то для клиент-серверных баз, жестко привязанных к конкретной версии службы сервера 1С, такой автоматический выбор приводит к ошибке авторизации. Нам необходимо принудительно указать системе, под каким именно релизом следует открывать конкретные базы или все базы по умолчанию.
Рассмотрим три эффективных способа решения этой задачи по шагам.
Это наиболее правильный и профессиональный подход к администрированию инфраструктуры 1С. Вместо того чтобы настраивать список баз у каждого пользователя локально, мы создадим единый список баз на сетевом ресурсе (или в общей папке сервера) и жестко пропишем требуемую версию платформы для каждой информационной базы.
Разберем этот процесс по шагам:
.v8i (например, Activ.v8i) и разместим его в общедоступном сетевом каталоге или локальной папке на сервере терминалов, к которой у всех пользователей есть права на чтение.Version с точным номером релиза, который должен запускаться. Пример структуры такого файла выглядит следующим образом:
[Имя серверной базы]
Connect=Srvr="имя_сервера";Ref="имя_базы_на_сервере";
ID=b221e4ad-e2d7-40fc-9ec6-5e89d3f6e482
OrderInList=1
Folder=/
App=Auto
WA=1
Version=8.3.22.1709
[Файловая Бухгалтерия]
Connect=File="C:\1C_Bases\Accounting";
ID=a345e2ad-e2d7-40fc-9ec6-5e89d3f6e555
OrderInList=2
Folder=/
App=Auto
WA=1
Version=8.3.24.1350
Обратите внимание: для серверной базы мы жестко задали Version=8.3.22.1709 (старый рабочий релиз сервера), а для новой файловой бухгалтерии указали Version=8.3.24.1350 (новый установленный релиз).
1CESCmn.cfg, который управляет поведением стартера 1cestart.exe для всех пользователей. Этот файл обычно располагается в каталоге C:\Program Files\1cv8\common\. Наполним его следующими параметрами:
CommonInfoBases=\\ServerName\ShareFolder\1c_bases\Activ.v8i
CommonCfgLocation=\\ServerName\ShareFolder\1c_bases\1CESCmn.cfg
InstalledLocation="C:\Program Files\1cv8"
DistributiveLocation=\\ServerName\ShareFolder\1c_distr\
InstallComponents=DESIGNERALLCLIENTS=1 THINCLIENTFILE=0 THINCLIENT=0 WEBSERVEREXT=0 SERVER=0 CONFREPOSSERVER=0 CONVERTER77=0 SERVERCLIENT=0 LANGUAGES=RU
При таком подходе при запуске общего ярлыка 1cestart.exe программа считает сетевые настройки, автоматически добавит нужные базы в список пользователей и запустит каждую базу строго под той версией платформы, которая прописана в параметре Version.
Если вам не хочется создавать общие сетевые списки баз, а нужно быстро решить проблему «здесь и сейчас» для всех баз по умолчанию, можно воспользоваться недокументированным в широких кругах, но крайне эффективным параметром DefaultVersion.
Этот параметр указывает стартеру 1cestart.exe, какую именно версию использовать по умолчанию, если в свойствах конкретной информационной базы в поле «Версия платформы» ничего не заполнено (или стоит стандартное значение «8.3»).
Выясним, как это настроить:
1cestart.cfg. В зависимости от задачи мы можем отредактировать его глобально или локально:
C:\ProgramData\1C\1CEStart\1cestart.cfg.%APPDATA%\1C\1CEStart\1cestart.cfg (или C:\Users\Имя_Пользователя\AppData\Roaming\1C\1CEStart\1cestart.cfg).
DefaultVersion=8.3.22.1709
Замените 8.3.22.1709 на реальный номер старого релиза вашей платформы, на котором работает сервер 1С. После сохранения файла при запуске через стандартный ярлык 1cestart.exe программа по умолчанию будет открывать именно эту версию платформы.
Полезный лайфхак: Если у вас установлены разные разрядности платформы (например, 32-битная и 64-битная), вы можете явно управлять разрядностью клиента через точку с запятой:
DefaultVersion=8.3.22.1709;x86 — принудительный запуск 32-битного клиента;DefaultVersion=8.3.22.1709;x86_64 — принудительный запуск 64-битного клиента.В случае, когда необходимо предоставить доступ к старой платформе в обход всей логики анализа версий стартера, можно создать отдельный ярлык непосредственно на исполняемый файл нужного релиза.
Посмотрим, как правильно настроить свойства такого ярлыка:
"C:\Program Files\1cv8\common\1cestart.exe" укажем путь к исполняемому файлу конкретного релиза.bin целевой версии платформы (например, 8.3.22.1709):
"C:\Program Files\1cv8\8.3.22.1709\bin\1cv8s.exe" — для запуска стандартного окна со списком баз (толстый/тонкий клиент);"C:\Program Files\1cv8\8.3.22.1709\bin\1cv8c.exe" — для прямого запуска только тонкого клиента.При запуске 1С через такой ярлык система не будет пытаться анализировать установленные обновления или искать более свежую платформу. Она сразу откроет список баз на платформе указанного релиза, что полностью исключит появление ошибки несоответствия версий.
Мы проанализировали три различных способа управления запуском версий 1С:Предприятия. Выбор оптимального решения зависит от масштаба вашей сети и текущих задач:
.v8i и настройкой параметра Version для каждой ИБ. Это позволит гибко сочетать новые файловые базы и старые серверные базы в одном списке.DefaultVersion в файле 1cestart.cfg.1cv8s.exe нужного релиза.