Существуют ли риски одновременного использования 32-битных и 64-битных клиентов 1С в одной базе?

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

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

Взаимодействие клиентов различной разрядности с сервером 1С

С точки зрения архитектуры клиент-серверного взаимодействия платформы 1С:Предприятие, одновременно подключаться к 64-битному кластеру серверов могут как 32-битные (x86), так и 64-битные (x86_64) клиенты. Сервер 1С обрабатывает сеансы пользователей независимо от разрядности их клиентского приложения. Данные в базе хранятся единым образом, а бизнес-логика, исполняемая на стороне сервера, отрабатывает одинаково для всех подключенных сеансов.

Однако на стороне клиентского рабочего места между 32-битной и 64-битной версиями платформы существуют принципиальные технические различия, о которых необходимо помнить при разворачивании инфраструктуры.

Основные риски и ограничения 64-битного клиента 1С

Разберем основные трудности, с которыми можно столкнуться при использовании 64-битного клиента:

  1. Несовместимость с 32-битными внешними компонентами и драйверами оборудования: 64-битный процесс 1С не может напрямую загрузить 32-битную DLL-библиотеку. Это блокирует работу старых драйверов торгового оборудования (сканеров штрихкодов, электронных весов, эквайринговых терминалов), а также компонентов работы с TWAIN-сканерами.
  2. Проблемы с COM-автоматизацией (OLE DB, MS Office): Если в коде конфигурации используется обращение к 32-битным COM-объектам (например, 32-битный Microsoft Excel или старые библиотеки криптографии), 64-битный клиент 1С вернет ошибку при попытке создания объекта через COMОбъект.
  3. Повышенное потребление оперативной памяти: 64-битное приложение использует 64-битные указатели, из-за чего тот же самый объём структуры данных в памяти занимает больше места по сравнению с 32-битной версией. Для простого тонкого клиента это приводит к лишнему расходу ресурсов на рабочем месте.
  4. Несовместимость по MAPI при отправке почты: При вызове внешнего почтового клиента разрядность клиента 1С должна строго совпадать с разрядностью установленной почтовой программы (например, MS Outlook).

Преимущества 64-битной платформы и Конфигуратора

Несмотря на возможные проблемы с драйверами, использование 64-битной версии необходимо в следующих сценариях:

  1. Снятие ограничения в 3 ГБ оперативной памяти: 32-битный процесс Windows ограничен адресным пространством (обычно от 2 до 3 ГБ памяти на процесс). При выполнении тяжелых отчетов, групповых обработках или формировании больших деревьев значений 32-битный клиент может завершиться с ошибкой нехватки памяти (Out of Memory). 64-битная версия лишена этого лимита.
  2. Обновление и обслуживание тяжелых конфигураций: При сравнении и объединении больших конфигураций (например, Комплексная автоматизация, ERP или Управление торговлей) 32-битный Конфигуратор часто аварийно завершает работу. Для разработчиков и администраторов запуск 64-битного 1cv8.exe является критически важным условием для корректного проведения обновлений.

Способы решения проблем несовместимости

Посмотрим, какими методами можно обеспечить стабильную работу смешанной среды и устранить технические конфликты.

1. Переход на кроссплатформенные Native API компоненты

Для работы с внешним оборудованием и библиотеками рекомендуется использовать внешние компоненты, разработанные по технологии Native API и упакованные в ZIP-архив с манифестом MANIFEST.xml. Такой архив содержит версии библиотек как под x86, так и под x86_64. Платформа 1С автоматически определит свою разрядность и подгрузит нужную DLL.

Также при вызове метода подключения внешней компоненты выгодно использовать режим изоляции сеанса:


Результат = ПодключитьВнешнююКомпоненту("ОбластьПодключения", "ИмяКомпоненты", ТипПодключенияВнешнейКомпоненты.Изолированно);

Изолированное подключение запускает компоненту в отдельном процессе операционной системы, благодаря чему потенциальный сбой внутри библиотеки не приведет к падению самого клиента 1С.

2. Использование службы COM+ (dllhost.exe) для 32-битных библиотек

Если необходимо обратиться к 32-битной COM-библиотеке из 64-битного процесса (или наоборот), настраивают приложение COM+ в Windows (Службы компонентов / Component Services):

  1. Создают новое серверное приложение COM+ (COM+ Application).
  2. В контейнер приложения добавляют нужную 32-битную DLL.
  3. Windows запускает библиотеку в отдельном процессе dllhost.exe, а 64-битный клиент 1С обращается к ней через межпроцессное взаимодействие.

3. Отказ от COM-автоматизации Excel

Вместо вызова Новый COMОбъект("Excel.Application") при выгрузке и загрузке документов рекомендуется использовать встроенные средства 1С, например объект ТабличныйДокумент, который умеет программно читать и сохранять файлы формата .xlsx без зависимости от разрядности установленного пакетного офиса.

4. Четкое разделение ролей пользователей

Проанализировав потребности разных категорий сотрудников, выделим следующую практику распределения разрядностей:

  1. Кассиры, операторы складов, торговые точки: Устанавливается 32-битный тонкий клиент. Это гарантирует 100% совместимость со всеми торговыми эквайрингами, сканерами штрихкодов и фискальными регистраторами.
  2. Бухгалтеры, экономисты, аналитики: Рекомендуется 64-битный тонкий клиент для быстрой и бесперебойной работы с объемными отчетами и групповыми проведенными документами.
  3. Администраторы и программисты 1С: Используют 64-битный Конфигуратор и 64-битный клиент для предотвращения вылетов при сравнении/объединении конфигураций и тестировании реструктуризации базы данных.

Явно фиксировать разрядность клиента для каждой конкретной базы в диалоге запуска 1С (через файл 1cestart.exe) можно в настройках подключения базы, установив параметр "Основная скорость соединения" и принудительный выбор разрядности: 32 (x86) или 64 (x86_64).

← На главную