Можно ли одновременно работать с базой 1С через 32-битные и 64-битные платформы?

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

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

Техническая возможность и архитектура взаимодействия

Рассмотрим основы взаимодействия клиентского приложения с сервером 1С:Предприятие. С технической точки зрения, серверу абсолютно не важна разрядность клиента. Обмен данными между толстым или тонким клиентом и сервером происходит через сетевые протоколы (обычно TCP/IP). Данные передаются в сериализованном виде, что обеспечивает полную независимость от архитектуры процессора на стороне пользователя.

Проанализируем основные условия для стабильной работы:

  1. Идентичность релизов: Это самое жесткое и единственное обязательное требование. Номер версии платформы (например, 8.3.22.1709) на сервере и на всех клиентских машинах должен совпадать до последней цифры. Разрядность при этом может быть любой.
  2. Абстракция уровней доступа: Платформа 1С спроектирована таким образом, что работа с базой данных (SQL) идет через уровень сервера приложений. Клиент не обращается к SQL-серверу напрямую, поэтому разница в разрядности нивелируется промежуточным звеном — сервером 1С.
  3. Многоплатформенность: Система штатно поддерживает не только разные битности, но и разные операционные системы (Windows, Linux, macOS) в рамках одной информационной базы.

Когда 64-битный клиент становится необходимостью

Разберем ситуации, в которых использование 32-битного клиента (x86) становится невозможным или крайне затруднительным. Главное ограничение 32-битных систем — лимит адресного пространства памяти, который составляет около 2 ГБ на процесс (в редких случаях до 3.5 ГБ с ключом /3GB).

Выясним основные причины перехода на x64:

Проблема внешних компонент и драйверов оборудования

Это самый критический нюанс смешанного использования платформ. Рассмотрим, почему внешние компоненты (библиотеки .dll) привязаны к разрядности. Если ваша конфигурация использует драйверы для ККТ, сканеров штрихкодов или компоненты для защиты информации (криптографию), вы должны учитывать следующее:

32-битное приложение 1С может загрузить в свою память только 32-битную библиотеку. Соответственно, 64-битное приложение требует 64-битную версию той же компоненты. Если разработчик оборудования не выпустил 64-битную версию драйвера, ваш 64-битный клиент просто не сможет работать с этим устройством.

Проанализируем ситуацию на примере кода:


Попытка
    ЗагрузитьВнешнююКомпоненту("ОбщийМакет.ДрайверЭквайринга", "Driver");
    ОбъектДрайвера = Новый("AddIn.Driver.Extension");
Исключение
    Сообщить("Не удалось загрузить компоненту. Проверьте разрядность клиента!");
КонецПопытки;

В данном случае, если в макете лежит только 32-битная библиотека, на 64-битном клиенте выполнение всегда будет уходить в блок Исключение.

COM-соединения и автоматизация

Посмотрим на проблему интеграции. Если вы используете COM-объекты для связи с внешним миром (например, Excel или запуск другой базы 1С через V83.COMConnector), разрядность обоих приложений должна совпадать. Попытка вызвать 32-битный COM-объект из-под 64-битной 1С (и наоборот) часто приводит к ошибке регистрации класса, если не настроены специальные прослойки в COM+ (Component Services).

Особенности потребления памяти и кэширования

Разберем, как разрядность влияет на производительность клиентской машины:

Итоговые рекомендации

Подводя итог, можно уверенно сказать: одновременная работа разрешена и безопасна для целостности базы данных SQL. Однако для стабильной эксплуатации системы мы рекомендуем придерживаться следующих правил:

  1. Используйте 64-битный клиент для разработчиков, администраторов и пользователей, работающих с тяжелыми отчетами (ERP, УПП).
  2. Оставляйте 32-битный клиент только там, где это продиктовано использованием специфического оборудования (кассы, весы), для которого нет 64-битных драйверов.
  3. Всегда следите за тем, чтобы номер релиза платформы был идентичен на всех узлах системы.
  4. При разработке собственных внешних компонент всегда упаковывайте в макет обе версии библиотеки (x86 и x64), чтобы конфигурация была универсальной.

Таким образом, комбинированный режим — это нормальная практика в переходный период или при наличии технических ограничений со стороны периферийного оборудования.

← На главную