При работе с базами данных 1С, опубликованными на веб-серверах (IIS или Apache), лаунчер для 1C с проверкой доменной авторизации поможет избежать проблем, с которыми системные администраторы и пользователи иногда сталкиваются в виде специфической ошибки XDTO. Она возникает внезапно: при попытке входа через тонкий клиент после ввода логина и пароля система выдает сообщение: «Несоответствие типов XDTO по причине: Ошибка проверки данных XDTO: Значение: '' не соответствует простому типу: {http://www.w3.org/2001/XMLSchema}anyURI». При этом вход через обычный браузер (веб-клиент) может работать абсолютно штатно.
Для начала проанализируем ситуацию с технической точки зрения. Ошибка указывает на то, что в процессе обмена данными между тонким клиентом 1С и веб-сервером один из XML-пакетов содержит пустое значение там, где по схеме XDTO должен быть валидный идентификатор ресурса (URI). Поскольку anyURI не может быть пустой строкой в данной структуре, парсер XDTO на стороне клиента обрывает соединение (для глубокой работы со схемами может потребоваться автоматическое формирование XSD-пакета).
Тот факт, что в браузере база открывается, а в тонком клиенте — нет, говорит нам о различиях в механизмах обработки сетевого трафика. Тонкий клиент более чувствителен к целостности XDTO-пакетов и корректности HTTP-заголовков. Часто проблема кроется в промежуточном оборудовании или программном обеспечении, которое «инспектирует» или «кэширует» трафик, искажая его содержимое. Проверить доступ к метаданным в обход тонкого клиента поможет универсальный Python-коннектор к 1С.
Как показывает практика и опыт участников профессиональных сообществ, одной из главных причин является работа корпоративных шлюзов, таких как Microsoft ForeFront Threat Management Gateway (TMG). Эти системы могут некорректно обрабатывать специфические запросы 1С.
Разберем алгоритм действий для администратора сети:
Современные антивирусы (например, Kaspersky Endpoint Security) часто используют технологию перехвата защищенных соединений (HTTPS). Рассмотрим подробнее, как это влияет на 1С:
Антивирус подменяет сертификат сервера своим, расшифровывает трафик для анализа и упаковывает его обратно. В процессе этой «переупаковки» сложные структуры XDTO могут быть повреждены. Если тонкий клиент получает пустой ответ на запрос схемы метаданных, мы увидим обсуждаемую ошибку.
Чтобы исключить этот фактор, выполним следующие шаги:
1cv8c.exe в список доверенных программ с разрешением не сканировать сетевой трафик.Если сетевые экраны ни при чем, проанализируем состояние самого веб-сервера. Иногда ошибка возникает из-за «зависания» или некорректного состояния публикации базы.
Выполним процедуру перепубликации по шагам:
Тонкому клиенту для работы требуются файлы статического содержимого (схемы .xsd, конфигурационные файлы). Если на сервере IIS не установлен компонент «Статическое содержимое» (Static Content), сервер не сможет отдать эти файлы, и клиент получит пустую строку в ответ на запрос ресурса.
Проанализируем настройки Windows Server:
iisreset в командной строке.Тонкий клиент использует системную библиотеку WinHTTP для связи с сервером. У этой библиотеки есть собственный кэш, который не всегда очищается стандартными средствами 1С. Рассмотрим, как принудительно сбросить эти настройки.
Запустим командную строку от имени администратора и выполним последовательно команды:
netsh winhttp reset proxy
netsh interface ipv4 reset
netsh winsock reset
После этого рекомендуется очистить локальный кэш пользователя 1С, удалив содержимое папок:
%LocalAppData%\1C\1cv8%AppData%\1C\1cv8Файл default.vrd управляет параметрами публикации. Если в нем некорректно прописаны URI для внешних компонентов или расширений, это вызовет ошибку anyURI.
Откроем файл default.vrd (он находится в папке публикации на сервере) любым текстовым редактором и внимательно проанализируем структуру. Пример корректного начала файла:
<?xml version="1.0" encoding="UTF-8"?>
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
base="/BaseName"
ib="Srvr="ServerName";Ref="BaseName";">
Если в файле присутствуют пустые атрибуты в секциях <ws> или <standardMethod>, это может быть источником проблемы. В таком случае лучше пересоздать публикацию через конфигуратор, как было описано выше.
Подводя итог, можно сказать, что ошибка «Значение: '' не соответствует простому типу: anyURI» чаще всего является следствием внешнего вмешательства в HTTP-трафик. Начните диагностику с проверки сетевых фильтров, прокси-серверов и антивирусов, и только после этого переходите к манипуляциям с настройками самого веб-сервера IIS или Apache.