Мы часто сталкиваемся с задачами обеспечения удаленного доступа к нашим информационным системам, и мобильное приложение 1С:Документооборот не исключение. Представим ситуацию: у нас есть сервер с 1С:Документооборот, который прекрасно работает в локальной сети и доступен через браузер телефона извне. Однако, когда мы пытаемся подключиться к нему с мобильного приложения 1С:Документооборот из интернета, используя нестандартный порт (например, 90), данные не обновляются. При этом, если мы временно включаем 80-й порт без сложной маршрутизации, мобильное приложение начинает работать. Если же используется маршрутизация, настроенная для нестандартного порта, подключение отсутствует. В чем же дело? Давайте разберемся.
Основной вопрос, который возникает у многих пользователей и системных администраторов: работает ли мобильное приложение 1С:Документооборот, если в адресной строке указан нестандартный порт, например, http://25.25.25.25:90/ИмяПубликации? Ответ на этот вопрос — Да, работает. Проблема, скорее всего, кроется не в самом приложении или платформе 1С, а в настройках сетевого оборудования, в частности, в маршрутизации и пробросе портов на вашем роутере (в нашем случае это MikroTik) и настройках брандмауэра.
Предлагаем рассмотреть эту ситуацию по шагам и выяснить, где именно могут быть ошибки и как их исправить.
Прежде чем углубляться в сетевые настройки, давайте убедимся, что все базовые требования для работы мобильного приложения 1С:Документооборот соблюдены. Эти шаги являются фундаментальными и необходимы для успешной публикации базы и её доступности:
Публикация на веб-сервере: Информационная база "1С:Документооборот" должна быть обязательно опубликована на веб-сервере. Чаще всего используется IIS (Internet Information Services) для Windows-серверов или Apache для Linux-систем. Убедитесь, что публикация произведена успешно и доступна по внутреннему IP-адресу и порту веб-сервера из локальной сети.
Веб-сервисы: При публикации должны быть включены необходимые веб-сервисы. Для мобильного клиента 1С:Документооборот критически важны веб-сервисы DMX и MobileDMVersionService, но также могут использоваться и другие, например, для публикации адресной книги.
Использование мобильных клиентов: В настройках самой программы "1С:Документооборот" (обычно в разделе "Администрирование" > "Настройка и администрирование" > "Мобильные клиенты") должна быть активирована опция "Использовать мобильные клиенты".
Разрешенные пользователи: Необходимо указать, каким пользователям разрешен доступ к информационной базе с мобильного клиента. Проверьте соответствующие настройки в программе.
Адрес подключения: В мобильном приложении на смартфоне или планшете мы должны указать корректный адрес веб-сервера и имя публикации. Формат адреса обычно выглядит как http://ВАШ_IP_ИЛИ_ДОМЕН:ПОРТ/ИМЯ_ПУБЛИКАЦИИ. Например, если веб-сервер имеет адрес 192.168.1.100, а имя публикации mobile1c, то адрес подключения будет http://192.168.1.100/mobile1c (для локальной сети). Для внешнего доступа мы будем использовать внешний IP и нестандартный порт, например, http://25.25.25.25:90/mobile1c.
Безопасное соединение (HTTPS): Настоятельно рекомендуем использовать безопасное соединение HTTPS для защиты передаваемых данных. Это потребует установки SSL-сертификата на веб-сервер и, возможно, установки корневого сертификата удостоверяющего центра на мобильное устройство, если сертификат не является доверенным публично.
Предположим, что вы используете IIS на Windows Server 2016, как в описанной ситуации. Корректность его настройки критически важна для доступности публикации 1С.
Компоненты IIS: При установке IIS на Windows Server 2016 убедитесь, что включены все необходимые компоненты. К ним относятся основные "Службы IIS", "Службы интернета", а также "Компоненты разработки приложений", включающие "Расширение ISAPI" и "Фильтры ISAPI". Не забудьте про "Средства управления веб-сайтом", которые помогут вам администрировать IIS.
Модули расширения веб-сервера 1С: При установке платформы 1С:Предприятие на тот же сервер, где развернут IIS, крайне важно выбрать компонент "Модули расширения веб-сервера". Если ваш сервер 64-разрядный, удостоверьтесь, что установлен соответствующий 64-разрядный модуль, так как отсутствие или несоответствие разрядности может привести к ошибкам публикации.
Права доступа: Правильно настроенные права доступа – залог успешной работы. Убедитесь, что учетная запись, под которой работает веб-сервер (например, для группы IIS_IUSRS), имеет достаточные права доступа (чтение, запись, выполнение) на папки, используемые при работе веб-доступа к базам данных 1С. Это включает каталог хранения файлов веб-сайтов (где опубликована 1С) и папку с самой базой данных 1С (если база файловая или для логов).
Внутренняя проверка доступности: После публикации 1С на IIS, мы должны убедиться, что она доступна из локальной сети. Попробуйте открыть веб-адрес публикации (например, http://192.168.1.100/mobile1c, если IIS слушает на 80 порту) из браузера любого компьютера в вашей локальной сети. Если страница 1С загружается, значит, публикация настроена корректно, и проблема, скорее всего, вне сервера IIS.
Вот где, скорее всего, кроется источник проблемы. Некорректная настройка правил NAT (Network Address Translation) на вашем MikroTik является одной из самых распространенных причин невозможности доступа извне. Наша задача — перенаправить входящий трафик с внешнего IP-ададреса и нестандартного порта на внутренний IP-адрес вашего веб-сервера 1С и порт, на котором он фактически слушает (например, 80 или 443).
Мы будем работать с правилом dst-nat (Destination NAT). Это правило изменяет IP-адрес назначения пакета и/или порт назначения, перенаправляя его на внутренний ресурс.
Рассмотрим пошаговое создание правила dst-nat на MikroTik:
Откроем WinBox или WebFig: Подключимся к вашему маршрутизатору MikroTik.
Перейдем в раздел Firewall: В меню слева выберем IP -> Firewall.
Откроем вкладку NAT: Здесь мы будем создавать наше правило.
Создадим новое правило: Нажмем на синий плюс (+) для добавления нового правила.
Настроим вкладку General:
Chain: Выберем dstnat. Это означает, что правило будет применяться к входящим пакетам, идущим извне во внутреннюю сеть.
Protocol: Установим tcp, так как веб-трафик (HTTP/HTTPS) использует этот протокол.
Dst. Port: Здесь указываем внешний порт, на который будут приходить данные от удаленной машины. Это тот самый нестандартный порт, который мы хотим использовать, например, 90. Приложение 1С на телефоне будет подключаться именно к этому порту вашего внешнего IP-адреса.
In. interface: Выберем интерфейс MikroTik, через который роутер подключен к Интернету. Обычно это ether1-gateway или интерфейс, который получает IP-адрес от вашего провайдера (WAN-интерфейс). Это очень важный параметр! Если вы укажете неверный интерфейс, правило работать не будет.
Настроим вкладку Action:
Action: Выберем dst-nat или netmap. В большинстве случаев dst-nat подойдет.
To Addresses: Укажем локальный IP-адрес вашего веб-сервера 1С (например, 192.168.1.100).
To Ports: Укажем внутренний порт, на котором фактически "слушает" ваш веб-сервер (IIS). Если это HTTP, то это обычно 80. Если HTTPS, то 443. В нашей ситуации, когда мы пробрасываем внешний порт 90, но IIS слушает на 80, здесь мы укажем 80.
Добавим комментарий: В поле Comment рекомендуем добавить осмысленное описание, например, 1C_DO_Mobile_App_NAT, чтобы легко найти и понять назначение правила в будущем.
Пример правила dst-nat в командной строке MikroTik для проброса внешнего порта 90 на внутренний порт 80 сервера с IP 192.168.1.100 через WAN-интерфейс ether1-gateway:
/ip firewall nat add chain=dstnat protocol=tcp dst-port=90 in-interface=ether1-gateway action=dst-nat to-address=192.168.1.100 to-ports=80 comment="1C_DO_Mobile_App_NAT"
Важное примечание: Если у вас есть несколько правил NAT, убедитесь, что ваше новое правило расположено выше других правил, которые могут перехватить трафик, или имеет более специфичные условия. Порядок правил в списке имеет значение!
Даже если NAT настроен идеально, брандмауэры на пути следования трафика могут блокировать соединение. Нам необходимо проверить два уровня брандмауэра: на MikroTik и на самом сервере 1С.
Брандмауэр MikroTik (Filter Rules):
Перейдем на вкладку Filter Rules в IP -> Firewall.
Убедимся, что нет правил drop или reject, которые могли бы блокировать входящий трафик на ваш внешний порт MikroTik (в нашем примере 90) с внешнего интерфейса. Обычно, если правило dst-nat настроено корректно, оно изменяет адрес назначения до того, как пакет попадает в filter rules, и поэтому дополнительно "открывать" порт через filter rules обычно не требуется. Однако, если у вас есть строгие правила безопасности, которые блокируют весь входящий трафик, вам может потребоваться явное правило accept для порта 90 на внешнем интерфейсе, расположенное перед блокирующими правилами.
Пример правила для разрешения входящего трафика на внешний порт 90 (если необходимо):
/ip firewall filter add chain=input protocol=tcp dst-port=90 in-interface=ether1-gateway action=accept comment="Allow_1C_DO_Mobile_App_External"
Но чаще всего, достаточно правила dst-nat. Если после создания dst-nat все еще не работает, тогда уже следует искать конфликтующие правила в filter rules.
Брандмауэр Windows на сервере 1С:
Перейдем в "Брандмауэр Защитника Windows в режиме повышенной безопасности" на вашем сервере 1С.
Проверим "Правила для входящих подключений". Убедимся, что существует правило, разрешающее входящие TCP-соединения на внутренний порт веб-сервера (например, 80 или 443). Если такого правила нет, нам потребуется его создать.
Убедимся, что процесс w3wp.exe (рабочий процесс IIS) или другие процессы, связанные с веб-сервером 1С, имеют необходимые разрешения и не блокируются брандмауэром.
Пример создания правила для разрешения входящих подключений на порт 80 (если отсутствует):
После того как все настройки выполнены, мы приступаем к проверке. Проводите тестирование извне вашей локальной сети, например, через мобильный интернет на телефоне или с другого внешнего компьютера.
Тестирование через браузер: Откроем браузер на внешнем устройстве (смартфон, ноутбук) и попробуем подключиться к вашей публикации 1С:Документооборот, используя внешний IP-адрес и нестандартный порт. Формат адреса: http://ВАШ_ВНЕШНИЙ_IP:90/ИМЯ_ПУБЛИКАЦИИ. Если страница 1С загружается, это очень хороший знак — значит, проброс портов и брандмауэры настроены корректно до сервера IIS.
Тестирование мобильного приложения: Если веб-доступ через браузер успешно работает, теперь мы можем открыть мобильное приложение 1С:Документооборот на смартфоне. В настройках подключения приложения укажем тот же адрес: http://ВАШ_ВНЕШНИЙ_IP:90/ИМЯ_ПУБЛИКАЦИИ. Попробуем выполнить синхронизацию или обновить данные. Если все настроено правильно, приложение должно успешно подключиться и обновить информацию.
Проверка логов: Если подключение все еще не работает, нам необходимо внимательно изучить логи.
System -> Logging можно настроить вывод логов firewall. Включим логирование для правил NAT и Filter (если это необходимо для диагностики) и посмотрим, проходят ли пакеты через наше правило dst-nat и не блокируются ли они другими правилами filter.%SystemDrive%\inetpub\logs\LogFiles. Изучим последние записи на предмет ошибок или отклоненных соединений, поступающих с внешнего IP-адреса.Давайте рассмотрим некоторые нюансы, которые могут возникнуть в процессе настройки и эксплуатации:
Некорректное имя публикации: Убедимся, что имя публикации в адресе приложения (часть /ИМЯ_ПУБЛИКАЦИИ) в точности совпадает с именем, указанным при публикации 1С на IIS. Регистр символов имеет значение.
Динамический внешний IP-адрес: Если ваш провайдер предоставляет вам динамический внешний IP-адрес, который периодически меняется, использовать его напрямую для подключения будет неудобно. В таком случае рекомендуем настроить сервис DynDNS (Dynamic DNS), который будет обновлять DNS-запись доменного имени при каждом изменении вашего внешнего IP. Тогда вы сможете подключаться по доменному имени, например, http://yourdomain.dyndns.org:90/mobile1c.
Использование DNS-имени: Для удобства и особенно при настройке HTTPS, использование доменного имени (например, https://yourdomain.com:90/publication) предпочтительнее. Это потребует настройки DNS-записей для вашего домена, указывающих на ваш внешний IP-адрес.
HTTPS для безопасности: Мы уже упоминали, но подчеркнем еще раз: для любой удаленной работы с конфиденциальными данными настоятельно рекомендуется использовать HTTPS. Это означает установку SSL-сертификата на ваш веб-сервер IIS. В этом случае внутренний порт на IIS будет 443 (или другой, если вы его изменили), а внешним портом на MikroTik вы также можете выбрать нестандартный (например, 9443), пробросив его на внутренний 443. Адрес подключения будет выглядеть как https://ВАШ_ДОМЕН:9443/ИМЯ_ПУБЛИКАЦИИ.
Конфликты портов: Убедимся, что выбранный вами нестандартный порт (например, 90) не занят другим приложением или службой на веб-сервере или на MikroTik. Это маловероятно для высоких портов, но все же стоит проверить.
Обратный проброс (Hairpin NAT / NAT Loopback): Если вы пытаетесь подключиться к внешнему адресу (ВАШ_ВНЕШНИЙ_IP:90) из своей же локальной сети, то есть когда мобильное устройство находится в той же сети, что и сервер, вам может потребоваться настройка Hairpin NAT (также известный как NAT Loopback) на MikroTik. Это позволяет внутренним устройствам обращаться к внешнему IP-адресу маршрутизатора и быть перенаправленными обратно внутрь сети на соответствующий сервер. Однако, в данном случае мы рассматриваем подключение именно извне, поэтому этот аспект не является основной причиной проблемы, но может возникнуть при тестировании из локальной сети.
В итоге, работоспособность мобильного приложения 1С:Документооборот на нестандартных портах подтверждена. Основной акцент при возникновении проблем следует делать на тщательной проверке и настройке проброса портов на маршрутизаторе MikroTik (правила dst-nat) и исключений в брандмауэрах (на MikroTik и на сервере 1С), а также на правильности указания адреса подключения в самом мобильном приложении.
Помните, что каждый шаг должен быть проверен. Систематический подход к диагностике поможет быстро выявить и устранить проблему.