При администрировании инфраструктуры 1С:Предприятие 8.3 одним из ключевых вопросов является выбор разрядности платформы. Исторически сложилось так, что переход с 32-битных систем на 64-битные сопровождался множеством технических трудностей, связанных с совместимостью драйверов торгового оборудования, модулей печати штрихкодов и криптографических утилит. В этой статье мы подробно разберем, как соотносятся платформы x32 и x64 в современных реалиях, проанализируем проблемы совместимости и выработаем оптимальную стратегию для серверной и клиентской частей.
Рассмотрим базовое техническое ограничение, из-за которого большинство компаний начинают задумываться о переходе на платформу x64. Главным узким местом 32-разрядных приложений является лимит адресуемой оперативной памяти.
Любой 32-битный процесс (будь то клиентское приложение 1cv8.exe или рабочий процесс сервера rphost.exe) чисто физически не может адресовать более 4 ГБ оперативной памяти. На практике в операционных системах семейства Windows этот лимит еще жестче: процессу пользователя выделяется всего 2 ГБ (в редких конфигурациях с ключом /3GB — до 3 ГБ), а остальное резервируется под нужды ядра ОС.
Проанализируем типичную ситуацию из практики системного администрирования:
Если на сервере установлена 32-разрядная операционная система или используется только 32-битная платформа 1С, система начинает активно использовать виртуальную память (файл подкачки или так называемый "страничный обмен"). Это приводит к катастрофическому падению производительности дисковой подсистемы и зависанию сессий пользователей. При превышении лимита в 2 ГБ на процесс программа аварийно завершает работу с ошибкой "Недостаточно свободной памяти".
Выясним, почему долгое время стандартом де-факто в ИТ-индустрии являлась схема, при которой серверная часть 1С разворачивалась в 64-разрядном варианте, а на рабочих местах пользователей (или внутри терминальной сессии) устанавливался 32-разрядный клиент.
Разберем основные аргументы в пользу этой архитектуры:
rphost.exe обрабатывают запросы сотен пользователей, выполняют тяжелые фоновые задания, проводят закрытие месяца и формируют огромные временные таблицы. Использование x64-платформы на сервере снимает любые ограничения на использование ОЗУ, позволяя рабочим процессам задействовать все ресурсы физического сервера.Важно подчеркнуть, что в плане сетевого взаимодействия и совместимости у сочетания Сервер x64 / Клиент x32 нет никаких проблем. Тонкие и толстые клиенты разрядности x32 штатно подключаются к процессам сервера x64 и работают без потери производительности.
Рассмотрим известную проблему, которая долгие годы останавливала системных администраторов от перевода пользователей на 64-битные клиенты. Речь идет о печати машиночитаемых бланков регламентированной отчетности с двухмерным штрихкодом PDF417.
Исторически ГНИИВЦ (Главный научно-исследовательский вычислительный центр ФНС РФ) выпускал модуль печати двухмерных штрихкодов исключительно в виде 32-битного компонента ActiveX. При запуске 64-битного клиента 1С этот компонент просто не мог инициализироваться в адресном пространстве процесса, из-за чего печать деклараций становилась невозможной.
Как проблема решается сейчас:
Фирма "1С" полностью переработала механизм генерации и вывода штрихкодов. В современных типовых конфигурациях (начиная с релизов конца 2020 года) генерация PDF417 и других кодов выполняется с использованием кроссплатформенных средств на базе встроенного движка JavaScript и внутренних механизмов платформы. Это означает, что для печати современных документов больше не требуются устаревшие внешние 32-битные утилиты от ГНИИВЦ. На современных конфигурациях печать отлично работает как на x32, так и на x64-клиентах.
Еще одна классическая проблема — работа со средствами криптографической защиты информации (СКЗИ), такими как КриптоПро CSP или ViPNet CSP, при отправке отчетов напрямую из программы 1С.
В старых версиях платформы и СКЗИ взаимодействие между 1С и криптопровайдером происходило через промежуточные библиотеки, которые жестко требовали соответствия разрядности. Если пользователь работал под 64-битной платформой 1С, компоненты отправки отчетности могли выдавать ошибки инициализации криптографии, из-за чего приходилось держать на компьютере отдельный 32-битный клиент для бухгалтера.
Посмотрим на текущую ситуацию по шагам:
1С-Отчетность (разрабатываемый совместно с АО "Калуга Астрал") полностью оптимизирован под современные стандарты криптографии и стабильно работает на x64-клиентах.Проанализируем распространенное заблуждение, встречающееся среди начинающих администраторов 1С. Иногда при переходе с файловой базы данных на клиент-серверный вариант планируется установка 32-разрядной версии MS SQL Server (как упоминается в некоторых сообщениях на форумах).
Важно знать:
Использование 32-битных версий СУБД в современных условиях недопустимо и физически невозможно для актуальных версий программного обеспечения. Корпорация Microsoft полностью прекратила поддержку и выпуск 32-разрядных версий MS SQL Server. Последней версией, имевшей x86-архитектуру, была версия SQL Server 2014. Все последующие выпуски (SQL Server 2016, 2019, 2022) выпускаются исключительно в 64-разрядном варианте.
Попытка развернуть базу данных 1С на устаревшей 32-битной СУБД приведет к жесткому ограничению кэша данных в оперативной памяти (не более 1.6 ГБ на буферный пул СУБД), что мгновенно парализует работу системы при одновременной работе даже нескольких пользователей.
Выясним, есть ли разница в скорости обработки операций при переходе на 64-битную платформу, если отбросить фактор объема оперативной памяти.
Прямое сравнение чистой вычислительной мощности процессора при выполнении стандартных алгоритмов 1С показывает схожие результаты для обеих архитектур. Простые математические операции и циклы выполняются с сопоставимой скоростью. Однако на реальных базах данных в условиях промышленной эксплуатации x64-платформа показывает значительное преимущество за счет следующих факторов:
Ранее серьезным препятствием для внедрения x64-клиентов на рабочих местах кассиров было отсутствие 64-битных драйверов для фискальных регистраторов (ККТ), сканеров штрихкодов и эквайринговых терминалов. Производители оборудования поставляли только 32-разрядные библиотеки динамической компоновки (DLL).
Сегодня ситуация кардинально изменилась. Согласно современным требованиям сертификации "1С:Совместимо", разработчики торгового оборудования обязаны предоставлять драйверы, написанные по технологии Native API. Такие драйверы содержат в своем составе как 32-битные, так и 64-битные компоненты. Платформа 1С автоматически загружает нужную библиотеку в зависимости от разрядности запущенного клиентского приложения.
Подводя итог нашему анализу, сформулируем четкие правила для развертывания платформы 1С:Предприятие 8.3:
rphost, позволит использовать весь объем ОЗУ сервера и защитит систему от аварийных завершений по нехватке памяти.