Как выбрать разрядность платформы 1С x32 или x64 при запуске базы?

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

Довольно часто на рабочих станциях системным администраторам приходится устанавливать одновременно две сборки платформы 1С:Предприятие одной и той же версии — 32-битную (x86) и 64-битную (x86_64). Основная причина такой необходимости — использование устаревших внешних компонент и драйверов оборудования, например для формирования и печати штрихкодов или работы с торговым оборудованием, которые существуют исключительно в 32-разрядном виде.

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

Способ 1. Штатная настройка разрядности в свойствах базы (начиная с платформы 8.3.12)

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

  1. Откроем стандартное окно запуска 1С:Предприятия.
  2. Выделим нужную информационную базу и нажмем кнопку Изменить.
  3. В открывшемся окне перейдем на страницу основных параметров и обратим внимание на поле Разрядность.
  4. Выберем требуемый режим: 32 (x86) для строгого запуска 32-разрядного клиента либо 64 (x86_64) для запуска 64-разрядного. Также доступны режимы приоритета (Приоритет 32 (x86) и Приоритет 64 (x86_64)), если релизы установлены несинхронно.
  5. Нажмем Готово для сохранения изменений.

Если бухгалтеру или оператору требуется запускать одну и ту же базу то в 64-битном режиме (для тяжелых расчетов), то в 32-битном (для печати документов со штрихкодами), создадим в списке вторую запись. Добавим существующую базу еще раз с наименованием, например, «Бухгалтерия (x32 для печати)», указав в ее свойствах разрядность x86. Пользователь сможет выбирать нужный вариант прямо в общем списке баз.

Способ 2. Использование параметра запуска /AppArch

Рассмотрим запуск с явным указанием архитектуры через командную строку. Стартер 1cestart.exe поддерживает специальный ключ /AppArch. Этот ключ можно прописать как в ярлыке рабочего стола, так и в поле дополнительных параметров базы.

  1. В свойствах базы: нажмем кнопку Изменить в окне запуска, перейдем на последнюю страницу мастера и в строке Дополнительные параметры запуска укажем: /AppArch x86.
  2. В ярлыке Windows: создадим ярлык на рабочий стол со строкой запуска вида:
    
    "C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /IBName "Бухгалтерия" /AppArch x86
    

Ключ /AppArch принимает следующие значения:

  1. x86 — жестко требует запуска 32-битного приложения;
  2. x86_prt — отдает предпочтение 32-битной версии, если она найдена;
  3. x86_64 — строго запускает 64-битное приложение;
  4. x86_64_prt — приоритет 64-битной версии.

Способ 3. Настройка конфигурационного файла 1CEStart.cfg

Выясним причину поведения стартера по умолчанию. При установке обеих платформ файл 1CEStart.cfg, расположенный по пути C:\ProgramData\1C\1CEStart\1CEStart.cfg, содержит пути поиска исполняемых файлов в параметрах InstalledLocation:


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

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

  1. Управление параметром DefaultVersion: добавим или скорректируем строку DefaultVersion, указав разрядность через точку с запятой, например: DefaultVersion=8.3;x86 или DefaultVersion=8.3;x86_prt.
  2. Разделение стартеров по каталогам: удалим из файла 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-разрядное приложение.

Способ 4. Создание ярлыка прямого запуска нужной версии платформы

Если требуется полностью исключить логику стартера и запускать строго определенный клиент конкретного релиза, создадим прямой ярлык на исполняемый файл.

  1. Определим требуемый исполняемый файл клиента: толстый клиент запускается файлом 1cv8.exe, тонкий клиент — 1cv8c.exe, а клиент с автоматическим выбором режима — 1cv8s.exe.
  2. Для 32-разрядного клиента укажем путь в объекте ярлыка:
    
    "C:\Program Files (x86)\1cv8\8.3.24.1548\bin\1cv8s.exe" ENTERPRISE /IBName "НашаБаза"
    
  3. Для 64-разрядного клиента укажем путь: "C:\Program Files\1cv8\8.3.24.1548\bin\1cv8s.exe" ENTERPRISE /IBName "НашаБаза"

Обратите внимание: при использовании переменных окружения в ярлыках Windows следует помнить, что переменная %ProgramFiles% внутри 32-битных процессов автоматически переопределяется операционной системой на C:\Program Files (x86). Поэтому в ярлыках надежнее прописывать абсолютные пути к каталогам.

Способ 5. Альтернативные решения без переключения платформ

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

  1. Обновление компоненты печати штрихкодов: современные версии официальной компоненты 1C:Печать штрихкодов поставляются по технологии Native API и содержат библиотеки как под x86, так и под x86_64. Обновление компоненты в конфигурации позволяет формировать штрихкоды напрямую в 64-битном клиенте.
  2. Использование шрифтов: перевод печатных форм на шрифтовые штрихкоды (Code 128, EAN-13) полностью исключает зависимость от сторонних внешних библиотек и их разрядности.
  3. Изоляция 32-битного COM-объекта через COM+: если отказаться от старой библиотеки невозможно, зарегистрируем ее в оснастке Windows «Службы компонентов» (COM+) как серверное приложение (Out-of-Process). В этом случае 64-битный клиент 1С сможет успешно работать с 32-битной компонентой через системный процесс dllhost.exe.
← На главную