Довольно часто на рабочих станциях системным администраторам приходится устанавливать одновременно две сборки платформы 1С:Предприятие одной и той же версии — 32-битную (x86) и 64-битную (x86_64). Основная причина такой необходимости — использование устаревших внешних компонент и драйверов оборудования, например для формирования и печати штрихкодов или работы с торговым оборудованием, которые существуют исключительно в 32-разрядном виде.
При запуске через стандартный ярлык стартер 1cestart.exe по умолчанию выбирает платформу x64. Разберем по шагам все возможные способы принудительного выбора разрядности клиента: от штатных настроек диалога запуска до тонкой настройки конфигурационных файлов и ярлыков.
Проанализируем самый простой и удобный для конечного пользователя механизм, реализованный разработчиками платформы. Если версия 1С:Предприятия не ниже 8.3.12, разрядность можно указать непосредственно в свойствах информационной базы.
Приоритет 32 (x86) и Приоритет 64 (x86_64)), если релизы установлены несинхронно.Если бухгалтеру или оператору требуется запускать одну и ту же базу то в 64-битном режиме (для тяжелых расчетов), то в 32-битном (для печати документов со штрихкодами), создадим в списке вторую запись. Добавим существующую базу еще раз с наименованием, например, «Бухгалтерия (x32 для печати)», указав в ее свойствах разрядность x86. Пользователь сможет выбирать нужный вариант прямо в общем списке баз.
Рассмотрим запуск с явным указанием архитектуры через командную строку. Стартер 1cestart.exe поддерживает специальный ключ /AppArch. Этот ключ можно прописать как в ярлыке рабочего стола, так и в поле дополнительных параметров базы.
/AppArch x86.
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /IBName "Бухгалтерия" /AppArch x86
Ключ /AppArch принимает следующие значения:
x86 — жестко требует запуска 32-битного приложения;x86_prt — отдает предпочтение 32-битной версии, если она найдена;x86_64 — строго запускает 64-битное приложение;x86_64_prt — приоритет 64-битной версии.Выясним причину поведения стартера по умолчанию. При установке обеих платформ файл 1CEStart.cfg, расположенный по пути C:\ProgramData\1C\1CEStart\1CEStart.cfg, содержит пути поиска исполняемых файлов в параметрах InstalledLocation:
InstalledLocation=C:\Program Files (x86)\1cv8
InstalledLocation=C:\Program Files\1cv8
Если нам требуется изменить поведение программы по умолчанию без редактирования параметров каждой отдельной базы, разберем два варианта настройки данного файла:
DefaultVersion, указав разрядность через точку с запятой, например: DefaultVersion=8.3;x86 или DefaultVersion=8.3;x86_prt.C:\ProgramData\1C\1CEStart\1CEStart.cfg строчку InstalledLocation=C:\Program Files (x86)\1cv8. В таком случае ярлык из 64-битной папки C:\Program Files\1cv8\common\1cestart.exe будет видеть только 64-разрядные платформы, а ярлык из каталога C:\Program Files (x86)\1cv8\common\1cestart.exe запустит 32-разрядное приложение.Если требуется полностью исключить логику стартера и запускать строго определенный клиент конкретного релиза, создадим прямой ярлык на исполняемый файл.
1cv8.exe, тонкий клиент — 1cv8c.exe, а клиент с автоматическим выбором режима — 1cv8s.exe.
"C:\Program Files (x86)\1cv8\8.3.24.1548\bin\1cv8s.exe" ENTERPRISE /IBName "НашаБаза"
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8s.exe" ENTERPRISE /IBName "НашаБаза"
Обратите внимание: при использовании переменных окружения в ярлыках Windows следует помнить, что переменная %ProgramFiles% внутри 32-битных процессов автоматически переопределяется операционной системой на C:\Program Files (x86). Поэтому в ярлыках надежнее прописывать абсолютные пути к каталогам.
Посмотрим на проблему шире: необходимость постоянно переключаться между разрядностями платформы создает неудобства для пользователей и администраторов. Разберем, как избавиться от этой необходимости:
dllhost.exe.