Как исправить ошибку «Ошибка разбора XML: Space required after the Public Identifier» при загрузке конфигурации 1С на мобильное устройство?

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

В процессе разработки и развертывания мобильных приложений на платформе 1С:Предприятие специалисты часто сталкиваются с неочевидными ошибками связи между мобильным клиентом и веб-сервером. Одной из самых коварных является «Ошибка разбора XML: Space required after the Public Identifier». На первый взгляд она кажется синтаксической ошибкой в самой конфигурации, но на деле причина кроется гораздо глубже — в настройках веб-сервера (Apache или IIS) и способе передачи данных.

В этой статье мы подробно разберем, почему возникает эта ошибка, как продиагностировать истинную причину и какие шаги предпринять для восстановления работоспособности системы.

Суть проблемы: почему XML-парсер выдает ошибку?

Прежде всего, проанализируем природу сообщения. Мобильная платформа 1С при обращении к веб-серверу ожидает получить ответ в формате XML (структуру конфигурации или результат выполнения веб-сервиса). Если веб-сервер вместо валидного XML возвращает ошибку (например, 403 Forbidden, 404 Not Found или 500 Internal Server Error), он обычно делает это в виде стандартной HTML-страницы.

HTML-документы начинаются с объявления типа документа: <!DOCTYPE html...>. Встроенный в мобильную платформу XML-парсер пытается прочитать этот текст как часть XML-структуры. Поскольку синтаксис определения DOCTYPE в HTML и XML имеет строгие правила, парсер «спотыкается» на идентификаторах и выдает техническое сообщение: «Space required after the Public Identifier» (Требуется пробел после публичного идентификатора). Таким образом, эта ошибка является вторичной: она лишь сообщает нам о том, что вместо данных 1С пришел какой-то HTML-текст.

Решение 1: Очистка конфигурационного файла Apache (httpd.conf)

Рассмотрим наиболее распространенную причину, специфичную для работы с Apache. При каждой публикации информационной базы через конфигуратор 1С (меню «Администрирование» — «Публикация на веб-сервере»), система может добавлять новые записи в основной конфигурационный файл Apache httpd.conf.

Со временем в этом файле накапливаются дублирующиеся блоки директорий или модулей, что приводит к некорректной маршрутизации запросов от мобильных устройств. Разберем алгоритм действий по шагам:

  1. Перейдем в каталог установки веб-сервера Apache (обычно это C:\Program Files\Apache Software Foundation\Apache2.2\conf\).
  2. Откроем файл httpd.conf в текстовом редакторе с правами администратора.
  3. Проанализируем содержимое файла в самом конце. Найдем строки, начинающиеся с LoadModule _1cws_module и блоки <Directory ...>, относящиеся к вашей публикации.
  4. Выясним, нет ли там повторяющихся путей. Если одна и та же база опубликована несколько раз или под разными именами, Apache может конфликтовать сам с собой.
  5. Удалим все лишние и дублирующиеся записи, оставив только актуальные настройки для вашей текущей базы.
  6. Обязательно перезапустим службу Apache через панель управления службами или монитор Apache.

Пример корректного подключения модуля (разрядность модуля wsap24.dll должна совпадать с разрядностью Apache):


LoadModule _1cws_module "C:/Program Files/1cv8/8.3.19.1229/bin/wsap24.dll"

<Directory "C:/inetpub/wwwroot/MyMobileApp/">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
    SetHandler 1c-application
    ManagedApplicationDescriptor "C:/inetpub/wwwroot/MyMobileApp/default.vrd"
</Directory>

Решение 2: Проверка настроек конфигурации и прав доступа

Проанализируем ситуацию, когда веб-сервер настроен верно, но сама конфигурация 1С не готова к передаче на мобильное устройство. Выполним следующие проверки:

  1. Назначение использования: В корне конфигурации (в дереве объектов) проверим свойство «Назначение использования». Убедимся, что установлен флаг «Мобильное устройство».
  2. Логическая проверка модуля: Запустим встроенную проверку (Конфигурация — Проверка конфигурации). В появившемся окне установим настройки:
    • Проверять: Мобильное приложение (клиент)
    • Проверять: Мобильное приложение (сервер)
    • Поиск неподдерживаемой функциональности
  3. Права на каталог: Проверим, имеет ли пользователь, под которым запущена служба веб-сервера (например, SYSTEM или www-data), права на чтение и выполнение в папке, где лежит файл default.vrd. Отсутствие прав приведет к ошибке 403, которую мобильный клиент воспримет как ошибку XML.

Решение 3: Диагностика через браузер мобильного устройства

Чтобы выяснить, какую именно HTML-страницу возвращает сервер вместо XML, проделаем простой тест:

  1. Возьмем мобильное устройство, на котором возникает ошибка.
  2. Откроем стандартный мобильный браузер (Chrome, Safari).
  3. Введем адрес публикации базы, например: http://[адрес_сервера]/[имя_публикации]/.
  4. Если сервер работает правильно, браузер должен либо выдать запрос на авторизацию 1С, либо показать структуру default.vrd, либо начать скачивание файла.
  5. Если же мы видим страницу «404 Not Found», «Internal Server Error» или окно авторизации Windows (NTLM), значит, проблема не в 1С, а в сетевых настройках или правах доступа веб-сервера.

Важный момент: Если используется HTTPS, убедимся, что сертификат сервера является доверенным для мобильного устройства. Самоподписанные сертификаты часто блокируются мобильными ОС без уведомления, возвращая пустую страницу или ошибку безопасности, что снова провоцирует сбой XML-парсера.

Решение 4: Совместимость версий платформы

Рассмотрим вопрос версионности. В практике встречаются случаи, когда старые версии мобильной платформы (например, 8.3.6) не могут корректно обработать ответы от современных версий серверной платформы (8.3.14 и выше) из-за изменений в протоколах сжатия данных или структуре default.vrd.

Рекомендуется придерживаться следующих правил:

Резюме по устранению ошибки

Подводя итог, можно сказать, что ошибка «Space required after the Public Identifier» — это лишь «симптом» того, что веб-сервер вернул не то, что ожидал клиент. Для исправления ситуации необходимо:

  1. Проверить `httpd.conf` на наличие дублей и лишних записей.
  2. Перезапустить Apache после любых изменений.
  3. Убедиться в правах доступа к каталогу публикации.
  4. Проверить доступность ссылки через мобильный браузер для получения реального кода ошибки.

Соблюдение этих шагов позволяет решить проблему в 90% случаев, обеспечивая стабильную связь мобильного приложения с центральной базой 1С.

← На главную