Разработка мобильных приложений на платформе 1С:Предприятие неизбежно сталкивает специалиста с необходимостью публикации базы на веб-сервере. Одной из самых распространенных проблем является ситуация, когда конфигурация успешно опубликована, но мобильное устройство при попытке подключения выдает ошибку: "Ошибка HTTP при обращении к серверу. Превышено время ожидания". В данной статье мы подробно разберем, как обеспечить стабильную связь между Android-устройством и сервером Apache, проанализируем настройки сети и конфигурационные файлы сервера.
Прежде чем приступать к коду и глубоким настройкам 1С, нам необходимо убедиться, что мобильный телефон и компьютер с установленным Apache "видят" друг друга. Рассмотрим основные сценарии:
AP Isolation. Проанализируем настройки маршрутизатора: если эта опция активна, беспроводные устройства не смогут обмениваться данными, даже находясь в одной сети.http://192.168.1.47/MyMobileBase.Одной из самых частых причин отказа в соединении является неправильная директива прослушивания портов в файле 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С. В файле 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. При этом крайне желательно, чтобы на основном компьютере была установлена платформа той же редакции с включенным компонентом "Модули расширения веб-сервиса".
Если сервер и телефон невозможно объединить в одну Wi-Fi сеть, а арендовать выделенный IP у провайдера нет желания, разберем альтернативные методы:
ipconfig и укажем его в мобильной платформе.http://xxxx.ngrok.io, который будет переадресовывать запросы на наш локальный Apache.Прежде чем запускать мобильную платформу 1С, выполним решающий тест: откроем браузер (Chrome или стандартный) на самом смартфоне и введем адрес публикации. Если сервер настроен верно, мы должны увидеть либо техническую страницу "It works!", либо XML-структуру файла описания базы 1С. Только после того, как браузер на телефоне успешно отобразил данные от Apache, стоит переходить к добавлению базы в приложение 1С. Это позволит четко разделить проблемы сетевого уровня и ошибки самой платформы 1С.