При администрировании крупных систем на базе 1С часто возникает ситуация, когда на рабочих станциях пользователей установлены клиенты разной разрядности. Это может быть связано с постепенным обновлением парка ПК, требованиями конкретного торгового оборудования или спецификой тяжелых отчетов. В данной статье мы подробно разберем, насколько безопасна такая конфигурация, какие существуют ограничения и на что стоит обратить внимание системному администратору и программисту.
Рассмотрим основы взаимодействия клиентского приложения с сервером 1С:Предприятие. С технической точки зрения, серверу абсолютно не важна разрядность клиента. Обмен данными между толстым или тонким клиентом и сервером происходит через сетевые протоколы (обычно TCP/IP). Данные передаются в сериализованном виде, что обеспечивает полную независимость от архитектуры процессора на стороне пользователя.
Проанализируем основные условия для стабильной работы:
8.3.22.1709) на сервере и на всех клиентских машинах должен совпадать до последней цифры. Разрядность при этом может быть любой.Разберем ситуации, в которых использование 32-битного клиента (x86) становится невозможным или крайне затруднительным. Главное ограничение 32-битных систем — лимит адресного пространства памяти, который составляет около 2 ГБ на процесс (в редких случаях до 3.5 ГБ с ключом /3GB).
Выясним основные причины перехода на x64:
1С:ERP Управление предприятием, крайне требовательны к ресурсам. При выполнении реструктуризации базы или обновлении конфигурации в режиме «Конфигуратор», 32-битный клиент часто вылетает с ошибкой Out of memory.MXL размером 1 ГБ или не справиться с загрузкой тяжелых XML или JSON файлов при обмене данными.Это самый критический нюанс смешанного использования платформ. Рассмотрим, почему внешние компоненты (библиотеки .dll) привязаны к разрядности. Если ваша конфигурация использует драйверы для ККТ, сканеров штрихкодов или компоненты для защиты информации (криптографию), вы должны учитывать следующее:
32-битное приложение 1С может загрузить в свою память только 32-битную библиотеку. Соответственно, 64-битное приложение требует 64-битную версию той же компоненты. Если разработчик оборудования не выпустил 64-битную версию драйвера, ваш 64-битный клиент просто не сможет работать с этим устройством.
Проанализируем ситуацию на примере кода:
Попытка
ЗагрузитьВнешнююКомпоненту("ОбщийМакет.ДрайверЭквайринга", "Driver");
ОбъектДрайвера = Новый("AddIn.Driver.Extension");
Исключение
Сообщить("Не удалось загрузить компоненту. Проверьте разрядность клиента!");
КонецПопытки;
В данном случае, если в макете лежит только 32-битная библиотека, на 64-битном клиенте выполнение всегда будет уходить в блок Исключение.
Посмотрим на проблему интеграции. Если вы используете COM-объекты для связи с внешним миром (например, Excel или запуск другой базы 1С через V83.COMConnector), разрядность обоих приложений должна совпадать. Попытка вызвать 32-битный COM-объект из-под 64-битной 1С (и наоборот) часто приводит к ошибке регистрации класса, если не настроены специальные прослойки в COM+ (Component Services).
Разберем, как разрядность влияет на производительность клиентской машины:
Подводя итог, можно уверенно сказать: одновременная работа разрешена и безопасна для целостности базы данных SQL. Однако для стабильной эксплуатации системы мы рекомендуем придерживаться следующих правил:
Таким образом, комбинированный режим — это нормальная практика в переходный период или при наличии технических ограничений со стороны периферийного оборудования.