В процессе администрирования и поддержки систем на базе 1С:Предприятие часто возникает необходимость совместного использования различных архитектур платформы. Системные администраторы и разработчики регулярно задаются вопросами: можно ли установить одновременно 32-битного и 64-битного клиента? Будут ли они бесконфликтно работать с сервером приложений? Как правильно настроить веб-публикацию и интеграцию через COM? В этой статье мы подробно разберем все технические нюансы совместной работы 32- и 64-битных версий 1С.
Начнем с самого распространенного сценария: запуск тонкого или толстого клиента разной разрядности на одной рабочей станции под управлением 64-битной операционной системы Windows. Сделать это можно абсолютно свободно. Платформа 1С спроектирована таким образом, что файлы разных архитектур устанавливаются в изолированные директории:
C:\Program Files (x86)\1cv8\C:\Program Files\1cv8\Для управления запуском используется единая программа — стартер 1С (1cestart.exe). Мы можем гибко управлять разрядностью запуска для каждой информационной базы. Разберем по шагам, как это настроить:
Начиная с версии платформы 8.3.20, разработчики 1С существенно упростили жизнь администраторам, внедрив единый дистрибутив для Windows, который содержит в себе обе архитектуры. Это минимизирует ручные операции при развертывании платформы на рабочих местах пользователей.
Рассмотрим архитектурное взаимодействие клиентских приложений и сервера 1С:Предприятие. На практике стандартной является следующая схема: на сервере развернута полноценная 64-битная служба 1С, а у пользователей на рабочих местах запущены как 32-битные, так и 64-битные клиенты.
Такая конфигурация работает стабильно и без сбоев. Единственное критически важное условие — полное совпадение номеров релизов платформы. Например, если на сервере установлена версия 8.3.22.1709 (x64), то все подключающиеся клиенты — и 32-битные, и 64-битные — должны иметь точно такой же номер версии 8.3.22.1709.
Почему пользователи часто остаются на 32-битных клиентах, несмотря на наличие 64-битного сервера? Основная причина кроется в совместимости со старым торговым оборудованием и внешними библиотеками. Однако у 32-битного клиента есть существенный недостаток: ограничение адресуемой оперативной памяти на один процесс (не более 2-4 ГБ). При формировании тяжелых отчетов или выгрузке огромных объемов данных в XML на стороне клиента такое приложение завершит работу с ошибкой "Недостаточно памяти". В таких ситуациях переход на 64-битный клиент является единственным надежным решением.
Проанализируем более сложную конфигурацию: объединение серверов разной разрядности в единый рабочий кластер 1С. Технически платформа позволяет добавлять в один кластер рабочие серверы как x86, так и x64 архитектуры.
Для создания такой связки необходимо соблюдать жесткие правила:
Такой сценарий требует тонкой настройки требований назначения функциональности в консоли администрирования кластера 1С, чтобы распределять нужные задачи на соответствующий рабочий сервер.
Разберем детально главное препятствие при переходе на 64-битную архитектуру. Процесс разрядности 64-бит физически не может загрузить в свое адресное пространство 32-битную динамическую библиотеку (.dll). Это приводит к ошибкам при подключении торгового оборудования, работе с банками или интеграции с внешними системами.
Если вам необходимо инициализировать 32-битное COM-соединение из-под 64-битного процесса 1С, рассмотрим классическое решение через создание пустого приложения в службе компонентов Windows (COM+):
dcomcnfg).comcntr.dll из папки Program Files (x86)).После этой настройки операционная система Windows будет использовать системный процесс-прослойку dllhost.exe для трансляции вызовов между 64-битным процессом 1С и 32-битной COM-библиотекой.
Для регистрации библиотеки в системе вручную используется стандартная утилита:
regsvr32 "C:\Program Files (x86)\1cv8\8.3.22.1709\bin\comcntr.dll"
При использовании веб-клиентов и интеграции через HTTP/SOAP-сервисы необходимо строго следить за соответствием разрядностей веб-сервера и используемого модуля расширения 1С.
Рассмотрим особенности настройки для популярных веб-серверов:
Если вы устанавливаете 64-битный веб-сервер Apache, вам необходимо использовать только 64-битный модуль расширения 1С (файл wsap24.dll из каталога 64-битной платформы). Если разрядности не совпадут, служба Apache просто не сможет запуститься. Пример подключения модуля в файле конфигурации httpd.conf:
# Подключение 64-битного модуля расширения 1С для Apache 2.4
LoadModule _1cws_module "C:/Program Files/1cv8/8.3.22.1709/bin/wsap24.dll"
В Windows Server веб-сервер IIS по умолчанию функционирует в 64-битном режиме. Если вам по какой-то причине требуется задействовать 32-битный пул приложений для публикации баз 1С, выполните следующие шаги:
Выясним, как разрядность платформы влияет на использование лицензий. Здесь действуют простые правила:
Таким образом, одновременное использование и плавный переход с 32-битных версий на 64-битные вполне реализуемы. Главное — следить за идентичностью релизов платформы, правильно настраивать веб-серверы и использовать COM+ для устаревших внешних библиотек.