Разрядность платформы 1С:Предприятие: проверка на рабочем месте, сервере и в Linux
Содержание
Быстрее всего узнать битность 1С в окне «О программе»: в запущенной базе нажмите значок ? в правом верхнем углу (или меню с тремя полосками) → О программе. У 64-разрядной платформы рядом с номером версии стоит пометка x86-64, у 32-разрядной её нет. Второй способ без входа в базу — папка установки: C:\Program Files\1cv8\ для 64 бит и C:\Program Files (x86)\1cv8\ для 32 бит.
Разрядность есть у каждой части системы отдельно: у толстого и тонкого клиента , у сервера 1С, у расширения веб-сервера и у самой Windows. На одном компьютере могут стоять обе платформы одной версии, поэтому «что установлено» и «что сейчас запущено» — разные вопросы. Ниже способы для каждого случая, для 1С 8.3 и 8.2, на Windows и Linux.
Зачем знать разрядность 1С и где она влияет на работу
Битность платформы 1С редко интересна сама по себе. Её проверяют, когда что-то не работает или перед обновлением.
Типичные поводы:
- 🧠 Нехватка памяти. 32-разрядный процесс получает около 2–4 ГБ адресного пространства. Большие отчёты, загрузка .dt, закрытие месяца в крупной базе упираются в этот потолок и падают с ошибкой о нехватке памяти.
- 🔌 Внешние компоненты и драйверы. Старые драйверы торгового оборудования, ККТ и сканеров часто выпущены только в 32-битном варианте. 64-разрядный клиент их не загрузит.
- 🔗 COM-соединение. Библиотеку
comcntr.dllрегистрируют под ту же разрядность, что и вызывающая программа. Excel 32 бит не увидит COM-коннектор 64 бит. - 🌐 Публикация на веб-сервере. Модуль
wsap24.dllдолжен совпадать по разрядности с Apache или пулом IIS. - 🗄️ ODBC и внешние источники данных. Драйвер ODBC нужен той же разрядности, что и процесс 1С, который к нему обращается.
- 🔑 Лицензия сервера. Лицензия на 32-разрядный сервер 1С не подходит для 64-разрядного. Клиентские лицензии от битности не зависят.
Про версии. В 1С 8.2 клиентские приложения для Windows были только 32-разрядными, 64 бит существовал лишь у сервера. В 8.3 появились 64-разрядные толстый и тонкий клиент, сейчас дистрибутивы выпускают в обоих вариантах.
Как узнать битность 1С 8.3 на компьютере с Windows
Способы ниже не требуют прав администратора и работают для толстого и тонкого клиента.
Окно «О программе»
- Откройте базу в режиме 1С:Предприятие.
- В интерфейсе «Такси» нажмите
?в правом верхнем углу, выберитеО программе. - Посмотрите на строку с версией платформы. Пример для 64 бит:
1С:Предприятие 8.3 (x86-64) (8.3.24.1586). Для 32 бит пометки(x86-64)нет.
В том же окне указан тип клиента: тонкий, толстый или веб-клиент. Это пригодится, если пользователь не знает, чем он запускает базу.
Диспетчер задач
Способ показывает разрядность именно запущенного процесса.
- Нажмите
Ctrl+Shift+Esc. - На вкладке «Процессы» найдите 1С. У 32-разрядных программ Windows дописывает к имени
(32 бита). - Для точности откройте вкладку «Подробности», щёлкните правой кнопкой по заголовку любого столбца →
Выбрать столбцы→ отметьте «Платформа». В столбце появятся значения «32 бита» или «64 бита».
Имена процессов 1С:
| Процесс | Что это |
|---|---|
1cv8.exe | толстый клиент и конфигуратор |
1cv8c.exe | тонкий клиент |
1cv8s.exe | стартер, который выбирает нужную версию |
ragent.exe, rmngr.exe, rphost.exe | агент, менеджер кластера и рабочие процессы сервера |
Стартер 1cv8s.exe сам может быть 32-разрядным, а базу запускать в 64-битном клиенте. Смотрите на 1cv8.exe или 1cv8c.exe, а не на окно выбора базы.
Папка установки
Откройте свойства ярлыка 1С или найдите файл через проводник:
C:\Program Files\1cv8\8.3.xx.xxxx\bin\— 64-разрядная платформа;C:\Program Files (x86)\1cv8\8.3.xx.xxxx\bin\— 32-разрядная.
Если номера версий есть в обеих папках, на компьютере стоят обе разрядности. Какая из них откроет конкретную базу, решают настройки списка баз (об этом ниже).
«Программы и компоненты»
В Панель управления → Программы и компоненты (или Параметры → Приложения) 64-разрядная платформа записана как 1C:Предприятие 8 (x86-64) (8.3.xx.xxxx). Запись без x86-64 — 32-разрядная.
Проверка битности платформы через конфигуратор и встроенный язык
Конфигуратор
В конфигураторе меню классическое: Справка → О программе. Окно то же, что и в пользовательском режиме, с той же пометкой x86-64 для 64 бит.
Встроенный язык: точный ответ для клиента и сервера
Окно «О программе» показывает клиент. Чтобы одновременно узнать разрядность сервера 1С, удобна внешняя обработка. Создайте её в конфигураторе (Файл → Новый → Внешняя обработка), добавьте форму, команду и такой код модуля формы:
&НаКлиенте
Процедура ПроверитьРазрядность(Команда)
СИ = Новый СистемнаяИнформация;
Сообщить("Клиент: " + Строка(СИ.ТипПлатформы) + ", версия " + СИ.ВерсияПриложения);
Сообщить("Сервер: " + ТипПлатформыСервера());
КонецПроцедуры
&НаСервереБезКонтекста
Функция ТипПлатформыСервера()
СИ = Новый СистемнаяИнформация;
Возврат Строка(СИ.ТипПлатформы) + ", версия " + СИ.ВерсияПриложения;
КонецФункции
Свойство ТипПлатформы возвращает значения вида Windows_x86, Windows_x86_64, Linux_x86_64. Суффикс _64 означает 64 бит.
В файловой базе серверный код выполняется в том же процессе, что и клиент. Обе строки покажут одно и то же, и это нормально: отдельного сервера там нет.
Разрядность 1С в реестре Windows и через PowerShell
Способ для администратора, которому нужно проверить много компьютеров или сделать это удалённо.
64-разрядные программы Windows регистрирует в ветке:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
32-разрядные — в ветке с WOW6432Node:
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall
В regedit откройте обе ветки и найдите подразделы, где параметр DisplayName содержит «1C». В какой ветке нашлась платформа, такая у неё и разрядность.
То же одной командой PowerShell:
$paths = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*',
'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*'
Get-ItemProperty $paths -ErrorAction SilentlyContinue |
Where-Object { $_.DisplayName -like '*1C*' } |
Select-Object DisplayName, DisplayVersion, InstallLocation
InstallLocation с Program Files (x86) — 32 бит, без него — 64 бит.
Для уже запущенных процессов достаточно посмотреть путь к исполняемому файлу:
Get-Process 1cv8, 1cv8c, rphost -ErrorAction SilentlyContinue |
Select-Object Name, Id, Path
Реестр здесь только читаем. Удалять или править записи 1С вручную не нужно: для удаления платформы есть штатный деинсталлятор в «Программах и компонентах».
Как определить битность 1С на Linux
На Linux 1С 8.3 почти всегда 64-разрядная, но проверить стоит, особенно на старых серверах.
По пути установки. Начиная с единого дистрибутива 8.3.20 платформа ставится в /opt/1cv8/x86_64/<версия>/. В более старых сборках из пакетов путь был /opt/1C/v8.3/x86_64/ для 64 бит и /opt/1C/v8.3/i386/ для 32 бит.
По пакетам. В Debian и Ubuntu:
dpkg -l | grep -i 1c-enterprise
В столбце архитектуры будет amd64 (64 бит) или i386 (32 бит). В RHEL-подобных системах:
rpm -qa | grep -i 1c-enterprise
Суффикс x86_64 или i386 в имени пакета даёт ответ.
По самому файлу. Утилита file показывает формат исполняемого файла:
file /opt/1cv8/x86_64/8.3.*/ragent
Ответ ELF 64-bit LSB — 64 бит, ELF 32-bit LSB — 32 бит.
Запущенные процессы сервера с полным путём:
ps -eo pid,user,args | grep -E 'ragent|rmngr|rphost' | grep -v grep
Разрядность самой системы покажет uname -m: x86_64 — 64 бит. На 32-разрядной ОС 64-разрядная 1С не запустится в принципе.
Битность сервера 1С, тонкого клиента и веб-клиента
Сервер 1С:Предприятия
На Windows проще всего открыть services.msc. У 64-разрядного сервера в имени службы есть пометка: «Агент сервера 1С:Предприятия 8.3 (x86-64)». Без пометки — 32 бит.
Второй способ — тот же диспетчер задач: столбец «Платформа» для ragent.exe, rmngr.exe и rphost.exe. Третий — обработка из раздела про встроенный язык: строка «Сервер» покажет Windows_x86_64 или Windows_x86.
Разрядность сервера не связана с разрядностью клиентов. К 64-битному серверу подключаются 32-битные клиенты и наоборот. Важно, чтобы совпадали версии платформы, а не битность.
Тонкий клиент
Тонкий клиент проверяют так же, как толстый: окно «О программе», процесс 1cv8c.exe в диспетчере задач, папка установки. Отдельный дистрибутив тонкого клиента тоже выпускается в двух вариантах.
Веб-клиент
У веб-клиента разрядности нет: он работает в браузере, и битность самого браузера на 1С не влияет. Значение имеют две вещи на стороне сервера:
- 🌐 Модуль расширения веб-сервера (
wsap24.dllдля Apache 2.4,wsisapi.dllдля IIS) берётся из той же разрядности платформы, что и веб-сервер. 64-битному Apache нужен модуль из 64-битной платформы. - ⚙️ Пул приложений IIS. В дополнительных параметрах пула есть флаг «Разрешить 32-разрядные приложения». Если публикация сделана 32-битным модулем, флаг включают; для 64-битного модуля — выключают.
Несовпадение разрядности модуля и веб-сервера — частая причина того, что публикация не открывается совсем, хотя файл default.vrd настроен верно.
Как перейти с 32-bit на 64-bit 1С
Переход не затрагивает базу: данные и конфигурация от разрядности платформы не зависят. Меняется только программа.
Порядок для рабочего места
- Проверьте Windows:
Win+PauseилиПараметры → Система → О программе, строка «Тип системы» должна содержать «64-разрядная операционная система». - Скачайте дистрибутив 64-разрядной платформы той же версии, что используется сейчас. Для этого нужен доступ к порталу обновлений по договору сопровождения.
- Установите его через
setup.exe. 32-разрядную версию можно не удалять: обе живут в разных папках. - Откройте список баз, выделите базу →
Изменить→Далее. На странице с версией платформы есть поле «Разрядность» со значениями «Любая», «32 (x86)», «64 (x86-64)». Выберите 64 бит явно. - Запустите базу и проверьте «О программе».
- Проверьте подключаемое оборудование, внешние компоненты и обмены через COM. Если что-то перестало работать, найдите 64-битную версию драйвера или оставьте для этой базы 32 бит.
Порядок для сервера 1С
Здесь уже нужен простой системы. Остановка службы агента обрывает все сеансы пользователей, поэтому переход планируют на нерабочее время и заранее предупреждают людей.
- Сделайте резервные копии баз средствами СУБД и сохраните каталог кластера
srvinfo— в нём список баз и настройки кластера. - Проверьте лицензию: для 64-разрядного сервера нужна лицензия на 64-разрядный сервер.
- Остановите службу 32-разрядного агента.
- Установите 64-разрядный сервер той же версии и укажите тот же каталог
srvinfoи ту же учётную запись службы. - Запустите новую службу, откройте консоль администрирования и убедитесь, что список баз на месте.
- Перерегистрируйте
comcntr.dllи пересоберите веб-публикации, если они были.
Если внешние программы подключаются к 1С через COM, регистрируйте comcntr.dll из папки той разрядности, что и программа-клиент. Командная строка от имени администратора: regsvr32 "C:\Program Files\1cv8\8.3.xx.xxxx\bin\comcntr.dll".
Частые ошибки при проверке разрядности
- ❌ Путают битность Windows и битность 1С. 64-разрядная Windows спокойно запускает 32-разрядную 1С. «Тип системы» в свойствах компьютера ничего не говорит о платформе.
- ❌ Смотрят на установленное, а не на запущенное. Обе версии стоят рядом, а база настроена на «Любая» или на 32 бит. Проверяйте через «О программе» или диспетчер задач во время работы.
- ❌ Проверяют клиент, когда проблема на сервере. Ошибки нехватки памяти при проведении и закрытии месяца в клиент-серверной базе возникают в
rphost, а не на компьютере пользователя. - ❌ Регистрируют
comcntr.dllне той разрядности. Регистрация проходит без ошибок, но внешняя программа всё равно не создаёт объектV83.COMConnector. - ❌ Берут модуль веб-публикации «откуда удобно». Публикацию делают из 32-разрядного конфигуратора, а Apache стоит 64-битный.