Как устранить ошибку HTTP при подключении мобильной платформы Android к серверу Apache

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

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

Проверка физической доступности сервера

Прежде чем приступать к коду и глубоким настройкам 1С, нам необходимо убедиться, что мобильный телефон и компьютер с установленным Apache "видят" друг друга. Рассмотрим основные сценарии:

  1. Единая локальная сеть. Проверим, подключен ли телефон к той же Wi-Fi сети, что и сервер. Это критически важно, так как по умолчанию устройства из разных сетей (например, мобильный интернет и домашний Wi-Fi) не могут обращаться друг к другу напрямую без дополнительных настроек.
  2. Проблема изоляции клиентов. В некоторых роутерах включена функция AP Isolation. Проанализируем настройки маршрутизатора: если эта опция активна, беспроводные устройства не смогут обмениваться данными, даже находясь в одной сети.
  3. Использование IP-адреса вместо имени ПК. Выясним важный нюанс: Android-устройства часто некорректно разрешают локальные сетевые имена Windows (NetBIOS). Поэтому в строке подключения всегда следует использовать статический IP-адрес сервера, например: http://192.168.1.47/MyMobileBase.

Настройка конфигурационного файла Apache (httpd.conf)

Одной из самых частых причин отказа в соединении является неправильная директива прослушивания портов в файле httpd.conf. Разберем по шагам, что нужно изменить:

По умолчанию Apache может быть настроен на прослушивание только локального адреса (loopback). Если в конфигурации указано Listen 127.0.0.1:80, сервер будет отвечать только на запросы внутри самого компьютера. Для работы с внешними устройствами необходимо заменить эту строку:


# Вместо локального адреса прописываем конкретный IP сервера в локальной сети
Listen 192.168.x.x:80 
# Или разрешаем прослушивание всех доступных интерфейсов
Listen 80

Также проанализируем блок разрешений доступа. В файле настроек Apache найдем секцию Directory, относящуюся к каталогу публикации. Убедимся, что там прописано Require all granted. Если указано Require local, телефон получит ошибку 403 при попытке доступа.

Подключение модулей 1С и публикация

Проверим правильность подключения модуля расширения веб-сервиса 1С. В файле httpd.conf должна присутствовать строка, указывающая на библиотеку wsap24.dll (для Apache 2.4). Важно, чтобы разрядность Apache и установленной платформы 1С совпадали (64-бит или 32-бит).

LoadModule _1cws_module "C:/Program Files/1cv8/8.3.x.xxxx/bin/wsap24.dll"

Рассмотрим процесс публикации базы. При выполнении команды "Публиковать" в Конфигураторе 1С создает файл default.vrd. Убедимся, что путь к базе и параметры подключения в нем указаны корректно. Иногда полезно переопубликовать базу после любого изменения версии платформы на сервере.

Настройка брандмауэра и антивируса

Даже если Apache настроен идеально, встроенный брандмауэр Windows может блокировать входящие HTTP-запросы. Посмотрим, как это исправить:

Соответствие версий мобильной и основной платформы

Практика показывает, что стабильность соединения сильно зависит от версии мобильной платформы. Если вы используете современную версию (например, 8.3.16+), но сталкиваетесь с зависаниями, рассмотрим вариант отката на проверенную стабильную версию, например, 8.3.15.62. При этом крайне желательно, чтобы на основном компьютере была установлена платформа той же редакции с включенным компонентом "Модули расширения веб-сервиса".

Альтернативные способы связи без "белого" IP

Если сервер и телефон невозможно объединить в одну Wi-Fi сеть, а арендовать выделенный IP у провайдера нет желания, разберем альтернативные методы:

  1. Ethernet over USB (USB-модем). Подключим телефон к компьютеру кабелем и включим в настройках Android режим "USB-модем". На компьютере появится виртуальный сетевой адаптер. Выясним его IP-адрес через команду ipconfig и укажем его в мобильной платформе.
  2. VPN-туннели. Использование VPN позволяет логически объединить устройства в одну сеть, независимо от их физического местоположения.
  3. Сервисы туннелирования (ngrok). Это современный способ "пробросить" локальный порт в интернет. Запустив утилиту, мы получим публичный адрес вида http://xxxx.ngrok.io, который будет переадресовывать запросы на наш локальный Apache.

Финальная проверка через браузер

Прежде чем запускать мобильную платформу 1С, выполним решающий тест: откроем браузер (Chrome или стандартный) на самом смартфоне и введем адрес публикации. Если сервер настроен верно, мы должны увидеть либо техническую страницу "It works!", либо XML-структуру файла описания базы 1С. Только после того, как браузер на телефоне успешно отобразил данные от Apache, стоит переходить к добавлению базы в приложение 1С. Это позволит четко разделить проблемы сетевого уровня и ошибки самой платформы 1С.

← На главную