При развертывании мобильных решений на платформе 1С:Предприятие 8.3 разработчики часто сталкиваются с ситуацией, когда веб-сервер (Apache или IIS) вроде бы работает, страница "It Works!" открывается, но при попытке загрузить конфигурацию на смартфон возникает ошибка: «Ошибка работы с Интернет: ресурс не найден (404)». Рассмотрим подробно, почему это происходит и как пошагово диагностировать и устранить данную проблему.
Проанализируем наиболее распространенную причину, которая на первый взгляд кажется банальной. В отличие от операционной системы Windows, где может использоваться Python-коннектор к 1С, веб-серверы и мобильная платформа 1С крайне чувствительны к регистру символов в URL-адресе. Если при публикации в Конфигураторе вы указали имя WorkMA, а в мобильном приложении на Android ввели workma, сервер вернет ошибку 404.
Важно: проверьте соответствие каждой буквы. Если адрес выглядит как http://192.168.1.10/MyMobApp, то использование mymobapp недопустимо. Рекомендуем всегда использовать только латиницу в нижнем регистре при создании имен публикаций, чтобы минимизировать риск опечаток.
Выясним еще одну важную деталь: что именно нужно писать в конце адреса. Часто разработчики ошибочно указывают путь к физической папке на диске, где лежат файлы публикации. Однако мобильной платформе требуется имя публикации, которое задается в поле «Имя» в окне «Публикация на веб-сервере».
Рассмотрим пример. Если ваша папка на диске называется C:\inetpub\wwwroot\mobile_db, а в поле «Имя» при публикации указано MobileSales, то в строке подключения на смартфоне должен быть адрес: http://[IP-адрес]/MobileSales (узнать его поможет сервис MyIP). Добавление или отсутствие завершающего слэша (/) также может влиять на результат в зависимости от версии платформы, поэтому попробуйте оба варианта: .../MobileSales и .../MobileSales/.
Посмотрим на настройки Apache. При каждой публикации 1С вносит изменения в файл httpd.conf (или в подключаемые конфигурационные файлы в папке conf.d). Со временем там могут накапливаться устаревшие или конфликтующие записи (Alias).
Найдем в httpd.conf блок, соответствующий вашей публикации. Он должен выглядеть примерно так:
Alias "/MobileSales" "C:/inetpub/wwwroot/mobile_db/"
<Directory "C:/inetpub/wwwroot/mobile_db/">
AllowOverride None
Options None
Order allow,deny
Allow from all
SetHandler 1c-application
ManagedApplicationDescriptor "C:/inetpub/wwwroot/mobile_db/default.vrd"
</Directory>
Если вы обнаружили несколько записей Alias, указывающих на одну и ту же физическую папку, или дублирующиеся имена публикаций — это прямой путь к ошибке 404. Удалите все лишнее, оставьте только актуальную запись и обязательно перезапустите службу Apache.
Разберем технический нюанс, связанный с архитектурой систем. Если вы используете Apache 2.2, скорее всего, он 32-битный (x86). Если при этом установлена 64-битная платформа 1С, конфигуратор может попытаться прописать в настройках веб-сервера путь к 64-битной библиотеке wsap22.dll. 32-битный Apache не сможет загрузить этот модуль, и обработчик 1c-application не инициализируется, что приведет к невозможности найти ресурс.
Убедитесь, что в файле httpd.conf загружается модуль нужной разрядности. Путь должен вести в папку bin той платформы, которая соответствует разрядности вашего Apache.
Проанализируем ситуацию с точки зрения безопасности ОС. Веб-сервер работает от имени системной учетной записи (например, Local System или SYSTEM). Если у этой учетной записи нет прав на чтение содержимого папки, в которую была выполнена публикация, сервер не сможет прочитать файл default.vrd или 1c-application.xml.
Иногда возникает ситуация, когда первое приложение загружается без проблем, а второе выдает 404. Это может быть связано с тем, что мобильная платформа кэширует сессии или некорректно обрабатывает несколько виртуальных каталогов в рамках одного сеанса связи. Попробуйте временно отключить публикацию первого приложения и проверить загрузку второго. Если это помогло, значит, проблема в конфликте имен или настроек обработчиков в веб-сервере.
Если вы используете IIS вместо Apache, причина 404 часто кроется в отсутствии необходимых компонентов Windows. Проверьте, установлены ли:
Также в диспетчере IIS необходимо зайти в раздел «Ограничения ISAPI и CGI» на уровне сервера и убедиться, что путь к библиотеке wsisapi.dll добавлен в список и имеет разрешение на выполнение. Без этого IIS просто заблокирует запрос к расширению 1С, выдав стандартную ошибку «Ресурс не найден».
Напоследок выполним самую простую проверку. Зайдите физически в папку, куда была сделана публикация. Там обязательно должны находиться файлы default.vrd и 1c-application.xml. Если файл 1c-application.xml отсутствует, значит, процесс публикации из Конфигуратора завершился с ошибкой (возможно, из-за нехватки прав доступа). Попробуйте запустить Конфигуратор от имени Администратора и повторить публикацию.
Резюме: для успешного решения проблемы 404 последовательно проверьте регистр букв в URL, убедитесь в наличии прав доступа к папке, проверьте соответствие разрядности модулей и очистите конфигурацию веб-сервера от старых записей. В большинстве случаев проблема кроется именно в несовпадении имени публикации в строке адреса и настройках сервера.