Определяем разрядность платформы 1С:Предприятие

· 9 мин

Содержание

Разрядность установленной платформы быстрее всего видно по пути к исполняемому файлу: если 1cv8.exe лежит в C:\Program Files\1cv8\ — это 64 бита, а если в C:\Program Files (x86)\1cv8\ — 32 бита. На одном компьютере обе разрядности нередко стоят рядом, поэтому смотреть нужно именно на ту копию, которую вы запускаете.

Разрядность 1С влияет на подключение внешних компонент, COM-соединение, объём памяти, доступный серверным процессам, и требования к операционной системе. Вопрос «32 или 64 бита» обычно всплывает при настройке обменов, публикации базы и при диагностике нехватки памяти на сервере.

Главная путаница — разрядность Windows и разрядность 1С это не одно и то же. На 64-битной Windows спокойно работает 32-битная платформа 1С. Разрядность системы смотрят в Параметры → Система → О системе (строка «Тип системы»), а разрядность платформы считается отдельно — её и разберём ниже разными способами, под любой уровень доступа.

Где именно вам нужно узнать разрядность?

Путь к файлу и свойства ярлыка

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

  • 📁 C:\Program Files\1cv8\ — здесь лежит 64-битная платформа;
  • 📁 C:\Program Files (x86)\1cv8\ — здесь 32-битная.

Внутри каждой папки — подкаталоги по номерам версий, например 8.3.24.1548\bin\, а в них 1cv8.exe (толстый клиент и конфигуратор) и 1cv8c.exe (тонкий клиент). Если каталог Program Files\1cv8 вообще отсутствует, а есть только Program Files (x86)\1cv8 — значит, 64-битной платформы на машине нет.

С ярлыком на рабочем столе есть тонкость. Щёлкните по нему правой кнопкой → Свойства → вкладка Ярлык → поле Объект. Чаще всего там указан не сам клиент, а общий стартёр 1cestart.exe из каталога common. Стартёр сам по себе 32-битный и только выбирает нужную версию платформы при запуске, поэтому по ярлыку со стартёром разрядность рабочего клиента определить нельзя.

Если ярлык ведёт прямо на 1cv8.exe или 1cv8c.exe (такие ярлыки создают вручную под конкретную базу), то путь в поле Объект сразу показывает разрядность. Но для стандартного ярлыка со стартёром надёжнее методы ниже — через запущенную программу.

Ещё быстрый способ без запуска 1С: откройте проводником обе папки 1cv8 и посмотрите, какие версии там лежат. Так видно сразу все установленные варианты и их разрядность.

Окно «О программе» внутри 1С

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

  1. Откройте любую рабочую базу (или конфигуратор).
  2. В главном меню выберите Справка → О программе.
  3. В открывшемся окне указан номер версии платформы (например, 8.3.24.1548) и полный путь к исполняемому файлу.

Путь — это и есть ответ. Если он начинается с C:\Program Files\1cv8\ — у вас 64 бита, если с C:\Program Files (x86)\1cv8\ — 32 бита. Этот способ хорош тем, что показывает именно ту копию платформы, которая сейчас работает, а не ту, что в принципе установлена.

Главное меню в интерфейсе «Такси» прячется за кнопкой с тремя горизонтальными чёрточками в правом верхнем углу. Пункт Справка → О программе находится именно там, а не в отдельной строке меню.

Столбец «Платформа» в диспетчере задач

Диспетчер задач Windows умеет показывать разрядность любого процесса отдельным столбцом. Это удобно, когда 1С уже запущена, а лазить по путям не хочется.

  1. Нажмите Ctrl + Shift + Esc — откроется диспетчер задач.
  2. Перейдите на вкладку Подробности (при необходимости нажмите «Подробнее», чтобы развернуть окно).
  3. Щёлкните правой кнопкой по строке с названиями столбцов → Выбрать столбцы.
  4. Отметьте галочкой Платформа и нажмите ОК.
  5. Найдите в списке процесс 1cv8.exe (толстый клиент/конфигуратор) или 1cv8c.exe (тонкий клиент) и посмотрите значение в новом столбце: 32 бита или 64 бита.

Способ работает на Windows 10, Windows 11 и Windows Server 2016 и новее — там столбец «Платформа» есть по умолчанию в наборе доступных. Если процессов 1cv8.exe в списке несколько (запущено несколько сеансов), разрядность у них одинаковая только тогда, когда все они из одной папки платформы; при установленных 32- и 64-битной версиях сеансы могут различаться, и столбец это покажет. Значение относится ровно к тому процессу, который вы выделили, поэтому по нему удобно отличать, например, 32-битный тонкий клиент от 64-битного конфигуратора, если они запущены одновременно.

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

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

Через PowerShell для запущенного клиента:

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

Через устаревший, но ещё встречающийся WMIC:

wmic process where "name='1cv8.exe'" get Name,ExecutablePath

Чтобы увидеть сразу все установленные версии, не запуская 1С, перечислите содержимое обеих папок:

Get-ChildItem "C:\Program Files\1cv8", "C:\Program Files (x86)\1cv8" -ErrorAction SilentlyContinue -Name

Первая папка в выводе — версии 64-битной платформы, вторая — 32-битной. Если одна из команд завершилась ошибкой «путь не найден», значит, платформы соответствующей разрядности на машине просто нет.

WMIC в свежих сборках Windows объявлен устаревшим и может быть отключён. Если команда не отрабатывает — пользуйтесь вариантом на PowerShell, он доступен на всех поддерживаемых версиях системы.

Разрядность серверной 1С

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

Через свойства службы. Откройте services.msc, найдите службу «Агент сервера 1С:Предприятия 8.3» и зайдите в её Свойства. В строке Путь к исполняемому файлу указан ragent.exe. По папке — Program Files\1cv8 или Program Files (x86)\1cv8 — определяется разрядность сервера.

Через процессы в диспетчере задач. На сервере в столбце «Платформа» (как в разделе выше) посмотрите разрядность процессов кластера: агента ragent.exe, менеджера rmngr.exe и рабочих процессов rphost.exe. Именно rphost.exe выполняет пользовательские сеансы, и его разрядность важнее всего.

В промышленной эксплуатации сервер 1С почти всегда ставят 64-битным: 32-битный рабочий процесс упирается в потолок адресуемой памяти и начинает аварийно завершаться при больших отчётах и активной работе множества пользователей. 32-битный сервер оставляют разве что под старое оборудование или специфические внешние компоненты.

Чтобы узнать разрядность, службу трогать не нужно — просмотр свойств и процессов безопасен. Останавливать «Агент сервера 1С:Предприятия» нельзя во время рабочего дня: это разом оборвёт сеансы всех пользователей. Любые действия со службой планируйте на техническое окно.

Разрядность модуля веб-сервера при публикации базы

Если база опубликована и открывается через браузер, в игру вступает ещё одна разрядность — модуля расширения веб-сервера. При публикации 1С ставит на веб-сервер библиотеку из каталога bin платформы: wsap24.dll для Apache 2.4 или wsisapi.dll для IIS.

Здесь действует жёсткое правило: разрядность модуля должна совпадать с разрядностью самого веб-сервера, а не с разрядностью клиента. Под 64-битный Apache или IIS нужен 64-битный модуль из Program Files\1cv8\...\bin, под 32-битный — соответственно 32-битный.

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

  • Apache — в файле httpd.conf найдите строку с LoadModule _1cws_module. Путь к .dll в ней указывает на папку платформы, а по ней видна разрядность.
  • IIS — в разделе Сопоставления обработчиков (Handler Mappings) сайта публикации найдите обработчик 1С и посмотрите путь к библиотеке.

Несовпадение разрядностей — типичная причина, когда веб-сервер не стартует или база не открывается по ссылке, хотя в толстом клиенте всё работает. При публикации выбирайте модуль ровно той разрядности, что у самого Apache или IIS.

Чем отличаются 32- и 64-битная платформа

Разрядность — это не просто цифра в свойствах, она влияет на работу вполне ощутимо.

Параметр32 бита64 бита
Память на один процессоколо 2 ГБ (практический потолок для rphost)ограничена только ОЗУ сервера
Требование к ОСработает и на 32-, и на 64-битной Windowsтолько 64-битная Windows
Тяжёлые отчёты, большие обменывозможны сбои по памятизаметно стабильнее
Внешние компоненты, COMнужны 32-битныенужны 64-битные

Ключевые следствия на практике:

  • 🧮 Память. 32-битный процесс в принципе не умеет использовать больше ~2 ГБ. Для клиента на рабочем месте этого обычно хватает, а вот rphost под нагрузкой этот лимит пробивает — отсюда и переход серверов на 64 бита.
  • 🧩 Внешние компоненты. Разрядность подключаемой компоненты (Native API или COM) обязана совпадать с разрядностью платформы. 64-битная платформа не загрузит 32-битную компоненту и наоборот — это частая причина ошибки «не удалось подключить внешнюю компоненту».
  • 🔗 COM-соединение. Если сторонняя программа подключается к 1С через comcntr (COM-соединитель), разрядность соединителя должна совпадать с разрядностью подключающегося приложения. 32-битное приложение требует 32-битный comcntr.
  • 💻 Клиент. Для рядового пользователя 32-битный тонкий клиент работает без проблем. 64-битный клиент имеет смысл, когда пользователь формирует громоздкие отчёты или обрабатывает большие объёмы данных прямо на своём рабочем месте.

Если настраиваете COM-соединение, разрядность всплывёт ещё и при регистрации соединителя. Библиотека comcntr.dll лежит в том же каталоге bin, что и клиент, и регистрируется командой regsvr32. 64-битная версия регистрируется 64-битным regsvr32 из C:\Windows\System32, а 32-битная — вариантом из C:\Windows\SysWOW64. Если зарегистрировать соединитель не той разрядности, что у подключающегося приложения, соединение не установится, даже когда путь и логин указаны верно.

Когда выбирать 64 бита, если платформа ещё не установлена:

  • файловая база весит больше нескольких гигабайт, отчёты и обработки тяжёлые;
  • на сервере одновременно работают десятки пользователей и rphost упирается в память;
  • нужны 64-битные внешние компоненты или интеграции.

Во всех остальных случаях — одиночные рабочие места, небольшие базы, старые внешние компоненты только под 32 бита — разумно оставаться на 32-битной платформе.

Сменить разрядность несложно: нужную версию платформы доустанавливают обычным установщиком, старую можно не удалять — обе разрядности уживаются рядом. Формата данных это не касается: разрядность платформы никак не связана с форматом файловой или серверной базы, поэтому переход с 32 на 64 бита не требует конвертации и не меняет сами базы.

Отдельно про лицензию: платформа любой разрядности без действующей лицензии не запустит рабочую базу (исключение — учебная версия). Для серверной 64-битной 1С нужна соответствующая серверная лицензия — её уровень уточняйте по своему договору поставки.

Можно ли поставить 64-битную 1С на 32-битную Windows?
Нет. 64-битная платформа требует 64-битной операционной системы. На 32-битной Windows доступна только 32-битная 1С. А вот наоборот — 32-битную платформу на 64-битную систему — поставить можно.
На компьютере установлены обе разрядности. Какая запустится?
Общий стартёр 1cestart.exe сам выбирает версию по настройкам запуска. Чтобы точно узнать, что именно работает прямо сейчас, посмотрите путь в Справка → О программе открытой базы или разрядность процесса 1cv8c.exe в диспетчере задач.
Как узнать разрядность, если 1С вообще не запускается?
Откройте проводником папки C:\Program Files\1cv8 и C:\Program Files (x86)\1cv8. Наличие версий в первой говорит о 64-битной платформе, во второй — о 32-битной. То же самое покажет команда Get-ChildItem из раздела про командную строку.
Зачем вообще знать разрядность клиента?
Чаще всего — при настройке внешних компонент, печатных форм со сторонними библиотеками и COM-обменов. Там разрядность компоненты обязана совпасть с разрядностью платформы, иначе подключение не сработает.
Разрядность сервера и клиента должны совпадать?
Нет, это независимые величины. 32-битный клиент спокойно подключается к 64-битному серверу и наоборот. Совпадение разрядности требуется только для внешних компонент и COM в рамках одного процесса.