В процессе администрирования баз 1С часто возникает ситуация, когда на рабочих станциях установлено несколько релизов технологической платформы. При работе с файловыми информационными базами критически важно, чтобы все пользователи подключались с абсолютно одинаковой версии сборки. Если пользователи начнут открывать общую файловую базу разными версиями платформы, это может привести к нарушению структуры таблиц 1Cv8.1CD, сбоям индексации и ошибкам совместного доступа.
Однако при использовании общего стартера 1cestart.exe система по умолчанию стремится запустить самый свежий установленный релиз, игнорируя ожидания администратора. Разберем по шагам причины такого поведения и рассмотрим все надежные способы запуска информационной базы под строго определенной версией платформы.
Проанализируем, как утилита запуска считывает параметры информационной базы. В свойствах базы (в окне стартера или файле ibases.v8i) предусмотрено поле Версия 1С:Предприятия.
Если в параметрах указать только короткий номер сборки (например, 2170), стартер не сможет распознать запись как корректную версию платформы. В таком случае программа запуска сочтет параметр ошибочным и автоматически выберет самый старший релиз из найденных на диске (например, 8.3.9.2233).
Чтобы стартер корректно выбрал сборку, выполним следующие действия:
8.3.9.2170.Выясним причину, по которой даже при правильно указанном номере версии 8.3.9.2170 стартер все равно открывает другой релиз. Стартер ищет установленные платформы только в тех каталогах, которые прописаны в конфигурационном файле 1cestart.cfg.
Если нужная версия установлена в каталог другой разрядности (например, 32-разрядная платформа в Program Files (x86), а стартер запускается из 64-разрядного каталога Program Files), стартер может просто «не видеть» установленный релиз и запускать то, что нашел.
Разберем, как проверить и настроить пути поиска:
1cestart.cfg, расположенный по пути %APPDATA%\1C\1CEStart\1cestart.cfg или %ALLUSERSPROFILE%\1C\1CEStart\1cestart.cfg.InstalledLocation для обеих разрядностей платформы.
InstalledLocation=C:\Program Files\1cv8
InstalledLocation=C:\Program Files (x86)\1cv8
Рассмотрим удобный способ глобальной фиксации конкретной сборки для всей ветки платформы на рабочем месте. Если требуется, чтобы для всех баз ветки 8.3.9 запускалась исключительно версия 8.3.9.2170, мы можем прописать директиву DefaultVersion в файле 1cestart.cfg.
Добавим в конфигурационный файл 1cestart.cfg следующую строчку:
DefaultVersion=8.3.9-8.3.9.2170
Также можно зафиксировать версию для всей ветки 8.3:
DefaultVersion=8.3-8.3.9.2170
После сохранения файла стартер 1cestart.exe будет принудительно вызывать релиз 8.3.9.2170 вместо более новых установленных версий.
Посмотрим на вариант, когда информационную базу требуется запускать через общий стартер 1cestart.exe с рабочего стола без интерактивного выбора из списка. Для этого используем специальный параметр командной строки /RunVersion.
Создадим ярлык и пропишем в поле «Объект» команду запуска:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "D:\Bases\MyBase" /RunVersion 8.3.9.2170
В этом случае стартер гарантированно передаст управление исполняемому файлу указанной версии 8.3.9.2170.
Если требуется полностью исключить логику стартера 1cestart.exe, создадим отдельный ярлык напрямую к исполняемому файлу конкретного релиза.
C:\Program Files (x86)\1cv8\8.3.9.2170\bin\ или C:\Program Files\1cv8\8.3.9.2170\bin\.1cv8.exe (для запуска в режиме толстого/тонкого клиента) или 1cv8c.exe (для тонкого клиента).
"C:\Program Files (x86)\1cv8\8.3.9.2170\bin\1cv8.exe" ENTERPRISE /F "D:\Bases\MyBase"
Такой подход обеспечивает 100% запуск базы именно в той сборке платформы, которая указана в пути ярлыка, полностью обходя любые настройки списков баз и конфигурационных файлов стартера.