Почему при запуске мобильного приложения 1С возникает ошибка "The requested URL was not found on this server"?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При разработке и публикации мобильных приложений на платформе 1С:Предприятие 8.3 программисты часто сталкиваются с ситуацией, когда веб-сервер (например, Apache) настроен, файлы публикации созданы, и браузер мобильного устройства успешно открывает страницу по ссылке, но само мобильное приложение выдает ошибку "Not Found. The requested URL was not found on this server". Проанализируем причины этой проблемы и разберем пошагово, как правильно настроить окружение для корректной работы.

Решение 1: Проверка соответствия дистрибутива (Мобильный клиент vs Мобильное приложение)

Самая распространенная причина ошибки кроется в использовании неверного APK-файла на мобильном устройстве. Рассмотрим ключевое различие между двумя основными типами мобильных решений 1С:

  1. Мобильное приложение (Mobile App): Это полноценное решение, которое имеет свою локальную базу данных (SQLite) и может работать автономно. Для него требуется дистрибутив Мобильной платформы (например, файл с именем вида 1cem-arm.apk).
  2. Мобильный клиент (Mobile Client): Это аналог тонкого клиента для смартфонов. Он не имеет своей базы и требует постоянного подключения к серверу. Для него используется дистрибутив Мобильного клиента (например, 1cem-client-arm.apk).

Выясним причину: если вы опубликовали мобильное приложение, но пытаетесь подключиться к нему через мобильный клиент, система не сможет найти ожидаемые структуры данных по указанному URL. Убедитесь, что на устройстве установлена именно "Мобильная платформа" (разработчик 1С), в которую вы добавляете базу по ссылке, а не специализированный клиент.

Решение 2: Корректная настройка конфигурации Apache (httpd.conf)

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


# 1c publication
Alias "/mobile1c" "C:/Apache24/htdocs/mobile1c/"
<Directory "C:/Apache24/htdocs/mobile1c/">
    AllowOverride All
    Options None
    Require all granted
    DirectoryIndex 1cema.xml
</Directory>

Обратим внимание на важные детали:

Решение 3: Особенности состава файлов публикации в новых версиях

Начиная с версии платформы 8.3.13 и выше, изменился состав файлов, необходимых для работы мобильного приложения. Посмотрим на этот список:

  1. 1cema.xml — дескриптор (описание) мобильного приложения.
  2. 1cv8.1cm — непосредственно скомпилированная конфигурация.

Проанализируем ситуацию: если при ручном копировании или некорректной публикации через Конфигуратор один из этих файлов отсутствует, мобильное устройство выдаст ошибку 404, так как платформа обращается к обоим ресурсам. Проверьте, что в каталоге публикации (например, C:/Apache24/htdocs/mobile1c/) присутствуют оба файла.

Важное замечание по версиям: База, на которой выполняется разработка и публикация, и версия мобильной платформы на устройстве должны быть совместимы. Если конфигурация собрана на платформе ниже 8.3.13, а используется современная мобильная платформа, могут возникнуть конфликты форматов.

Дополнительные проверки при возникновении ошибок связи

Если браузер видит содержимое, а приложение — нет, рассмотрим сопутствующие факторы:

1. Брандмауэр и антивирусы. Проверьте, не блокирует ли защитное ПО входящие соединения по порту 80 (или тому, который вы назначили Apache). Часто браузер на том же ПК работает, а внешние устройства блокируются правилами сетевого экрана.

2. Современные ограничения Android (SSL/HTTPS). Начиная с Android 9.0, система по умолчанию запрещает передачу данных по незащищенному протоколу HTTP (Cleartext traffic). Если вы используете обычный http://, приложение может выдавать ошибку связи. Рекомендуется настроить HTTPS с самоподписанным сертификатом или использовать специальные настройки манифеста при сборке собственного APK.

3. Перезапуск веб-сервера. После внесения любых изменений в httpd.conf или после повторной публикации из Конфигуратора, обязательно выполняйте ручной перезапуск службы Apache. Программный "перезапуск" из интерфейса 1С не всегда срабатывает корректно.

Вопрос использования аппаратных функций (фонарик)

В процессе разработки часто возникает вопрос управления аппаратными средствами, например, включением фонарика. В стандартном программном интерфейсе Мобильной платформы 1С нет прямой команды типа Фонарик.Включить(). Однако мы можем использовать обходной путь через средства мультимедиа.

Рассмотрим пример использования сканера штрихкодов для активации подсветки:


Процедура ВключитьПодсветку()
    // При вызове сканирования на многих устройствах доступна кнопка включения фонарика
    СредстваМультимедиа.СканироватьШтрихКод(Новый ОписаниеОповещения("ПослеСканирования", ЭтотОбъект));
КонецПроцедуры

Для полноценного управления фонариком (без открытия окна камеры) потребуется написание внешней компоненты на Java (для Android) или Objective-C (для iOS), которая будет взаимодействовать с API операционной системы напрямую.

Подведем итог: если вы столкнулись с ошибкой "URL not found", первым делом проверьте, тот ли APK вы установили, и убедитесь, что в папке публикации лежат и 1cema.xml, и 1cv8.1cm. Только после этого переходите к тонкой настройке прав доступа в Apache.

← На главную