Платформа 1С 32-битная или 64-битная: способы проверки

· 9 мин

Содержание

Внешняя компонента не подключается, COM-соединение падает с ошибкой, а в базе на сервере всё работает. Первый вопрос в такой ситуации один: какой у вас клиент, 32-разрядный или 64-разрядный. Битность 1С Предприятие 8.3 на Windows определяют за минуту, причём несколькими независимыми способами.

Быстрее всего посмотреть папку установки: C:\Program Files\1cv8 — это 64 бита, C:\Program Files (x86)\1cv8 — 32 бита. Если путь нестандартный, помогут диспетчер задач, PowerShell или вызов из самой 1С.

У самой информационной базы разрядности нет. Файл 1Cv8.1CD одинаково открывается любым клиентом, а на сервере база хранится в СУБД. Битность есть у платформы, у серверных процессов, у драйверов и компонент, которые с ней работают.

Зачем знать битность платформы

Разрядность влияет на три вещи: память, совместимость компонент и подключение через COM.

Что32 бита64 бита
Память одного процессаУпирается примерно в 2–4 ГБПрактически ограничена только оперативной памятью машины
Внешние компоненты и драйверыТолько 32-разрядныеТолько 64-разрядные
COM-соединениеПодключается к 32-разрядному процессуПодключается к 64-разрядному процессу
Тяжёлые отчёты и большие выгрузкиЧаще всего упираются в «Недостаточно памяти»Отрабатывают без таких падений

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

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

Проверка по папке установки и ярлыку

Это самый быстрый способ, он не требует прав администратора.

  1. Откройте проводник и перейдите на диск, где стоит 1С.
  2. Найдите папку 1cv8. В Program Files лежит 64-разрядная платформа, в Program Files (x86) — 32-разрядная.
  3. Внутри откройте папку с номером версии, например 8.3.24.1586, затем bin. Там лежат 1cv8.exe и 1cv8c.exe (тонкий клиент).

Если вы запускаете 1С с рабочего стола, щёлкните по ярлыку правой кнопкой и выберите «Свойства». В поле «Объект» указан полный путь к исполняемому файлу, а по пути видно, какая это папка.

На компьютере могут стоять обе версии рядом, потому что у них разные каталоги установки. Номера версий при этом бывают одинаковые. Не ориентируйтесь только на номер релиза.

Если платформу ставили в нестандартную папку, путь ничего не скажет. Переходите к следующему способу.

Диспетчер задач: смотрим на запущенный процесс

Этот способ показывает разрядность именно того клиента, который работает прямо сейчас.

  1. Запустите 1С и откройте базу.
  2. Нажмите Ctrl+Shift+Esc, чтобы открыть диспетчер задач.
  3. Перейдите на вкладку «Подробности» (в Windows 10 и 11). Если её не видно, нажмите «Подробнее» внизу окна.
  4. Найдите процесс 1cv8.exe или 1cv8c.exe.

У 32-разрядного процесса в имени или в описании добавляется пометка о 32-разрядности. У 64-разрядного такой пометки нет. Если колонки «Платформа» нет, щёлкните по заголовку таблицы правой кнопкой, выберите «Выбрать столбцы» и отметьте нужную.

На вкладке «Подробности» удобно и другое: правый щелчок по процессу, команда «Открыть расположение файла». Откроется папка, откуда запущен клиент.

Не завершайте процессы 1cv8.exe через диспетчер, пока в базе есть несохранённая работа. Документы, которые вы не успели провести, пропадут.

Командная строка и PowerShell

Ключа запуска, который выводит разрядность, в 1С нет. Зато ответ можно получить средствами Windows.

Сначала узнаем, откуда запущен процесс. Откройте PowerShell и выполните:

Get-Process 1cv8, 1cv8c -ErrorAction SilentlyContinue | Select-Object Id, Path

Если в пути есть Program Files (x86), клиент 32-разрядный.

Когда платформа лежит в нестандартной папке, прочитайте заголовок самого файла. Подставьте свой путь:

$p = "C:\Program Files\1cv8\8.3.24.1586\bin\1cv8.exe"
$b = [IO.File]::ReadAllBytes($p)
$o = [BitConverter]::ToInt32($b, 0x3C)
$m = [BitConverter]::ToUInt16($b, $o + 4)
if ($m -eq 0x8664) { "64 бита" } elseif ($m -eq 0x14c) { "32 бита" } else { "неизвестный тип: $m" }

Скрипт берёт из файла поле «тип машины»: значение 0x8664 означает 64 бита, 0x14c — 32 бита. Он ничего не меняет в системе и работает с любым исполняемым файлом, в том числе с comcntr.dll и с библиотеками внешних компонент.

Чтобы узнать, 64-разрядная ли сама Windows, выполните в обычной командной строке:

echo %PROCESSOR_ARCHITECTURE%

Результат AMD64 — система 64-разрядная, x86 — 32-разрядная. На 32-разрядной системе 64-разрядную платформу не поставить, поэтому в таком случае вопрос решается сразу.

Узнать разрядность из самой 1С

Если клиент запущен и вы хотите получить ответ изнутри, есть системная информация. В любой консоли кода (внешняя обработка «Консоль кода» или отладочная консоль, которая есть у многих администраторов) выполните:

Сообщить(СистемнаяИнформация().ТипПлатформы);

Вернётся значение вроде Windows_x86 для 32-разрядного клиента и Windows_x86_64 для 64-разрядного. Версия платформы в этом же объекте — свойство ВерсияПриложения.

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

Для бухгалтера, который просто жалуется на «вылетает при формировании отчёта», этот способ неудобен. Попросите его открыть диспетчер задач и назвать, что написано рядом с 1cv8.exe. Это быстрее любой консоли.

Реестр: какие версии установлены в системе

Список установленных платформ хранится в реестре, причём 32- и 64-разрядные программы записываются в разные ветки. Этот способ нужен администратору, когда клиента на машине нет в запущенном виде.

  1. Нажмите Win+R, введите regedit и подтвердите запуск.
  2. Откройте ветку HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall. Здесь записи 64-разрядных программ.
  3. Для 32-разрядных программ смотрите HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall.
  4. Ищите разделы, в параметре DisplayName которых есть «1С:Предприятие».

Если нужен только список, проще открыть «Приложения и возможности» в параметрах Windows и отсортировать по названию. Но реестр показывает точнее, из какой ветки пришла запись.

В реестре только смотрите. Удалять разделы вручную не нужно: деинсталлируйте платформу штатно, через программы и компоненты.

Разрядность сервера 1С и СУБД

С серверной частью вопрос ставится иначе. Нужно узнать две вещи: что за процессы запущены у сервера 1С и какая у вас СУБД.

Серверные процессы ragent.exe, rmngr.exe и rphost.exe проверяются так же, как клиент, через диспетчер задач или путь в PowerShell. Рабочие процессы rphost.exe — именно они потребляют память при работе пользователей.

Если не уверены в СУБД, спросите у неё самой.

Для Microsoft SQL Server выполните запрос:

SELECT SERVERPROPERTY('Edition');

В ответе будет, например, «Standard Edition (64-bit)».

Для PostgreSQL:

SELECT version();

В строке версии будет указана платформа сборки: x86_64 или аналогичная запись для 64 бит.

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

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

Как запустить базу нужной разрядностью

Когда на машине стоят обе платформы, база открывается той версией, которая указана для неё в списке запуска. Выбрать нужную можно в самом окне запуска.

  1. Откройте окно запуска 1С и выделите базу в списке.
  2. Нажмите «Изменить». Откроется окно с параметрами базы.
  3. Дойдите до последнего шага мастера и найдите поле выбора версии платформы. Там перечислены установленные версии.
  4. Выберите нужную и сохраните. Следующий запуск пойдёт уже в ней.

Если нужной версии в списке нет, платформа поставлена с другим набором компонент или в другую папку. Тогда запустите 1cv8.exe напрямую из нужного каталога bin.

Проверять результат всё равно стоит диспетчером задач: так вы увидите, какой процесс на самом деле стартовал, а не какой выбран в настройках. Это особенно важно, если вы переносите базу пользователю, у которого уже что-то работало и вы не уверены в его настройках.

Для перехода на 64 бита без риска работайте в таком порядке:

  1. Поставьте 64-разрядную платформу той же версии рядом с 32-разрядной.
  2. Откройте тестовую копию базы и воспроизведите типовые операции: печать, обмен, выгрузки в Excel, работу с оборудованием.
  3. Проверьте все внешние компоненты и COM-подключения.
  4. Только после этого меняйте версию в списке запуска у пользователей.

Старую 32-разрядную платформу не удаляйте, пока не убедитесь, что всё работает. Вернуться назад тогда можно одним изменением версии в списке запуска.

Что делать дальше с результатом

Определили разрядность и хотите понять, нужно ли что-то менять. Выберите свой случай.

Что у вас не работает?

Что чаще всего путают при проверке

Ошибок здесь немного, но они повторяются у разных пользователей.

  • 🔹 Путают разрядность Windows и платформы. 64-разрядная Windows прекрасно запускает 32-разрядную 1С. Видите Program Files (x86) — значит, клиент 32-разрядный, как бы ни была устроена система.
  • 🔹 Смотрят номер релиза вместо каталога. Платформа 8.3.24.1586 существует в обоих вариантах. Номер версии про разрядность ничего не говорит.
  • 🔹 Ищут разрядность у информационной базы. У базы её нет, об этом было выше. Когда пишут «база 64-битная», обычно имеют в виду клиент или СУБД.
  • 🔹 Забывают про Office. Excel и Word 32- и 64-разрядные ставятся из разных дистрибутивов. Если 1С 64-разрядная, а Excel 32-разрядный, COM-обмен между ними не заработает.
  • 🔹 Проверяют не тот ярлык. На рабочем столе бывает два ярлыка: на 32- и 64-разрядную платформу. Названия у них одинаковые, различается только путь в свойствах.
  • 🔹 Смотрят окно «О программе» в старом релизе. Там пометки о разрядности может не быть. Это не значит, что платформа 32-разрядная.

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

Чек-лист проверки

Разрядность 1С: что проверить
Выполнено: 0 / 6

Частые вопросы

Можно ли установить 32- и 64-разрядную платформу одновременно?
Да. Они ставятся в разные каталоги и не мешают друг другу. Информационную базу можно открывать любой из них.
Откроется ли файловая база, созданная 32-разрядным клиентом, в 64-разрядном?
Да. Формат файла 1Cv8.1CD от разрядности клиента не зависит.
Как быстро понять, какая платформа запущена, если пользователь не может объяснить?
Попросите открыть диспетчер задач, вкладку «Подробности», и прочитать пометку у процесса 1cv8.exe. Без пометки — 64 бита.
Почему 32-разрядный клиент работает с 64-разрядным сервером?
Клиент и сервер общаются по сети и не загружают код друг друга в свои процессы. Совпадения разрядности требуют только библиотеки, которые подгружаются в один процесс.
Нужно ли переходить на 64 бита всем?
Нет. Если клиент не упирается в память и все компоненты 32-разрядные, срочности нет. Выигрыш заметен на больших отчётах, тяжёлых обработках и выгрузках.
Проверил по папке, а в диспетчере задач другое. Кому верить?
Диспетчеру: он показывает реально запущенный процесс. Ярлык мог вести на другую установку.