В процессе эксплуатации системы 1С:Предприятие через веб-интерфейс технические специалисты часто сталкиваются со специфической ошибкой: при попытке открыть любую форму ссылочного объекта (справочника, документа или задачи) система выдает сообщение: «Ошибка преобразования данных XDTO: Отображение лексического значения 'undefined' в значение типа 'УникальныйИдентификатор'». При этом в тонком клиенте всё работает корректно. Проанализируем эту ситуацию, выясним причины и разберем по шагам методы решения.
Для начала разберем, что происходит в момент возникновения сбоя. Веб-клиент 1С взаимодействует с сервером через HTTP-запросы. Когда мы пытаемся открыть форму, браузер отправляет запрос к ресурсу /e1cib/misc с параметром cmd=refs. Этот механизм предназначен для получения представлений ссылок и их метаданных. Ошибка возникает на этапе десериализации данных: сервер или клиент ожидает получить валидный UUID (уникальный идентификатор), но вместо него приходит значение undefined. Поскольку undefined не может быть преобразовано в тип УникальныйИдентификатор, механизм XDTO (XML Data Transformation Objects) выдает критическую ошибку и прерывает операцию.
Посмотрим на типичную запись в технологическом журнале (ТЖ), которая сопровождает эту проблему:
Exception=580392e6-ba49-4280-ac67-fcd6f2180121,Descr="src\VResourceInfoBaseImpl.cpp(1131):
Неспецифицированная ошибка работы с ресурсом
Ошибка при выполнении запроса POST к ресурсу /e1cib/misc:
Ошибка преобразования данных XDTO:
НачалоСвойства: id Форма: Атрибут Тип: {http://v8.1c.ru/8.1/data/core}UUID
Ошибка отображения типов: Отображение лексического значения 'undefined' в значение типа 'УникальныйИдентификатор'"
Наиболее распространенная причина этой ошибки — несоответствие версии модуля расширения 1С для веб-сервера (Apache или IIS) версии самой платформы 1С, на которой работает сервер приложений. Рассмотрим ситуацию подробнее: при обновлении платформы на сервере администраторы часто забывают обновить файл модуля в настройках веб-сервера.
Выясним, как правильно прописать путь к актуальному модулю. В случае использования Apache, необходимо проверить конфигурационный файл httpd.conf. Найдем строку, отвечающую за загрузку модуля 1С. Проанализируем пример правильной настройки:
Для Windows-сервера путь должен указывать строго на папку bin той версии платформы, которая является основной:
LoadModule _1cws_module "C:/Program Files/1cv8/8.3.15.1656/bin/wsap24.dll"
Для Linux-серверов путь будет выглядеть иначе, но принцип остается тем же — строгое соответствие версии:
LoadModule _1cws_module "/opt/1C/v8.3/x86_64-8.3.15.1656/wsap24.so"
Важный момент: если вы установили новую платформу (например, 8.3.16.хххх), а в файле httpd.conf остался путь к 8.3.15.1656, веб-клиент будет работать нестабильно, выдавая ошибки преобразования типов. После изменения пути обязательно перезапустите службу веб-сервера (Apache или IIS).
Рассмотрим ситуацию с точки зрения программных ошибок самой платформы. Версии ветки 8.3.15 (особенно релиз 1656) имели зарегистрированные ошибки в механизме сериализации XDTO для веб-клиента. В некоторых случаях система некорректно формировала JSON-пакет при передаче идентификаторов объектов.
Если обновление модуля веб-сервера не помогло, проанализируем необходимость обновления платформы. Рекомендуется перейти на стабильные сборки более высоких веток, например 8.3.18 или выше. Если переход на новую ветку невозможен, следует установить последний доступный патч или релиз внутри ветки 8.3.15 (например, 8.3.15.2107), где многие проблемы с undefined в UUID были исправлены разработчиками «1С».
Иногда причина кроется в «зависших» временных файлах. Веб-клиент активно кэширует скрипты платформы (файлы типа mod_main_loader.js). Если вы обновили платформу, но браузер продолжает использовать старую версию JS-движка, возникнет конфликт протоколов обмена данными.
Выполним следующие шаги для полной очистки:
Ctrl+Shift+Del и удалите временные файлы и куки «за всё время». Простого обновления страницы через F5 недостаточно.1C:Enterprise Server Administration, перейдите в каталог srvinfo и удалите содержимое папки reg_1541/snccntx... (кэш сеансовых данных). Будьте осторожны: это приведет к завершению всех текущих сеансов.Проанализируем файл публикации информационной базы — default.vrd. Этот XML-файл содержит настройки взаимодействия веб-сервера с базой 1С. Ошибка может возникать, если в файле остались некорректные параметры от предыдущих публикаций.
Разберем алгоритм перепубликации:
default.vrd не установлены специфические флаги в секции <standardOdata> или <analytics>, которые могут влиять на передачу ссылок, если они вам не требуются.Выясним, нет ли проблем в самих данных. Если в базе существует объект, у которого «битый» или пустой UUID (в результате некорректного обмена или сбоя СУБД), веб-сервер при попытке получить его представление может вернуть undefined.
Рассмотрим порядок действий в Конфигураторе:
Не стоит забывать и о влиянии сетевой инфраструктуры. Некоторые антивирусы с функцией «Web Shield» или прокси-серверы могут анализировать содержимое POST-запросов 1С. Поскольку формат обмена данными 1С является проприетарным, фильтры безопасности могут ошибочно модифицировать тело запроса, удаляя «подозрительные» с их точки зрения идентификаторы. Попробуйте временно отключить антивирусное ПО на клиентской машине и сервере для диагностики.
Подводя итог, можно сказать, что ошибка «undefined» в типе UUID — это классический симптом нарушения протокола обмена. Начните с проверки пути к wsap24.dll в настройках Apache, и в 90% случаев это решит проблему. Если же это не помогло — последовательно переходите к очистке кэшей и обновлению релиза платформы.