XML и XDTO в интеграции 1С
Зачем XML и XDTO
XML — исторически главный формат обмена в 1С: планы обмена, EnterpriseData, отраслевые схемы, SOAP. XDTO (XML Data Transfer Objects) — объектная модель поверх XSD: типы, фабрика, сериализация значений платформы.
| Задача | Инструмент |
|---|---|
| Обмен между конфигурациями | XDTO + план обмена (137) |
| Произвольная схема контрагента | ФабрикаXDTO по НаборСхемXML |
| Типы Web-сервиса | Пакеты XDTO (132) |
| Сохранить ссылку/объект в файл | СериализаторXDTO |
Для новых REST-интеграций чаще JSON; XML остаётся в обмене с гос. системами и типовыми форматами 1С.
Фабрика и сериализатор
ФабрикаXDTO— глобальная (все типы конфигурации) или созданная из набора XSD.СериализаторXDTO— запись и чтение значений БД в XML.
Сериализация на сервере, файл — во временном хранилище, клиент скачивает через НачатьПолучениеФайлаССервера:
&НаСервереБезКонтекста
Функция СериализацияВXMLНаСервере(Ссылка)
Сериализатор = Новый СериализаторXDTO(ФабрикаXDTO);
ИмяФайла = ПолучитьИмяВременногоФайла("xml");
Запись = Новый ЗаписьXML;
Запись.ОткрытьФайл(ИмяФайла);
Сериализатор.ЗаписатьXML(Запись, Ссылка, НазначениеТипаXML.Явное);
Запись.Закрыть();
Возврат ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ИмяФайла));
КонецФункции
Обратная операция — ПрочитатьXML через ЧтениеXML.
Клиент ↔ сервер: файлы
На тонком клиенте прямой доступ к диску сервера недоступен. Схема:
- Клиент —
НачатьПомещениеФайлаНаСервер→ адрес во временном хранилище. - Сервер — читает
ДвоичныеДанные, парсит XML, пишет результат. - Клиент —
НачатьПолучениеФайлаССерверадля выгрузки.
Тот же паттерн для ZIP: на сервере ЧтениеZipФайла, извлечение во временный каталог, каждый файл — ПоместитьВоВременноеХранилище, массив адресов возвращается клиенту.
ZIP в обмене
Архивы сжимают пакеты обмена и наборы вложений. Типовой цикл на сервере:
Поток = ДвоичныеДанные.ОткрытьПотокДляЧтения();
ЧтениеАрхива = Новый ЧтениеZipФайла(Поток, , Пароль);
Пока ЧтениеАрхива.Следующий() Цикл
Элемент = ЧтениеАрхива.ТекущийЭлемент;
// Извлечь(), ПоместитьВоВременноеХранилище ...
КонецЦикла;
ЧтениеАрхива.Закрыть();
Пароль архива запрашивают на клиенте до помещения файла на сервер.
Связь с другими механизмами
- Универсальный обмен — XML-сообщения плана обмена.
- 128.md — JSON для REST; XDTO — для XSD/SOAP.
- 134.md — транспорт готового файла по FTP или почте.
Связанные материалы
Проверка себя
- Зачем XML с сервера передают через временное хранилище?
- Чем
ФабрикаXDTOотличается отСериализаторXDTO? - Когда выберете JSON вместо XDTO?
См. также
Другие статьи этого же раздела в боковом меню (как на странице "О разделе"). Платформа 1С - архитектура среды исполнения, назначение и место в автоматизации бизнес-процессов. История 1С - развитие платформы, ключевые этапы роста и влияние на цифровизацию бизнеса и госсектора. Экосистема 1С - продукты платформы, инструменты разработки, внедрение и сопровождение корпоративных решений. Архитектура платформы 1С, объекты метаданных, регистры, модули и исполнение прикладного кода. Пошаговое создание учебной конфигурации: справочники, документ, регистры, проведение, подсистемы и роли. Синтаксис и пунктуация 1С - базовые правила записи кода, операторы и структура выражений. Типизация, набор правил определения типа данных значений языка. Управление потоком выполнения в 1С - последовательность операций, ветвления и контроль выполнения сценариев. Функции и процедуры 1С - различия, правила использования и организация переиспользуемой бизнес-логики. Объекты и классы 1С - модель метаданных, экземпляры объектов и работа с прикладными сущностями. Данные — это конкретные записи, созданные пользователями или автоматически системой в рамках определённых объектов. Каждая запись имеет уникальный идентификатор и соответствует описанию в метаданных. Обработка ошибок в 1С - перехват исключений, диагностика сбоев и устойчивые сценарии обработки.Платформа 1С
История 1С
Экосистема 1С
Архитектура и мета-объекты 1С
Конфигурирование — мини-склад
Синтаксис и пунктуация 1С
Переменные и типы данных 1С
Управление потоком выполнения 1С
Функции и процедуры 1С
Объекты и классы 1С
Работа с базами данных 1С
Обработка ошибок 1С