В практике администрирования систем 1С часто возникает ситуация, когда часть сотрудников работает с информационной базой через 32-битный тонкий или толстый клиент, а другая часть (например, программисты или бухгалтеры) использует 64-битную версию платформы. Проанализируем, насколько допустима такая конфигурация, с какими скрытыми рисками можно столкнуться на практике и как их правильно нивелировать.
С точки зрения архитектуры клиент-серверного взаимодействия платформы 1С:Предприятие, одновременно подключаться к 64-битному кластеру серверов могут как 32-битные (x86), так и 64-битные (x86_64) клиенты. Сервер 1С обрабатывает сеансы пользователей независимо от разрядности их клиентского приложения. Данные в базе хранятся единым образом, а бизнес-логика, исполняемая на стороне сервера, отрабатывает одинаково для всех подключенных сеансов.
Однако на стороне клиентского рабочего места между 32-битной и 64-битной версиями платформы существуют принципиальные технические различия, о которых необходимо помнить при разворачивании инфраструктуры.
Разберем основные трудности, с которыми можно столкнуться при использовании 64-битного клиента:
COMОбъект.Несмотря на возможные проблемы с драйверами, использование 64-битной версии необходимо в следующих сценариях:
1cv8.exe является критически важным условием для корректного проведения обновлений.Посмотрим, какими методами можно обеспечить стабильную работу смешанной среды и устранить технические конфликты.
Для работы с внешним оборудованием и библиотеками рекомендуется использовать внешние компоненты, разработанные по технологии Native API и упакованные в ZIP-архив с манифестом MANIFEST.xml. Такой архив содержит версии библиотек как под x86, так и под x86_64. Платформа 1С автоматически определит свою разрядность и подгрузит нужную DLL.
Также при вызове метода подключения внешней компоненты выгодно использовать режим изоляции сеанса:
Результат = ПодключитьВнешнююКомпоненту("ОбластьПодключения", "ИмяКомпоненты", ТипПодключенияВнешнейКомпоненты.Изолированно);
Изолированное подключение запускает компоненту в отдельном процессе операционной системы, благодаря чему потенциальный сбой внутри библиотеки не приведет к падению самого клиента 1С.
Если необходимо обратиться к 32-битной COM-библиотеке из 64-битного процесса (или наоборот), настраивают приложение COM+ в Windows (Службы компонентов / Component Services):
dllhost.exe, а 64-битный клиент 1С обращается к ней через межпроцессное взаимодействие.Вместо вызова Новый COMОбъект("Excel.Application") при выгрузке и загрузке документов рекомендуется использовать встроенные средства 1С, например объект ТабличныйДокумент, который умеет программно читать и сохранять файлы формата .xlsx без зависимости от разрядности установленного пакетного офиса.
Проанализировав потребности разных категорий сотрудников, выделим следующую практику распределения разрядностей:
Явно фиксировать разрядность клиента для каждой конкретной базы в диалоге запуска 1С (через файл 1cestart.exe) можно в настройках подключения базы, установив параметр "Основная скорость соединения" и принудительный выбор разрядности: 32 (x86) или 64 (x86_64).