Как определить разрядность платформы и клиента 1С:Предприятие
Содержание
Разрядность клиента видно за десять секунд: откройте Диспетчер задач, вкладку «Подробности», и посмотрите на процесс 1cv8.exe — рядом с 32-битным стоит отметка «(32 бита)». Если нужна разрядность установленной платформы, достаточно взглянуть на путь: папка Program Files — это 64 бита, Program Files (x86) — 32.
Способов несколько, и выбор зависит от того, что именно вы проверяете: запущенный клиент, установленную платформу или серверную часть. Ниже — каждый метод с точными действиями, плюс отдельный разбор серверного кластера, где разрядность влияет на доступную память.
Зачем вообще знать, 32 или 64 бита у вашей 1С
Разрядность кажется мелочью, пока не упрётесь в конкретную проблему. Чаще всего вопрос всплывает в четырёх ситуациях:
- 🔌 Внешняя компонента или драйвер оборудования не подключается. Разрядность компоненты обязана совпадать с разрядностью клиента. 32-битная библиотека не загрузится в 64-битный процесс и наоборот.
- 🧮 Клиенту не хватает памяти на тяжёлых отчётах. 32-битный процесс упирается примерно в 2–3 ГБ адресного пространства. Большие выборки, объёмные печатные формы и СКД с миллионами строк 64-битному клиенту даются легче.
- 🔗 Не работает
COM-соединение (
comcntr.dll). Внешняя программа цепляется к 1С через COM-коннектор той же разрядности, что и она сама. 64-битный Excel не увидит 32-битный коннектор. - 🖨 Фискальный регистратор, сканер или крипто (КриптоПро CSP) ведут себя странно. Драйвер и CSP должны быть той разрядности, в которой запущен клиент.
Короткое правило: разрядность клиента, внешней компоненты, драйвера и COM-коннектора должна совпадать. Разрядность сервера от клиента не зависит — это две отдельные величины.
Поэтому и методов проверки несколько: вам нужно знать разрядность именно того звена, где возникла проблема.
Не путайте разрядность Windows и разрядность 1С. Это разные вещи. 64-битная Windows умеет запускать и 32-битную, и 64-битную 1С. Разрядность системы смотрят в Параметры → Система → О системе, строка Тип системы. Но она лишь говорит, какую 1С вы можете поставить, а не какую реально запустили. На 32-битной Windows 64-битная 1С не запустится в принципе; на 64-битной возможны оба варианта, и проверять нужно именно процесс 1С.
comcntr.dll должна быть той же разрядности, что и вызывающая программа. Определите разрядность программы, затем зарегистрируйте коннектор нужной версии.Меню «О программе»: точная версия платформы
Самое очевидное место — встроенная справка. В запущенной информационной базе откройте главное меню (кнопка со стрелкой в левом верхнем углу интерфейса «Такси»), раздел Справка → О программе.
Окно покажет точный номер версии платформы, например 8.3.23.1782. Этот номер — главное, что обычно и требуется: по нему вы понимаете, какой релиз установлен и какие разрядности он в принципе поддерживает.
Само окно «О программе» надёжно показывает версию, но не всегда явно подписывает разрядность процесса. Чтобы точно сказать «32 или 64», сверьте версию с одним из следующих способов — путём установки или Диспетчером задач.
Зачем тогда вообще открывать «О программе»? Чтобы зафиксировать точную версию: без неё вы не найдёте нужную папку bin и не поймёте, какую именно сборку платформы диагностируете. Запишите номер версии — он понадобится ниже.
Свойства ярлыка и путь установки
Это самый быстрый способ узнать разрядность установленной платформы, не запуская саму программу.
- Найдите ярлык 1С на рабочем столе или в меню «Пуск».
- Щёлкните по нему правой кнопкой →
Свойства. - Посмотрите поле
Объект(Target) на вкладкеЯрлык.
Путь будет вида:
"C:\Program Files\1cv8\8.3.23.1782\bin\1cestart.exe"
Читается он так:
- Папка
Program Filesбез «(x86)» — это 64-битная платформа. - Папка
Program Files (x86)— 32-битная.
Логика здесь системная: на 64-битной Windows 32-битные программы всегда ставятся в отдельный каталог Program Files (x86), а 64-битные — в обычный Program Files. 1С не исключение.
Если ярлык ведёт на 1cestart.exe — это общий лаунчер, который сам выбирает конкретную версию. Точную папку исполняемых файлов вы увидите по номеру версии из предыдущего раздела: ...\1cv8\<версия>\bin\. Внутри лежат 1cv8.exe (толстый клиент) и 1cv8c.exe (тонкий клиент) той разрядности, что и папка.
На одной машине могут стоять сразу обе разрядности — в Program Files\1cv8 и в Program Files (x86)\1cv8. Тогда важно, какую из них запускает конкретный ярлык или окно запуска.
Диспетчер задач Windows: разрядность запущенного клиента
Когда 1С уже работает, Диспетчер задач показывает разрядность процесса абсолютно точно — это не косвенный признак, а факт.
Откройте Диспетчер задач (Ctrl + Shift + Esc) и перейдите на вкладку Подробности (в старых системах — Процессы).
Способ быстрый. В списке процессов найдите 1cv8.exe или 1cv8c.exe. Рядом с именем 32-битного процесса Windows дописывает (32 бита). Если такой подписи нет — процесс 64-битный.
Способ надёжный. Добавьте отдельную колонку:
- Щёлкните правой кнопкой по заголовку любого столбца.
- Выберите
Выбрать столбцы. - Отметьте галочкой
Платформаи нажмитеОК.
В новой колонке напротив каждого процесса будет прямо написано «32 бита» или «64 бита». Это самый однозначный ответ для работающего клиента.
| Процесс | Что это |
|---|---|
1cv8c.exe | тонкий клиент (основной режим работы) |
1cv8.exe | толстый клиент / конфигуратор |
1cv8s.exe | автономный сервер (файловый режим публикации) |
Разрядность процесса 1cv8c.exe и разрядность процесса 1cv8.exe могут отличаться, если вы запускаете их из разных папок. Проверяйте именно тот процесс, который относится к вашей проблеме.
Если хотите заодно увидеть, откуда запущен процесс, добавьте колонку Путь к образу (Image path name) тем же способом — там будет полный путь к exe, а значит и каталог Program Files / Program Files (x86).
Командная строка и PowerShell
Способ для тех, кто диагностирует удалённо или хочет проверить всё одной командой.
Путь к запущенному процессу через PowerShell:
Get-Process 1cv8c, 1cv8 -ErrorAction SilentlyContinue | Format-Table Name, Path -AutoSize
Команда выведет имя и полный путь каждого процесса 1С. Дальше смотрите на каталог: Program Files (x86) — 32 бита, Program Files — 64.
То же через устаревший, но рабочий wmic:
wmic process where "name='1cv8c.exe'" get ExecutablePath, Name
Разрядность самого файла по PE-заголовку. Если процесс не запущен, можно прочитать архитектуру прямо из exe. В заголовке Portable Executable есть поле Machine: 0x8664 — это x64, 0x14C — x86. PowerShell-скрипт читает его без сторонних программ:
$path = "C:\Program Files\1cv8\8.3.23.1782\bin\1cv8c.exe"
$bytes = [System.IO.File]::ReadAllBytes($path)
$peOffset = [System.BitConverter]::ToInt32($bytes, 0x3C)
$machine = [System.BitConverter]::ToUInt16($bytes, $peOffset + 4)
switch ($machine) {
0x8664 { "64 бита" }
0x14C { "32 бита" }
default { "неизвестно" }
}
Подставьте в $path свой путь к 1cv8.exe или 1cv8c.exe — скрипт напечатает разрядность. Это работает для любого Windows-исполняемого файла, не только для 1С.
Для серверной службы путь к бинарнику удобно взять командой sc qc по имени службы — в строке BINARY_PATH_NAME будет каталог агента сервера. По нему так же читается разрядность.
Глубокий анализ: PE-заголовок и специальные утилиты
Если нужен разбор зависимостей, а не только разрядность, пригодятся готовые инструменты. Они полезны, когда компонента «не той» разрядности тянет за собой чужие библиотеки.
- CFF Explorer и PE Explorer — открывают
exe/dllи показывают поле Machine в заголовке PE наглядно, без скриптов. Удобны, чтобы проверить разрядность внешней компоненты (.dll) перед установкой. - Dependency Walker / Dependencies — показывают список зависимых библиотек и их разрядность. Так видно, какая именно
dllв цепочке не совпала по архитектуре. dumpbinиз состава Visual Studio / Windows SDK. Командаdumpbin /headers 1cv8.exeв строке сmachineвыведет8664 (x64)или14C (x86).
На практике для самой платформы 1С эти утилиты избыточны — путь установки и Диспетчер задач отвечают на вопрос быстрее. Но для диагностики сторонних компонент и драйверов, которые 1С подгружает, они незаменимы: именно рассогласование разрядности .dll чаще всего и ломает подключение оборудования.
Скачивайте такие утилиты только с официальных сайтов разработчиков. Инструменты анализа бинарников — частая обёртка для вредоносного ПО.
Разрядность сервера 1С и кластера
На сервере разрядность критичнее, чем на клиенте: от неё напрямую зависит объём памяти, доступный рабочим процессам.
Серверную часть представляют три процесса:
ragent.exe— агент сервера (служба, точка входа);rmngr.exe— менеджер кластера;rphost.exe— рабочий процесс, где и выполняется код конфигурации.
Проверить разрядность сервера можно теми же способами, но на самой серверной машине:
- Диспетчер задач сервера — вкладка
Подробности, колонкаПлатформанапротивrphost.exeиragent.exe. - Путь установки — служба агента запускается из
...\1cv8\<версия>\bin\ragent.exe; каталогProgram Files/Program Files (x86)даёт ответ. - Команда
sc qcпо имени службы агента — вBINARY_PATH_NAMEвиден полный путь.
Через консоль администрирования или утилиту rac разрядность напрямую не отображается: rac cluster list покажет кластер и его параметры, но не архитектуру бинарников. Для разрядности смотрите процесс или путь.
32-битный рабочий процесс rphost.exe ограничен примерно 2–3 ГБ памяти на процесс. Для продуктивной базы с заметной нагрузкой это узкое место: тяжёлые отчёты и фоновые задания упираются в потолок. 64-битный сервер таких ограничений лишён и для боевой эксплуатации предпочтителен.
Если на сервере несколько рабочих процессов, разрядность у них одинаковая — её задаёт установленная серверная платформа, а не настройки кластера. Менять разрядность сервера на ходу нельзя: это переустановка серверной платформы, которую планируют на технологическое окно, потому что остановка службы агента оборвёт все активные сеансы пользователей.
Как переключить разрядность клиента
Отдельный частый сценарий — не узнать, а сменить разрядность клиента. Если на машине установлены обе разрядности платформы, выбрать нужную можно в окне запуска.
- Откройте окно запуска 1С (список информационных баз).
- Нажмите кнопку
Настройка…. - Найдите параметр выбора разрядности клиента приложения — он позволяет задать «выбирать автоматически», 32-разрядный или 64-разрядный режим.
Название пункта в разных релизах платформы может немного отличаться, но смысл один: вы указываете, какой из установленных клиентов запускать. В режиме «выбирать автоматически» платформа при наличии обеих разрядностей обычно отдаёт предпочтение 64-битному клиенту.
После смены разрядности проверьте, что все внешние компоненты и драйверы оборудования установлены в соответствующей версии — иначе они перестанут подключаться. Разумный порядок: сначала убедитесь, что 64-битные версии нужных компонент существуют, и только потом переключайтесь. Если 64-битной версии критичного драйвера нет, оставайтесь на 32-битном клиенте — это рабочий и поддерживаемый режим, а не компромисс.
Если нужного клиента в списке разрядности нет, значит он просто не установлен. Тогда запустите установку платформы заново и в составе компонентов добавьте нужную разрядность — повторная установка поверх имеющейся не затрагивает информационные базы.
Частые вопросы
Можно ли поставить 32-битную 1С на 64-битную Windows?
Обязательно ли использовать 64-битный клиент?
Зависит ли разрядность клиента от разрядности сервера?
Почему внешняя компонента не загружается именно из-за разрядности?
.dll, и наоборот. Поставьте компоненту той же разрядности, что и клиент, который вы определили выше.Как понять разрядность COM-коннектора для внешней программы?
comcntr.dll должен совпадать по разрядности с программой, которая к нему обращается (например, Excel или внешний сервис). Определите разрядность этой программы через Диспетчер задач и зарегистрируйте коннектор соответствующей версии.