При выборе разрядности клиентского приложения и Конфигуратора 1С у разработчиков и системных администраторов часто возникает вопрос: есть ли реальная выгода от перехода на 64-разрядную версию (x64) или достаточно традиционной 32-разрядной (x86)? Рассмотрим подробнее, в каких практических задачах 64-битный клиент становится производственной необходимостью, с какими ограничениями можно столкнуться при переходе и как эти ограничения преодолеть.
Главным ограничением 32-разрядных процессов является лимит адресуемой оперативной памяти (как правило, не более 2–4 ГБ на один процесс). При превышении этого порога приложение завершается с критической ошибкой нехватки памяти (Недостаточно памяти / Out of memory). Использование 64-разрядного клиента снимает это ограничение.
Проанализируем основные сценарии, в которых применение 64-битной платформы даёт ключевой профит:
При планировании перехода на x64 важно учитывать спецификацию потребления ресурсов и совместимость с внешним окружением:
Выясним, какие технические решения позволяют использовать 64-разрядный клиент 1С и одновременно сохранять возможность работы с 32-битным оборудованием и компонентами:
1. Использование службы COM+ (обертка dllhost.exe):
Для обращения из 64-битной 1С к 32-битным COM-компонентам библиотеку регистрируют в «Службах компонентов» Windows (COM+). В этом случае вызовы транслируются через промежуточный 32-битный процесс dllhost.exe, что устраняет архитектурный конфликт.
2. Использование изолированного режима подключения компонентов:
Современная платформа 1С позволяет подключать внешние компоненты в изолированном режиме. При этом библиотека исполняется в отдельном процессе ОС. Это не только позволяет обойти ограничения разрядности при использовании соответствующей обертки, но и защищает основной сеанс 1С от падения в случае ошибки в стороннем коде:
ПодключитьВнешнююКомпоненту("ОбластьМаккета", "MyComponent", ТипПодключенияВнешнейКомпоненты.Изолированно);
3. Мультиархитектурные ZIP-пакеты Native API:
Разработчикам внешних компонент рекомендуется поставлять их в виде ZIP-архива, содержащего бинарные файлы для разных архитектур (x86, x86_64) и файл описания manifest.xml. Платформа 1С автоматически подгрузит нужную библиотеку под разрядность запущенного клиента.
4. Использование промежуточных веб-сервисов:
Для торгового оборудования с 32-битными драйверами организуют локальный веб-сервис или драйверную службу, работающую в 32-битной среде, к которой 64-битный клиент 1С обращается по протоколу HTTP/HTTPS.
Разрядность клиентского приложения не привязана к разрядности сервера 1С: 32-битный тонкий клиент может свободно работать с 64-битным кластером серверов, и наоборот.
Для управления выбором разрядности клиента при запуске используются следующие механизмы:
1cestart.exe:
/AppArch64 — принудительный запуск 64-разрядного клиента;/AppArch32 — принудительный запуск 32-разрядного клиента.DefaultVersion и приоритет архитектуры в конфигурационном файле 1cestart.cfg.Таким образом, оптимальной стратегией является использование 32-битного клиента для повседневной работы обычных пользователей (особенно при интенсивном использовании торгового оборудования) и обязательное применение 64-битного клиента или Конфигуратора для разработчиков и администраторов при обслуживании тяжелых конфигураций уровня ERP.