Как исправить ошибку «поле объекта не обнаружено (item)» при загрузке конфигурации в мобильную платформу 1С?

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

При переходе на новые версии платформы 1С:Предприятие (начиная с 8.3.18.1483 и выше) многие разработчики мобильных приложений столкнулись с неприятной проблемой. При попытке загрузить конфигурацию в мобильную платформу или в процессе публикации на веб-сервере система выдает критическую ошибку: «поле объекта не обнаружено (item)». Эта ошибка блокирует возможность обновления мобильного клиента и делает невозможной дальнейшую разработку до её устранения.

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

Выясним причину возникновения ошибки

Проанализируем ситуацию: почему ошибка возникает именно на версиях 8.3.18.х? Дело в том, что в этой ветке платформы компания 1С существенно переработала механизмы сериализации метаданных и структуру хранения разрешений (Permissions) мобильного приложения. Теперь описание требуемых разрешений (таких как доступ к камере, контактам или геопозиции) хранится в файле конфигурации в ином формате XML.

Когда мы пытаемся опубликовать конфигурацию, созданную или измененную в более старых версиях, парсер новой платформы ищет узел item в коллекции разрешений. Если структура данных осталась «старой», этого узла в ожидаемом месте не оказывается, что и приводит к программному исключению. Давайте рассмотрим, как привести структуру конфигурации в соответствие с требованиями новой платформы.

Способ 1. Сброс и переустановка разрешений (самый эффективный метод)

Как показывает практика, наиболее быстрым и действенным способом является полное удаление информации о разрешениях из свойств информационной базы и их повторное добавление. Это заставляет платформу перезаписать XML-структуру манифеста в новом формате.

Разберем этот процесс по шагам:

  1. Откроем Конфигуратор нашей информационной базы.
  2. Перейдем в дерево метаданных, щелкнем правой кнопкой мыши по корневому узлу конфигурации и выберем пункт «Свойства».
  3. В окне свойств найдем раздел «Использование мобильного приложения» и нажмем на ссылку «Разрешения мобильного приложения».
  4. Перед нами откроется список установленных галочек (Мультимедиа, Геопозиционирование и т.д.). Недостаточно просто снять галочки!
  5. Важный момент: необходимо выделить каждое разрешение и нажать на кнопку удаления (красный крестик), чтобы полностью очистить коллекцию. Если интерфейс не позволяет удалить записи напрямую, попробуйте полностью очистить список.
  6. После того как список станет пустым, нажмем «ОК» и сохраним конфигурацию (F7).
  7. Снова зайдем в этот же раздел и заново выставим все необходимые нам разрешения, проставляя соответствующие флажки.
  8. Повторно сохраним конфигурацию и выполним публикацию.

Этот метод исправляет внутренние несоответствия в файле ManagedApplication.mdo, добавляя те самые недостающие элементы item.

Способ 2. Обновление сборщика мобильных приложений

Если мы используем специализированный инструмент «Сборщик мобильных приложений», крайне важно, чтобы его версия соответствовала версии используемой платформы. Проанализируем ситуацию: использование сборщика версии 8.3.17 совместно с платформой 8.3.18 практически гарантированно приведет к ошибке, так как логика формирования пакета (APK или IPA) была изменена.

Рассмотрим порядок действий:

Способ 3. Очистка кэша и повторная публикация на веб-сервере

Иногда ошибка «залипает» в кэше веб-сервера (IIS или Apache) или во временных файлах платформы. Посмотрим, как выполнить «чистую» публикацию:

  1. Полностью удалим существующую публикацию мобильного приложения через диалог «Администрирование — Публикация на веб-сервере».
  2. Физически удалим папку на диске, в которую осуществлялась публикация (например, в каталоге C:\inetpub\wwwroot\myapp\).
  3. Очистим временные папки пользователя (%TEMP%), так как именно там 1С формирует временные XML-описания при сборке манифеста.
  4. Создадим публикацию заново, внимательно проверив имя публикации и используемые модули расширения веб-сервера.

Способ 4. Исправление через выгрузку в XML (для опытных разработчиков)

Если стандартные средства визуального интерфейса не помогают, мы можем прибегнуть к «хирургическому» вмешательству в структуру метаданных. Разберем, как проанализировать XML-файлы конфигурации:

Выгрузим конфигурацию в файлы (Конфигурация — Выгрузить конфигурацию в файлы...). Нам необходимо найти файлы, описывающие свойства мобильного приложения. Обычно это связано с узлом RequiredMobileApplicationPermissions.

Проанализируем пример корректной структуры XML, которую ожидает новая платформа:


<RequiredMobileApplicationPermissions>
    <item>
        <Permission>Multimedia</Permission>
        <Use>true</Use>
    </item>
    <item>
        <Permission>Location</Permission>
        <Use>true</Use>
    </item>
</RequiredMobileApplicationPermissions>

Если в ваших файлах вместо структуры с тегом <item> присутствуют просто перечисления или пустые узлы, их нужно привести к указанному виду или просто удалить содержимое секции, чтобы потом перевыставить разрешения в Конфигураторе после загрузки файлов обратно.

Дополнительные рекомендации

Не забудем про стандартные процедуры обслуживания базы данных. Выполнение команды «Тестирование и исправление» (с включенной проверкой логической целостности) помогает выявить скрытые ошибки в структуре объектов, которые могут косвенно влиять на процесс выгрузки конфигурации в мобильное устройство.

Также стоит обратить внимание на выбор версии платформы в параметрах Конфигуратора (Сервис — Параметры — Запуск 1С:Предприятия — Основные). Убедимся, что там жестко не прописана старая версия платформы, которая может конфликтовать с установленной мобильной платформой на устройстве.

Подведем итог: Ошибка «поле объекта не обнаружено (item)» является следствием эволюции мобильной платформы 1С. Основным решением остается пересоздание списка разрешений в свойствах конфигурации и синхронизация версий сборщика и основной платформы. Следуя нашим пошаговым инструкциям, вы сможете восстановить работоспособность вашего мобильного приложения и продолжить разработку на актуальных версиях системы 1С.

← На главную