Перевод серверной части «1С:Предприятия» на 64-разрядную архитектуру (x64) — стандартный шаг при развитии ИТ-инфраструктуры предприятия. Это позволяет серверу использовать весь объем оперативной памяти и эффективно справляться с высокими нагрузками. Однако сразу после такого обновления перед системными администраторами встает вопрос: нужно ли в обязательном порядке обновлять клиентские приложения на рабочих станциях пользователей с 32 бит (x86) до 64 бит (x64)?
В этой статье мы подробно проанализируем технические нюансы взаимодействия клиента и сервера разной разрядности, взвесим все плюсы и минусы перехода на 64-битный клиент, а также рассмотрим возможные проблемы, с которыми можно столкнуться на практике.
Начнем с главного технического правила платформы «1С:Предприятие»: разрядность (битность) клиента и сервера не связана между собой и не обязана совпадать. Вы можете использовать абсолютно любую комбинацию архитектур:
Единственное жесткое и обязательное требование платформы — полное совпадение версии релиза платформы на клиенте и сервере. Например, если на сервере установлена версия 8.3.22.1709, то и на клиентском компьютере должна быть запущена именно версия 8.3.22.1709, независимо от разрядности.
Таким образом, чисто технически после обновления сервера на x64 ваши старые 32-битные клиенты продолжат успешно запускаться и работать без каких-либо доработок.
Если все работает «из коробки», зачем задумываться о переходе на x64? Основная и главная причина кроется в системных ограничениях адресации памяти.
Любой 32-битный процесс в операционной системе Windows имеет жесткое ограничение на объем используемой оперативной памяти — не более 2 ГБ (в редких случаях, при использовании специальных ключей операционной системы, лимит можно расширить до 3–4 ГБ). Если пользователю требуется обработать объем данных, превышающий этот лимит, работа программы аварийно завершается.
Рассмотрим подробнее преимущества, которые дает 64-битная версия клиента:
Для определения разрядности текущего сеанса в коде конфигурации мы можем использовать свойства системной информации. Разберем небольшой пример кода, помогающий программно определить тип запущенной платформы:
СистемнаяИнформация = Новый СистемнаяИнформация;
ТипПл = СистемнаяИнформация.ТипПлатформы;
Если ТипПл = ТипПлатформы.Windows_x86 Или ТипПл = ТипПлатформы.Linux_x86 Тогда
ЗаписьЖурналаРегистрации("ПроверкаРазрядности", УровеньЖурналаРегистрации.Предупреждение, , , "Используется 32-разрядный клиент. Возможны проблемы с памятью при формировании тяжелых отчетов.");
ИначеЕсли ТипПл = ТипПлатформы.Windows_x86_64 Или ТипПл = ТипПлатформы.Linux_x86_64 Тогда
ЗаписьЖурналаРегистрации("ПроверкаРазрядности", УровеньЖурналаРегистрации.Информация, , , "Используется стабильный 64-разрядный клиент.");
КонецЕсли;
Несмотря на очевидные плюсы работы с памятью, повальный и необдуманный перевод всех пользователей на 64-битные версии клиентов может парализовать работу некоторых подразделений. Выясним основные причины и риски:
.dll). Если производитель оборудования написал внешнюю компоненту только под 32-битную архитектуру, 64-битный клиент 1С физически не сможет ее загрузить. В итоге оборудование просто откажется работать, выдав ошибку инициализации драйвера. Это же касается и работы с двумерными штрихкодами (PDF417, QR, DataMatrix) на старых релизах библиотек.Если в вашей конфигурации активно используется прямой обмен данными с Excel или Word через COM-объекты, разрядность платформы 1С обязана совпадать с разрядностью установленного пакета Microsoft Office. Проанализируем типичный сценарий инициализации:
Excel = Новый COMОбъект("Excel.Application");
Если на компьютере пользователя установлен 32-разрядный MS Office, а вы запустили 64-битного клиента 1С, данная строка вызовет неустранимую ошибку «Класс не зарегистрирован» (или наоборот). Для исправления ситуации придется либо менять разрядность Office, либо возвращаться на 32-битный клиент.
Важно понимать, как именно запускается нужная версия платформы на компьютере пользователя. Даже если вы скачали и установили на ПК обе версии платформы (и x86, и x64), программа запуска 1cestart.exe по умолчанию имеет настройку приоритета.
В операционной системе Windows утилита запуска по умолчанию отдает приоритет 32-битной версии (настройка «Приоритет 32 (x86)»). Чтобы принудительно заставить базу запускаться в 64-битном режиме, выполните следующие шаги:
Посмотрим на общую картину и сформируем четкие рекомендации для системного администратора по принятию решения:
Оставляйте клиентов на 32-бит (x86), если:
Переводите клиентов на 64-бит (x64), если:
Наиболее взвешенным решением является гибридный подход: оставьте основную массу рядовых пользователей на надежной и менее требовательной к памяти 32-битной платформе, а требовательных аналитиков и бухгалтеров выборочно переведите на 64-битный клиент.