Разработка мобильных приложений на платформе 1С:Предприятие 8.3 — процесс увлекательный, но часто начинающийся с технических преград. Одной из самых распространенных и «загадочных» для новичков ошибок является фатальный сбой при попытке добавить конфигурацию на смартфон: «Ошибка разбора XML: Фатальная ошибка: Space required after the Public Identifier». Рассмотрим подробно природу этой ошибки и разберем по шагам, как настроить окружение для корректной работы.
Первым делом проанализируем ситуацию: когда мобильное устройство (смартфон или эмулятор) обращается к веб-серверу (Apache или IIS) за файлом конфигурации (с расширением .1cema), оно ожидает получить корректный XML-структурированный поток данных. Ошибка Space required after the Public Identifier фактически означает, что вместо XML-кода мобильное приложение получило обычную HTML-страницу.
Выясним причину, почему это происходит. Чаще всего веб-сервер, столкнувшись с внутренней ошибкой (например, 404 Not Found или 500 Internal Server Error), отдает стандартную страницу-заглушку, которая начинается с тега DOCTYPE. Парсер 1С пытается прочитать этот тег как часть XML, натыкается на идентификатор PUBLIC и, не обнаружив ожидаемого синтаксиса, выдает ошибку. Таким образом, проблема кроется не в самом XML-файле, а в настройках публикации или доступности сервера.
Проанализируем программное окружение. В сообщениях форума часто упоминаются старые версии, такие как 8.3.4 или 8.3.8. Важно понимать, что мобильная разработка 1С крайне чувствительна к версиям ОС Android. Рассмотрим основные правила совместимости:
Если версии ПО актуальны, но ошибка сохраняется, перейдем к проверке веб-сервера. Разберем основные моменты настройки Apache для работы с 1С:
1. MIME-типы файлов. Apache должен знать, как отдавать файлы мобильной платформы. Откроем файл конфигурации httpd.conf и проверим наличие (или добавим вручную) следующие строки:
AddType application/xml .1cema
AddType application/xml .1ceam
2. Разрядность модулей. Это критический момент. Если у вас установлена 64-битная версия платформы 1С, то и веб-сервер Apache должен быть строго 64-битным. В противном случае библиотека расширения 1С (wsap22.dll или wsap24.dll) просто не загрузится, и сервер будет выдавать ошибку 500 при попытке обращения к базе.
3. Права доступа. Убедимся, что у пользователя, от имени которого запущен сервис Apache (обычно SYSTEM или daemon), есть полные права на чтение и выполнение в каталоге, куда была произведена публикация (там, где лежит файл default.vrd).
Файл default.vrd — это сердце вашей публикации. Рассмотрим его структуру. При публикации из конфигуратора через меню «Администрирование — Публикация на веб-сервере» необходимо обязательно установить галочку «Публиковать мобильное приложение». Посмотрим, как должен выглядеть фрагмент корректного файла:
<point name="MyMobileApp"
base="/MyBase"
ib="Srvr="LocalHost";Ref="MyBase";">
<httpServices>
<service name="MobileService" rootUrl="mobile" enable="true"/>
</httpServices>
<mobile>
<conf xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
name="ИмяВашейКонфигурации"
version="1.0.0.1"/>
</mobile>
</point>
Если секция <mobile> отсутствует или пуста, мобильное устройство не сможет получить описание конфигурации, что и приведет к ошибке разбора ответа сервера.
Проанализируем ситуацию, когда сервер настроен верно, но смартфон все равно получает ошибку. Выясним, видят ли устройства друг друга:
localhost, а реальный IP-адрес вашего компьютера в локальной сети (например, http://192.168.1.15/MyMobileApp).1C:Enterprise 8 — значит, сеть и сервер настроены. Если видите ошибку 404 или «Страница недоступна» — ищите проблему в Apache.Рассмотрим важный нюанс для современных устройств. Начиная с Android 9, Google запретил передачу данных по незащищенному протоколу HTTP (Cleartext traffic). Если ваша мобильная платформа пытается подключиться к серверу по http://, система может заблокировать запрос.
Для решения этой задачи в промышленной эксплуатации используется HTTPS с сертификатами. Однако для целей отладки можно использовать специальные сборки мобильной платформы, в которых разрешен cleartextTraffic, или настраивать исключения в манифесте приложения при сборке собственного .apk.
Для успешного запуска примера из книжки и устранения ошибки разбора XML, выполним следующие действия:
Соблюдение этих шагов позволит избежать технических сбоев и сосредоточиться на изучении разработки мобильных интерфейсов и логики работы мобильного клиента 1С.