Как исправить ошибку разной разрядности 1С и Apache при публикации информационной базы?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При настройке веб-публикации информационной базы 1С на сервере Apache администраторы часто сталкиваются с парадоксальной ситуацией: в системе установлена 64-битная операционная система, используется 64-битный Apache и 64-битная платформа 1С:Предприятие, однако при попытке публикации через Конфигуратор возникает ошибка: «Невозможна публикация информационной базы на веб-сервере Apache при различной разрядности платформы (64) и веб-сервера (32)».

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

Метод 1. Проверка пути запуска Конфигуратора

Первым делом проанализируем, какой именно исполняемый файл используется для запуска Конфигуратора. В Windows 64-бит существуют две основные папки для установки программ:

Часто ярлык на рабочем столе или программа-загрузчик 1cestart.exe по умолчанию запускает 32-битную версию платформы, даже если установлена 64-битная. Если вы запустили 32-битный Конфигуратор, он будет пытаться найти 32-битный Apache и, не обнаружив его (или обнаружив 64-битный), выдаст ошибку о несоответствии разрядности.

Решение: Попробуйте запустить Конфигуратор напрямую из папки с 64-битной платформой. Путь будет выглядеть примерно так:

C:/Program Files/1cv8/8.3.XX.XXXX/bin/1cv8.exe

После запуска именно этого файла повторите попытку публикации через меню «Администрирование» — «Публикация на веб-сервере».

Метод 2. Переустановка модулей расширения веб-сервера

Выясним причину, связанную с составом установленных компонентов 1С. При установке платформы необходимо явно указывать компоненту «Модули расширения веб-сервера». Если вы ранее устанавливали 32-битную версию 1С с этими модулями, а затем обновились на 64-битную, в системе могли остаться старые регистрации библиотек.

Рассмотрим порядок действий для исправления:

  1. Запустите установку текущей 64-битной платформы 1С через «Установку и удаление программ» (выбрав пункт «Изменить»).
  2. Убедитесь, что в дереве компонентов выбран пункт «Модули расширения веб-сервера».
  3. Завершите установку.
  4. Проверьте папку bin вашей версии 1С. Там должен присутствовать файл wsap24.dll (для Apache 2.4) или wsap22.dll (для Apache 2.2).

Метод 3. Перерегистрация службы Apache

Иногда 1С не может корректно определить разрядность Apache, если служба была установлена некорректно или пути в реестре ведут к старым инсталляциям. Посмотрим на эффективный метод «чистой» перерегистрации службы Apache. Для этого запустите командную строку (cmd) от имени администратора, перейдите в папку bin вашего Apache и выполните команды:


httpd.exe -k uninstall
httpd.exe -k install

Это действие обновит записи в системном реестре, и Конфигуратор 1С сможет получить правильную информацию об установленном сервере. После этого обязательно перезапустите компьютер.

Метод 4. Ручная публикация базы (Обход ограничений GUI)

Если графический интерфейс Конфигуратора продолжает выдавать ошибку, мы можем выполнить публикацию вручную. Это наиболее надежный способ, так как он исключает ошибки алгоритмов проверки разрядности внутри самой оболочки 1С. Проанализируем этот процесс поэтапно.

Публикация состоит из двух частей: внесение изменений в файл httpd.conf веб-сервера Apache и создание файла описания виртуального ресурса default.vrd.

Шаг 1. Редактирование httpd.conf

Найдите файл конфигурации Apache (обычно находится в C:/Apache24/conf/httpd.conf). В самый конец файла необходимо добавить блок загрузки модуля 1С и описание пути к базе. Разберем пример для 64-битной платформы 8.3.18.1208 и Apache 2.4:


# Загрузка модуля расширения 1С
LoadModule _1cws_module "C:/Program Files/1cv8/8.3.18.1208/bin/wsap24.dll"

# Настройка публикации базы под именем MyWebBase
Alias "/MyWebBase" "C:/inetpub/wwwroot/MyWebBase/"
<Directory "C:/inetpub/wwwroot/MyWebBase/">
    AllowOverride All
    Options None
    Require all granted
    SetHandler 1c-application
    ManagedApplicationDescriptor "C:/inetpub/wwwroot/MyWebBase/default.vrd"
</Directory>

Важное замечание: Если вы используете Apache версии 2.2, вместо wsap24.dll используйте wsap22.dll, а строку Require all granted замените на Allow from all.

Шаг 2. Создание файла default.vrd

В папке, которую вы указали в Alias (в нашем примере это C:/inetpub/wwwroot/MyWebBase/), создайте текстовый файл с именем default.vrd. Рассмотрим его типовое содержимое для файловой базы:


<?xml version="1.0" encoding="UTF-8"?>
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
        xmlns:xs="http://www.w3.org/2001/XMLSchema"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        base="/MyWebBase"
        ib="File="C:\1C_Bases\MyBase";">
    <ws enable="true"/>
    <httpServices publishByDefault="true"/>
    <standardOdata enable="true"/>
</point>

Параметр ib должен содержать строку подключения к вашей базе (путь к папе для файловой или Srvr=...;Ref=...; для клиент-серверной версии).

Метод 5. Использование утилиты webinst

Проанализируем еще один профессиональный инструмент — консольную утилиту webinst, которая поставляется вместе с платформой 1С. Она позволяет выполнить публикацию без использования Конфигуратора, что часто помогает избежать ошибок определения разрядности.

Запустите командную строку от имени администратора и перейдите в bin 64-битной платформы. Выполните команду следующего вида:


webinst -apache24 -wsdir MyBase -dir "C:\inetpub\wwwroot\MyBase" -connstr "File='C:\1C_Bases\MyBase';" -confPath "C:\Apache24\conf\httpd.conf"

Разберем параметры команды:

Дополнительные факторы влияния

Если вышеуказанные методы не помогают, проанализируем системные настройки окружения:

  1. Реестр Windows: 1С ищет установленный Apache в ветке HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\. Если ваш Apache установлен простым копированием файлов (portable-версия), записей в реестре может не быть. В этом случае 1С по умолчанию считает его 32-битным. Рекомендуется использовать официальные инсталляторы (например, от Apache Lounge) или добавлять записи в реестр вручную.
  2. Visual C++ Redistributable: Для работы 64-битных библиотек wsap24.dll требуются пакеты распространяемого кода Visual C++ x64. Убедитесь, что в системе установлены версии VC++ (2015-2019) соответствующей разрядности.
  3. Права доступа: Убедитесь, что пользователь, под которым запущен Конфигуратор, имеет полные права на запись в папку с установленным Apache и в каталог, куда осуществляется публикация. Недостаток прав иногда маскируется системой под ошибку совместимости.

Таким образом, проблема «разной разрядности» чаще всего является следствием того, как 1С считывает информацию об окружении. Используя ручную правку конфигурации или утилиту webinst, вы сможете успешно опубликовать базу, игнорируя некорректные проверки встроенного мастера публикаций Конфигуратора.

← На главную