При работе с мобильной платформой 1С на терминалах сбора данных (ТСД) или смартфонах под управлением Android системные администраторы и разработчики часто сталкиваются с сообщением «Ошибка работы с интернет: Не могу установить соединение». Особенность ситуации заключается в том, что внешне всё выглядит исправно: сеть Wi-Fi активна, а встроенный браузер устройства без проблем открывает страницу сервера. В данной статье мы подробно разберем, почему возникает эта ошибка, и проанализируем все возможные пути её решения — от простых опечаток до глубоких настроек безопасности операционной системы.
Рассмотрим самую распространенную причину, которая часто ускользает от внимания из-за своей простоты. Начнем с анализа настроек подключения непосредственно в мобильном приложении. Проанализируем ситуацию: если на нескольких устройствах приложение работает корректно, а на одном — нет, первым делом следует сравнить настройки подключения «символ в символ».
Выясним причину на конкретном примере. При ручном вводе IP-адреса, особенно после очистки кэша или переустановки приложения, легко допустить ошибку. Например, вместо корректного адреса 192.168.1.110 может быть введено 192.168.110 или пропущена точка. Разберем по шагам, что нужно проверить:
Как показывает практика, именно невнимательность при вводе данных пользователем после «очистки данных приложения» становится причиной 90% подобных обращений. Однако, если адрес верный, перейдем к более сложным техническим аспектам.
Проанализируем технические ограничения современных версий Android (начиная с API 28 / Android 9.0 и выше). В этих версиях Google ввел жесткое ограничение на передачу данных в открытом виде (Cleartext Traffic). Если ваше мобильное приложение 1С пытается соединиться с сервером по протоколу HTTP, система может блокировать такие запросы на уровне ядра ОС, считая их небезопасными.
Разберем, как это лечится на уровне сборки мобильного приложения. Для корректной работы по HTTP необходимо создать или отредактировать файл конфигурации сетевой безопасности network_security_config.xml в ресурсах проекта. Посмотрим на пример конфигурации, которая разрешает передачу незашифрованного трафика:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</base-config>
</network-security-config>
Также важно убедиться, что в файле манифеста приложения AndroidManifest.xml присутствует ссылка на этот файл в атрибуте android:networkSecurityConfig. Без этой настройки мобильная платформа 1С может успешно запускаться, но любая попытка сетевого обмена будет приводить к ошибке соединения. Чтобы расширить стандартные возможности системы, можно использовать внешнюю компоненту Android tools, предоставляющую дополнительный инструментарий для работы с ОС.
Выясним роль компонента WebView в работе 1С. Мобильная платформа «1С:Предприятие» использует системный движок WebView для отрисовки интерфейса и выполнения некоторых сетевых функций. Если браузер Chrome на ТСД открывает страницу сервера, это еще не гарантирует, что WebView работает исправно, так как это разные (хоть и родственные) компоненты. Изучая пример использования HTML-интерфейса для мобильного приложения, можно увидеть, насколько глубоко WebView интегрирован в современные мобильные решения на базе 1С.
Рассмотрим алгоритм исправления:
WebView, если ошибка возникла после неудачного автоматического апдейта.Проанализируем специфику работы промышленных ТСД (Zebra, Honeywell и др.). Эти устройства спроектированы для экономии заряда батареи и могут агрессивно разрывать «неактивные», по мнению системы, соединения. Если мобильное приложение 1С уходит в фон или выполняет длительную обработку данных без сетевой активности, ОС может закрыть сокет.
Чтобы исключить влияние энергосбережения, выполним следующие действия:
Посмотрим на ситуацию со стороны сетевой инфраструктуры. Иногда проблема кроется в тонких настройках протоколов, которые по-разному обрабатываются браузером и системными библиотеками 1С. Разберем три ключевых фактора:
Напоследок разберем ситуацию, когда проблема может быть на стороне сервера, даже если «вчера всё работало». Если количество ТСД увеличилось, сервер Apache может достичь лимита одновременных подключений. При использовании браузерных технологий также полезно изучить опыт интеграции веб-клиента 1С с устройством Android, чтобы понимать, как устройство взаимодействует с сервером через веб-интерфейс.
Проанализируем файл конфигурации httpd.conf. Нам интересны параметры, отвечающие за удержание соединений. Посмотрим на пример настройки:
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
Если параметр MaxKeepAliveRequests слишком мал, а мобильное приложение часто обращается к серверу короткими запросами, сервер может начать сбрасывать новые попытки соединения. Увеличьте это значение и перезапустите службу Apache. Также проверьте логи ошибок Apache (error.log), чтобы увидеть, фиксирует ли сервер попытку подключения от IP-адреса проблемного ТСД. Если в логах тишина — значит, запрос от 1С не доходит до сервера вовсе, и проблему нужно искать в настройках сети или самого Android-устройства.
Подводя итог, можно сказать, что ошибка «Не могу установить соединение» требует комплексного подхода. Мы рекомендуем начинавать с самого простого — проверки корректности IP-адреса и доступности сервера через браузер, и только затем переходить к настройкам манифеста приложения, обновлению системных компонентов и конфигурированию сетевого оборудования.