При попытке опубликовать информационную базу 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С имеет разрядность 32 бит (что характерно для учебных версий), самым простым и надежным решением будет приведение веб-сервера к аналогичному стандарту. Разберем по шагам, как это сделать:
В этом случае разрядности процесса Apache и библиотеки wsap24.dll совпадут, и веб-сервер сможет успешно обрабатывать запросы к базе 1С. Для автоматизации развертывания веб-сервера нужной конфигурации можно использовать скрипт установки Apache HTTP Server на Windows.
Иногда графический интерфейс Конфигуратора ошибается при определении путей, даже если разрядности совпадают. Мы можем выполнить настройку вручную, проанализировав файл конфигурации Apache (обычно находится в папке conf/httpd.conf). Нам необходимо найти блок загрузки модуля 1С.
Проверим строку LoadModule _1cws_module. Обратите внимание на путь, указанный в кавычках:
C:/Program Files (x86)/1cv8/... — используется 32-битный модуль.C:/Program Files/1cv8/... — используется 64-битный модуль.Пример корректной строки для 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"), значит, вы все же пытаетесь подключить библиотеку не той разрядности.
Как показывает практика, штатный механизм публикации в 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"
Разберем параметры этой команды:
-apache24 — тип используемого веб-сервера.-wsdir — виртуальный каталог, по которому база будет доступна в браузере.-dir — физический каталог на диске, где будут лежать файлы публикации (default.vrd).-connstr — строка соединения с базой данных.-confpath — путь к основному файлу конфигурации вашего Apache.Если вы предпочитаете использовать стандартный веб-сервер Windows (IIS), то проблема разрядности решается встроенными средствами управления пулами приложений. Выясним, как разрешить 32-битной 1С работать на 64-битном IIS:
DefaultAppPool, если вы не создавали отдельный).После этого IIS сможет запускать 32-битные рабочие процессы, которые корректно загрузят библиотеку wsisapi.dll из папки Program Files (x86). Не забудьте также проверить "Отображения обработчиков" (Handler Mappings), чтобы путь к модулю 1С вел именно в x86 каталог платформы.
Проанализируем еще один важный момент. Даже если вы успешно опубликовали базу, при попытке подключения через мобильный клиент или браузер вы можете получить ошибку доступа. Помните: Учебная версия 1С поддерживает только ОДИН активный сеанс. Это означает, что если у вас открыт Конфигуратор, то веб-клиент уже не сможет подключиться к этой же базе. Для тестирования веб-доступа обязательно закройте все окна Конфигуратора и другие сеансы работы с данной информационной базой — поможет удаленное завершение сеансов пользователей 1С.
Подводя итог, можно сказать, что решение проблемы всегда сводится к соблюдению единства архитектуры: либо всё 64-битное, либо мы принудительно заставляем 64-битные системы (такие как IIS) работать в режиме совместимости с 32-битными приложениями.