При работе с мобильными приложениями на платформе 1С программисты часто сталкиваются с ситуацией, когда после переустановки веб-сервера или обновления платформы мобильное устройство перестает «видеть» базу. При этом на экране смартфона появляется сообщение: «Ошибка работы с интернет: не могу установить соединение», а попытки отладки не приносят результата, так как устройство не отображается в списке доступных.
В этой статье мы подробно разберем, как диагностировать причины этой неисправности, проанализируем настройки веб-сервера Apache и выясним, почему браузер может выдавать ошибку «Not Found» (404) даже при работающем сервере.
Прежде чем погружаться в конфигурационные файлы, нам необходимо исключить проблемы на уровне сетевой инфраструктуры. Рассмотрим, как проверить связь между мобильным устройством и сервером.
Для начала убедимся, что телефон находится в той же локальной сети, что и сервер с установленным Apache. Часто ошибка возникает из-за того, что на смартфоне включена передача мобильных данных вместо Wi-Fi, либо устройство подключено к «гостевой» сети, которая изолирована от рабочей группы. Проверим адрес сервера: если в настройках указан IP-адрес вида 192.168.x.x, он будет доступен только внутри локальной сети.
Проанализируем доступность сервера через браузер на мобильном телефоне. Введем в адресную строку адрес корня веб-сервера, например: http://192.168.1.103/. Если мы видим стандартную надпись «It works!», значит, сам Apache запущен и принимает входящие запросы. Однако, если при попытке открыть адрес публикации (например, http://192.168.1.103/Obmen/) сервер возвращает «Not Found», проблема кроется в настройках публикации или путях.
Разберем важную особенность веб-сервера Apache: он крайне чувствителен к регистру символов в адресе. В отличие от IIS, для Apache строки /Obmen/ и /obmen/ — это разные ресурсы.
Выясним, соответствует ли адрес, указанный в мобильном приложении, тому, что прописано в файле конфигурации Apache. Если в 1С база опубликована с именем Obmen (с большой буквы), то обращение к ней по адресу http://192.168.1.103/obmen/ приведет к ошибке 404. Рекомендуем всегда использовать единый стандарт написания имен публикаций, чтобы избежать подобных ошибок.
Если корень сервера доступен, а публикация — нет, нам необходимо заглянуть «под капот» Apache. Перейдем в папку установки веб-сервера (обычно это C:\Apache24\conf\) и откроем файл httpd.conf.
В самом конце этого файла должны располагаться инструкции, добавленные платформой 1С при публикации. Проанализируем наличие блока Alias. Он должен выглядеть примерно так:
Alias "/Obmen" "C:/inetpub/wwwroot/Obmen/"
<Directory "C:/inetpub/wwwroot/Obmen/">
AllowOverride None
Options None
Order allow,deny
Allow from all
SetHandler 1c-application
ManagedApplicationDescriptor "C:/inetpub/wwwroot/Obmen/default.vrd"
</Directory>
Если этого блока нет, значит, публикация прошла некорректно. Рассмотрим ситуацию, когда после переустановки Apache старые настройки затерлись, а новые не прописались из-за отсутствия прав администратора у Конфигуратора 1С.
Особое внимание стоит уделить разрядности. Если вы используете 64-битную версию платформы 1С и 64-битную версию Apache, убедитесь, что в httpd.conf загружается соответствующая библиотека. Посмотрим на строку LoadModule. Она должна указывать на файл wsap24.dll, который находится в папке bin установленной платформы.
Важный нюанс: при публикации через Конфигуратор путь иногда прописывается с ошибками. Проверьте, чтобы в строке был указан именно файл .dll, а не просто папка. Пример правильной строки:
LoadModule _1cws_module "C:/Program Files/1cv8/8.3.16.1148/bin/wsap24.dll"
Если версия Apache — 2.4, то модуль должен называться именно wsap24.dll. Если вы по ошибке укажете путь к модулю от 32-битной платформы в 64-битном Apache, сервис не запустится или будет работать некорректно.
Проанализируем еще одну причину ошибки «Not Found» — отсутствие прав доступа. Веб-сервер Apache обычно запускается от имени системной учетной записи (System) или специального пользователя. Если у этой учетной записи нет прав на чтение папки, где лежит файл default.vrd, сервер выдаст ошибку доступа, которая часто интерпретируется как 404.
Выполним следующие действия для исправления:
C:\inetpub\wwwroot\Obmen).default.vrd внутри папки не помечен как «Только для чтения».Если публикация через графический интерфейс Конфигуратора не помогает, воспользуемся более надежным способом — утилитой командной строки webinst.exe. Это позволяет принудительно прописать все необходимые настройки в Apache.
Рассмотрим пример команды для публикации веб-сервисов (запускать от имени администратора):
"C:\Program Files\1cv8\8.3.16.1148\bin\webinst.exe" -apache24 -ws -wsdir Obmen -dir "C:\inetpub\wwwroot\Obmen" -connstr "Srvr=ServerName;Ref=BaseName;" -confPath "C:\Apache24\conf\httpd.conf"
В этой команде мы явно указываем тип сервера (-apache24), имя публикации (-wsdir) и путь к конфигурационному файлу Apache. Это гарантирует, что 1С правильно найдет место для записи настроек.
Несмотря на то, что в процессе диагностики брандмауэр может быть выключен, мы рекомендуем проверить настройки входящих соединений. Порт 80 (или 443 для SSL) должен быть открыт. Иногда антивирусное ПО блокирует загрузку сторонних модулей (DLL) в процессы веб-сервера. Попробуйте временно отключить защиту, чтобы выяснить, не является ли она препятствием для работы wsap24.dll.
Таким образом, решив проблему с видимостью каталога публикации через браузер (когда вместо «Not Found» вы начнете получать ответ от 1С или хотя бы пустую страницу без ошибки 404), вы автоматически восстановите связь и в мобильном приложении. Основной секрет успеха здесь заключается в последовательной проверке: Сеть -> Доступность порта -> Настройки Alias в Apache -> Права на папку публикации.