Как решить проблему «Превышено время ожидания» при подключении мобильного приложения «1С:Заказы» к «1С:Управление торговлей»?

Системный администратор 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

При настройке синхронизации мобильного приложения «1С:Заказы» с типовой конфигурацией «1С:Управление торговлей 11.4» технические специалисты часто сталкиваются со следующей проблемой. Публикация базы на веб-сервере (IIS или Apache) выполнена успешно, WSDL-описание веб-сервиса по адресу вида /ws/CustomerOrdersExchange?wsdl без проблем открывается на компьютере через любой браузер. Однако при попытке первичного подключения с мобильного устройства приложение выдает критические ошибки: «Превышено время ожидания» (Timeout) или «Connection reset».

В этой статье мы подробно разберем, почему возникают подобные сбои связи, проанализируем неочевидные сетевые нюансы и по шагам настроим всю цепочку взаимодействия между мобильным клиентом и базой 1С.

Выясняем причину: сетевая доступность и разные подсети

Проанализируем классическую ситуацию, описанную пользователями на практике. Сервер с опубликованной базой 1С имеет IP-адрес 192.169.0.230, а мобильный телефон, подключенный по корпоративному Wi-Fi, получает адрес 192.68.22.1. На первый взгляд оба устройства находятся внутри одной организации, но их IP-адреса принадлежат к абсолютно разным подсетям.

Рассмотрим, почему это критично:

  1. По умолчанию пакеты данных между разными подсетями не могут передаваться напрямую без настроенного маршрутизатора (шлюза). Телефон банально «не видит» сервер 1С в сетевом окружении.
  2. Если на предприятии развернуто несколько Wi-Fi-точек доступа или гостевая сеть изолирована от рабочей группы, мобильные устройства будут изолированы от серверов баз данных.

Решение: Для устранения этой преграды переведите мобильное устройство в ту же физическую подсеть, где находится веб-сервер (первые три октета IP-адреса должны совпадать, например, оба устройства в подсети 192.168.1.x). Если это невозможно из соображений безопасности, обратитесь к системному администратору для настройки статической маршрутизации между подсетями на вашем сетевом оборудовании.

Настройка брандмауэра Windows 10/Server для других подсетей

Даже если маршрутизация между подсетями настроена верно, вы все равно можете столкнуться с ошибкой сброса соединения. В современных операционных системах, таких как Windows 10 или Windows Server, встроенный защитник (Windows Defender Firewall) имеет одну жесткую особенность безопасности.

По умолчанию предустановленные правила для веб-служб (порты 80 и 443) разрешают входящие подключения исключительно из локальной подсети (Local Subnet). Любые запросы, приходящие со стороны других подсетей (например, с вашего мобильного телефона из сети 192.168.22.x), брандмауэр будет молча игнорировать или сбрасывать.

Разберем по шагам, как добавить правильное исключение вручную:

  1. Откройте «Монитор брандмауэра Защитника Windows в режиме повышенной безопасности» (команда wf.msc в строке выполнения).
  2. В левой панели выберите раздел «Правила для входящих подключений».
  3. В правой панели нажмите «Создать правило...».
  4. Выберите тип правила «Для порта» и нажмите «Далее».
  5. Укажите протокол TCP, а в поле «Определенные локальные порты» введите 80, 443 (или порты, на которых работает ваш Apache/IIS).
  6. Выберите действие «Разрешить подключение».
  7. Отметьте профили, для которых применяется правило (Доменный, Частный, Публичный).
  8. Дайте правилу понятное имя (например, «1С:Заказы Web-сервис») и нажмите «Готово».
  9. Дважды кликните по созданному правилу, перейдите на вкладку «Область» (Scope). В разделе «Удаленный IP-адрес» убедитесь, что переключатель установлен в положение «Любой IP-адрес», либо точечно добавьте туда диапазон адресов вашей мобильной подсети.

Ограничения мобильных ОС на работу по HTTP-протоколу

Современные версии мобильных операционных систем (Android 9+ и iOS) предъявляют повышенные требования к безопасности передаваемых данных. По умолчанию они полностью блокируют незащищенный трафик (Cleartext HTTP traffic). Если вы пытаетесь подключить приложение «1С:Заказы» по адресу, начинающемуся с http://, операционная система телефона может принудительно разорвать соединение еще до отправки первого пакета. Это выглядит как мгновенная ошибка Connection reset или Connection refused.

Для решения этой проблемы мы рекомендуем:

Увеличение таймаутов на стороне веб-сервера (IIS / Apache)

Первичный обмен мобильного приложения с базой 1С:УТ — это очень ресурсоемкая операция. В этот момент конфигурация подготавливает огромный массив информации: список номенклатуры с иерархией, контрагентов, актуальные цены, остатки на складах и договоры. Подготовка и передача такого объема данных может занимать от нескольких минут до получаса.

Стандартные настройки веб-серверов часто рассчитаны на быстрые транзакции и прерывают сессию по таймауту уже через 60 секунд. Выясним, как увеличить время ожидания.

Для веб-сервера Apache:

Откройте конфигурационный файл httpd.conf в текстовом редакторе и найдите (или добавьте) следующие директивы, увеличив время ожидания соединения до 10–15 минут:


Timeout 900
KeepAliveOn
KeepAliveTimeout 900

Для веб-сервера IIS:

В диспетчере служб IIS перейдите в настройки вашего сайта, выберите пункт «Пределы» (Limits) в правой панели управления и измените значение параметра «Таймаут подключения» (Connection Timeout) с дефолтных 120 секунд до 900 секунд.

Также на IIS необходимо увеличить максимальный размер передаваемого контента. В файле настроек web.config, расположенном в каталоге публикации базы, добавьте или отредактируйте секцию:


<system.webServer>
    <security>
        <requestFiltering>
            <requestLimits maxAllowedContentLength="104857600" />
        </requestFiltering>
    </security>
</system.webServer>

Этот параметр увеличивает лимит на размер одного пакета обмена до 100 Мегабайт.

Оптимизация файла публикации default.vrd

Иногда веб-сервис опубликован корректно, но сама платформа 1С тратит слишком много времени на инициализацию каждого нового сеанса. Чтобы оптимизировать этот процесс и избежать таймаутов, настройте пул соединений в файле публикации default.vrd.

Откройте файл default.vrd в папке публикации и убедитесь, что веб-сервис обмена включен, а параметры повторного использования сеансов настроены оптимальным образом. Пример структуры файла:


<?xml version="1.0" encoding="UTF-8"?>
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
       xmlns:xs="http://www.w3.org/2001/XMLSchema"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       base="/TradeBase"
       ib="Srvr="Server1C";Ref="TradeBase";">
    <ws enable="true" reuseSessions="autouse" sessionMaxAge="20" poolSize="10" poolTimeout="5">
        <point name="CustomerOrdersExchange" alias="CustomerOrdersExchange.1cws" enable="true"/>
    </ws>
</point>

Параметр reuseSessions="autouse" заставляет платформу повторно использовать уже созданные рабочие сеансы 1С для обслуживания запросов мобильных устройств, что сокращает время отклика в разы.

Проверка настроек интеграции внутри базы «1С:Управление торговлей»

В завершение обязательно проверим настройки на стороне самой учетной системы 1С:

  1. Перейдите в раздел «НСИ и администрирование» — «Настройка интеграции» — «Интеграция с 1С:Заказы». Убедитесь, что установлена галочка «Разрешить синхронизацию данных с мобильным приложением "1С:Заказы"».
  2. Проверьте карточку пользователя, под которым вы авторизуетесь в мобильном приложении. У этого пользователя в правах доступа обязательно должна быть назначена роль «Использование мобильного приложения "1С:Заказы клиентов"». Без этой роли веб-сервис вернет ошибку авторизации HTTP 401 (или 500), которую мобильное приложение может некорректно интерпретировать как обрыв связи.

Последовательно применив описанные шаги — от проверки сетевой доступности устройств и настройки брандмауэра Windows до тонкой настройки веб-сервера и файла публикации — мы гарантированно избавимся от ошибок ожидания и обеспечим быструю и стабильную синхронизацию мобильного приложения «1С:Заказы».

← На главную