Развертывание мобильных решений на платформе 1С:Предприятие часто сопровождается трудностями при публикации информационной базы на веб-сервере IIS (Internet Information Services). Типичная ситуация: вы успешно опубликовали мобильное приложение, проверили ссылку в браузере мобильного устройства — XML-описание конфигурации открывается без проблем. Однако при попытке добавить эту же базу в список мобильного приложения 1С возникает ошибка: «Ресурс не найден (404)». Рассмотрим подробнее, почему это происходит и как настроить сервер для корректной работы мобильного клиента.
Одной из самых распространенных причин ошибки 404 является то, что сервер IIS по умолчанию не знает, как обрабатывать специфические расширения файлов 1С. Когда мобильное приложение обращается к серверу, оно запрашивает не только основную страницу, но и файлы конфигурации. Если расширение файла не зарегистрировано в списке MIME-типов, сервер заблокирует запрос из соображений безопасности.
Разберем по шагам, какие типы необходимо добавить в консоли управления IIS:
.1ccfg — значение application/octet-stream.apk — значение application/vnd.android.package-archive (необходимо для обновления мобильного приложения).xml — значение text/xmlПосле внесения изменений обязательно выполним перезапуск IIS командой iisreset в командной строке.
Проанализируем особенность работы мобильной платформы 1С. В отличие от настольных браузеров, которые часто игнорируют регистр букв в адресе, мобильный клиент (особенно под управлением Android) крайне чувствителен к написанию пути. Если в IIS ваш виртуальный каталог называется MobileBase, а в настройках подключения на смартфоне вы написали mobilebase, вы гарантированно получите ошибку 404.
Рекомендация: Всегда используйте только нижний регистр при именовании публикаций 1С и при прописывании пути на мобильном устройстве. Это исключит вероятность ошибки из-за разницы в интерпретации строк сервером и клиентом.
Часто ошибка 404 является маской для проблем с авторизацией. Если на сервере включена только «Проверка подлинности Windows» (Windows Authentication), мобильное устройство может не суметь корректно передать учетные данные через протоколы NTLM/Kerberos. В результате сервер отклоняет запрос, что мобильная платформа интерпретирует как отсутствие ресурса.
Выясним правильную конфигурацию прав доступа:
Посмотрим на структуру файла default.vrd, который находится в физическом каталоге вашей публикации на сервере. Этот файл является «дорожной картой» для веб-сервера. Если вы публикуете мобильное приложение через Конфигуратор (Администрирование -> Публикация на веб-сервере), убедитесь, что на вкладке «Мобильное приложение» установлены соответствующие флажки.
Проанализируем пример корректного содержимого секции мобильного приложения в default.vrd:
<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="/MobileApp"
ib="Srvr="ServerName";Ref="BaseName";">
<mobileApplication publishRoot="TRUE" />
</point>
Важно, чтобы атрибут publishRoot="TRUE" присутствовал. Если вы перепубликовывали базу несколько раз, эта секция могла быть повреждена или дублирована, что также приводит к ошибке 404.
Рассмотрим ситуацию, когда на сервере установлена 64-битная версия 1С, а публикация выполняется через 32-битные модули расширения (или наоборот). Для корректной работы необходимо сопоставить разрядность wsap64.dll и настройки пула приложений в IIS.
DefaultAppPool или пул с именем публикации).False.Несоответствие этого параметра разрядности установленной платформы — одна из самых неочевидных причин, по которой внешние запросы от мобильных клиентов «не видят» рабочие процессы 1С.
Если ваша публикация использует протокол HTTPS с самоподписанным сертификатом, вы можете столкнуться с тем, что браузер на телефоне позволяет «проигнорировать» предупреждение о безопасности, а мобильное приложение 1С — нет. При попытке защищенного соединения происходит разрыв на этапе SSL-handshake, и клиент выдает 404.
Чтобы исключить эту проблему, попробуйте временно настроить публикацию по протоколу HTTP. Если ошибка исчезнет, значит, проблема в сертификате. Для полноценной работы по HTTPS необходимо добавить ваш корневой сертификат в хранилище доверенных сертификатов на самом мобильном устройстве (в настройках безопасности Android или iOS).
В некоторых случаях, даже после исправления настроек на стороне сервера, мобильный клиент продолжает выдавать ошибку. Это связано с агрессивным кэшированием путей в мобильной платформе. Выясним, как сбросить состояние приложения:
Также стоит проверить, не создана ли в этом же виртуальном каталоге публикация веб-клиента. Иногда они могут конфликтовать за обработку корневого URL. Попробуйте создать отдельный виртуальный каталог исключительно для мобильного приложения.