Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

XDTO 1С:Предприятие и СУБД

Работа с Фабрикой XDTO в 1С: доступные пространства имен (Namespaces)

Обновлено: 10.09.2026 · Официальная документация ↗

Архитектура XDTO в платформе 1С

XDTO (XML Data Transfer Objects) — это универсальный механизм платформы 1С для работы с типизированными данными на основе схем XML (XSD). Объект ФабрикаXDTO является диспетчером, который знает структуру всех типов данных, описанных в конфигурации (в ветке XDTO-пакеты) и базовых типов платформы. Бизнес-риски: сбои при интеграции со сторонними веб-сервисами (SOAP/REST), государственными системами (ЕГАИС, Меркурий, Честный ЗНАК) из-за несоответствия пространств имен.

Базовые (встроенные) пространства имен 1С

URI пространства имен (Namespace)Назначение типов данных
http://v8.1c.ru/8.1/data/coreБазовые типы: Строка (string), Число (decimal), Булево (boolean), Дата (date), УникальныйИдентификатор (UUID).
http://v8.1c.ru/8.1/data/enterprise/current-configТипы, специфичные для конкретной конфигурации 1С (ссылки на справочники, документы).
http://v8.1c.ru/8.2/data/spreadsheetТипы для работы с табличными документами в формате XML.

Алгоритм работы с Фабрикой XDTO

Сценарий 1: Создание объекта простого типа и его сериализация

Для корректной работы веб-сервисов необходимо правильно инициализировать переменные через базовое пространство имен (namespace).

// 1. Получаем базовый тип XDTO "string" из пространства имен core
ТипСтрока = ФабрикаXDTO.Тип("http://v8.1c.ru/8.1/data/core", "string");

// 2. Создаем значение XDTO
ЗначениеXDTO = ФабрикаXDTO.Создать(ТипСтрока, "Тестовое сообщение");

// 3. Сериализуем объект в XML (через ЗаписьXML)
Запись = Новый ЗаписьXML;
Запись.УстановитьСтроку();
ФабрикаXDTO.ЗаписатьXML(Запись, ЗначениеXDTO);
XMLСтрока = Запись.Закрыть(); // Возвращает валидный XML узел

Сценарий 2: Чтение данных из сторонней XSD-схемы (Парсинг)

Если сервис (например, банк) прислал XML и свою схему (XSD), нужно создать локальную Фабрику XDTO, чтобы 1С знала структуру документа.

// Чтение стороннего XSD файла и создание фабрики
ЧтениеXSD = Новый ЧтениеXML;
ЧтениеXSD.ОткрытьФайл("C:\Integration\BankSchema.xsd");

Построитель = Новый ПостроительDOM;
СхемаXSD = Построитель.Прочитать(ЧтениеXSD);
ЧтениеXSD.Закрыть();

НаборСхем = Новый НаборСхемXML;
НаборСхем.Добавить(СхемаXSD);

// Локальная фабрика, не затрагивающая глобальную конфигурацию
ЛокальнаяФабрика = Новый ФабрикаXDTO(НаборСхем);

// Теперь можно безопасно читать XML по правилам банка
ТипОбъекта = ЛокальнаяФабрика.Тип("http://bank.ru/api/v1", "PaymentDocument");

Типовые ошибки разработчиков

  • Путаница между Глобальной и Локальной фабрикой: Использование глобальной ФабрикаXDTO для парсинга сторонних XML без добавления XDTO-пакета в конфигуратор приводит к ошибке «Тип не определен». Для временных структур используйте Новый ФабрикаXDTO(НаборСхемXML).
  • Несовпадение регистра (Case Sensitivity): URI пространств имен чувствительны к регистру. http://v8.1C.ru/8.1/data/core (большая 'C') выдаст ошибку, так как платформа ожидает строго http://v8.1c.ru/8.1/data/core.
Проблемы с интеграцией 1С и внешних API по протоколам SOAP/REST?
Ошибки сериализации XDTO и падения веб-сервисов тормозят бизнес-процессы. Разработчики ITSTM профессионально настроят обмены данными (КД3, EnterpriseData, прямые HTTP-запросы) между 1С и любыми сторонними системами (Сайты, маркетплейсы, WMS).
💡 Практика специалистов: Практика ITSTM: При генерации больших XML-файлов (сотни мегабайт) через ФабрикаXDTO.ЗаписатьXML() оперативная память процесса rphost может закончиться, вызвав ошибку Out of Memory. Для выгрузки сверхбольших объемов данных (Big Data) используйте потоковую запись через объект 'ЗаписьXML', записывая узлы напрямую (ЗаписатьНачалоЭлемента, ЗаписатьТекст), минуя построение DOM-дерева объектов XDTO в памяти.

Частые вопросы (FAQ)

Что такое ФабрикаXDTO в 1С?

Это встроенный в ядро платформы 1С класс (объект), который отвечает за генерацию и чтение XML/JSON структур строго по заданным правилам (XSD схемам). Он проверяет типы данных (валидация), чтобы в числовое поле не попала строка.

Где посмотреть все доступные пространства имен моей базы 1С?

В конфигураторе откройте ветку 'Общие' -> 'XDTO-пакеты'. URI каждого пакета (поле URI пространства имен в свойствах) — это то, к чему вы должны обращаться в коде 1С (параметр URIПространстваИмен).

Почему метод ФабрикаXDTO.ПрочитатьXML выдает ошибку о несоответствии типа?

Входящий XML файл содержит теги, типы или пространства имен (xmlns:...), которых нет в XSD схеме, прикрепленной к этой фабрике. Необходима строгая синхронизация схемы (XSD) и фактического файла (XML).

Можно ли использовать XDTO для сериализации в JSON?

Да, начиная с версии платформы 8.3. ФабрикаXDTO поддерживает методы ПрочитатьJSON и ЗаписатьJSON, что сильно упрощает построение REST API на стороне 1С.

Полезные материалы
Рекомендуем