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

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

При попытке опубликовать информационную базу 1С:Предприятие на веб-сервере пользователи часто сталкиваются с критической ошибкой: "Невозможна публикация информационной базы на web сервере Apache при различной разрядности платформы (32) и веб сервера (64)". Эта ситуация кажется парадоксальной, особенно когда системный администратор уверен, что на сервере установлены только 64-битные компоненты. В рамках данной статьи мы подробно разберем, почему возникает этот конфликт, как правильно диагностировать разрядность установленной платформы и какие шаги необходимо предпринять для успешной публикации базы — для этого подойдёт решение для подключения через мобильный клиент.

Выясняем причину: почему возникает конфликт разрядностей?

Для начала проанализируем архитектуру взаимодействия 1С и веб-сервера. Когда мы нажимаем кнопку "Опубликовать" в Конфигураторе, система пытается подключить специальный модуль расширения (библиотеку wsap24.dll для Apache или wsisapi.dll для IIS) к процессу веб-сервера. Основное правило операционных систем заключается в том, что 64-битный процесс не может загрузить 32-битную динамическую библиотеку (DLL), и наоборот.

Рассмотрим типичную ситуацию: у вас установлена 64-битная Windows и 64-битный Apache. Однако, если вы используете Учебную версию 1С, важно помнить, что долгое время она выпускалась исключительно в 32-битном варианте. Даже если инсталлятор был запущен на мощном сервере, сама платформа осталась 32-битной. В результате Конфигуратор пытается "подсунуть" 64-битному Apache свою 32-битную библиотеку, что и вызывает ошибку.

Чтобы окончательно убедиться в разрядности вашей платформы, выполним следующие шаги:

  1. Откроем 1С в режиме Конфигуратора.
  2. Перейдем в меню Справка — О программе.
  3. Внимательно изучим строку с версией платформы. Если в скобках не указано явно "x86_64", значит, перед нами 32-битная версия (x86).

Решение 1: Установка Apache соответствующей разрядности

Если мы выяснили, что используемая платформа 1С имеет разрядность 32 бит (что характерно для учебных версий), самым простым и надежным решением будет приведение веб-сервера к аналогичному стандарту. Разберем по шагам, как это сделать:

  1. Удалим текущую 64-битную версию Apache.
  2. Скачаем дистрибутив Apache 2.4 (x86).
  3. Установим его и убедимся, что служба запускается корректно.
  4. Повторим попытку публикации из Конфигуратора.

В этом случае разрядности процесса Apache и библиотеки wsap24.dll совпадут, и веб-сервер сможет успешно обрабатывать запросы к базе 1С. Для автоматизации развертывания веб-сервера нужной конфигурации можно использовать скрипт установки Apache HTTP Server на Windows.

Решение 2: Ручная правка конфигурационного файла httpd.conf

Иногда графический интерфейс Конфигуратора ошибается при определении путей, даже если разрядности совпадают. Мы можем выполнить настройку вручную, проанализировав файл конфигурации Apache (обычно находится в папке conf/httpd.conf). Нам необходимо найти блок загрузки модуля 1С.

Проверим строку LoadModule _1cws_module. Обратите внимание на путь, указанный в кавычках:

Пример корректной строки для 32-битной платформы в 32-битном Apache:

LoadModule _1cws_module "C:/Program Files (x86)/1cv8/8.3.XX.XXXX/bin/wsap24.dll"

Если вы обнаружили, что путь ведет не в ту папку, поправьте его вручную и перезапустите службу Apache. Если Apache после этого отказывается запускаться (ошибка "The requested operation has failed"), значит, вы все же пытаетесь подключить библиотеку не той разрядности.

Решение 3: Использование утилиты командной строки webinst

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

Рассмотрим пример команды для публикации базы на Apache через командную строку (запускать нужно от имени администратора):


"C:\Program Files (x86)\1cv8\8.3.23.1865\bin\webinst.exe" -apache24 -wsdir MyBase -dir "C:\Apache24\htdocs\MyBase" -connstr "File=""D:\1CBases\MyBase"";" -confpath "C:\Apache24\conf\httpd.conf"

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

Решение 4: Настройка IIS (Internet Information Services)

Если вы предпочитаете использовать стандартный веб-сервер Windows (IIS), то проблема разрядности решается встроенными средствами управления пулами приложений. Выясним, как разрешить 32-битной 1С работать на 64-битном IIS:

  1. Откройте "Диспетчер служб IIS" (inetmgr).
  2. Перейдите в раздел Пулы приложений (Application Pools).
  3. Найдите пул, который используется вашей публикацией (обычно это DefaultAppPool, если вы не создавали отдельный).
  4. Нажмите на него правой кнопкой мыши и выберите Дополнительные параметры (Advanced Settings).
  5. Найдите пункт Разрешены 32-разрядные приложения (Enable 32-Bit Applications) и установите значение True.

После этого IIS сможет запускать 32-битные рабочие процессы, которые корректно загрузят библиотеку wsisapi.dll из папки Program Files (x86). Не забудьте также проверить "Отображения обработчиков" (Handler Mappings), чтобы путь к модулю 1С вел именно в x86 каталог платформы.

Важные ограничения для пользователей Учебной версии

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

Подводя итог, можно сказать, что решение проблемы всегда сводится к соблюдению единства архитектуры: либо всё 64-битное, либо мы принудительно заставляем 64-битные системы (такие как IIS) работать в режиме совместимости с 32-битными приложениями.

← На главную