Экспорт встроенных XML-схем описаний типов 1С:Предприятия

Программирование - Практика программирования

21
Экспорт встроенных XML-схем описаний типов 1С:Предприятия

Предыстория:

Как-то писал обмен между разношерстными конфигурациями на платформе 8.1 на базе XML. Разбор-построение XML-файла обмена делалось по схемам (использовался механизм XDTO). И возникла необходимость при разработке схем иметь под рукой полное описание встроенных типов 1С, которые сериализуются через XDTO, дабы импортировать их в свои схемы. Вот и написал небольшой код для выгрузки встроенных схем в отдельные XSD-файлы. Может кому-то понадобится. XSD-файлы прилагаются.

Собственно код:

    Для Каждого Пакет из ФабрикаXDTO.Пакеты Цикл
        Если Пакет.URIПространстваИмен = "http://www.w3.org/2001/XMLSchema" Тогда
            Продолжить;
        КонецЕсли;   
        НаборСхем = ФабрикаXDTO.ЭкспортСхемыXML(Пакет.URIПространстваИмен);
        Для Счетчик = 0 по НаборСхем.Количество() - 1 Цикл
            Схема = НаборСхем.Получить(Счетчик);
            Схема.ОбновитьЭлементDOM();
            ЗаписьDOM = Новый ЗаписьDOM;
            ЗаписьXMLСтрока = Новый ЗаписьXML;
            ЗаписьXMLСтрока.УстановитьСтроку();
            ЗаписьXMLФайл = Новый ЗаписьXML;
            ЗаписьDOM.Записать(Схема.ДокументDOM, ЗаписьXMLСтрока);
            ЗаписьXMLФайл.ОткрытьФайл(ИмяФайла + "[" + Формат(Счетчик,"ЧЦ=10;ЧГ=0;ЧН=") + "].xsd");
            ЗаписьXMLФайл.ЗаписатьБезОбработки(ЗаписьXMLСтрока.Закрыть());
            ЗаписьXMLФайл.Закрыть()
        КонецЦикла;   
    КонецЦикла;

21

Скачать файлы

Наименование Файл Версия Размер
Схемы 8.1
.zip 16,72Kb
28.05.15
66
.zip 16,72Kb 66 Скачать бесплатно
Схемы 8.2
.zip 38,70Kb
28.05.15
102
.zip 38,70Kb 102 Скачать бесплатно

См. также

Комментарии
Избранное Подписка Сортировка: Древо
1. Davlad_A 56 08.11.10 10:17 Сейчас в теме
Дмитрий, ваш материал может быть очень полезен!!
Однако без пошаговой инструкции "для чайников" разобраться сложно, хотя очень бы нужно. Если вам удастся добавить описание к данному виду интеграции "разношерстных" ИС, думаю, от многих будет немалый респект.
Вобщем, плюсуем с надеждой на продолжение :) ...
2. samamoiloff 858 04.06.12 12:25 Сейчас в теме
3. katkov_a 58 17.05.16 13:54 Сейчас в теме
Спасибо!
Чёрт, как же меня мучил вопрос: как из СхемыXML XSD вытащить.
4. MaxS 1216 17.02.17 10:24 Сейчас в теме
Спасибо!
Получается даже в 1С прежде чем писать:
МояФабрикаXDTO = СоздатьФабрикуXDTO(Схемы);

Нужно сохранить встроенную схему в файл и из неё создать свою фабрику. Без промежуточного файла никак?
6. antz 22.02.17 10:38 Сейчас в теме
(4) Без промежуточного файла - как. Используйте пространство имен и будет вам счастье. Тут я выкладывал пример.
5. Dmitryiv 115 22.02.17 10:33 Сейчас в теме
Немного не верный подход. Новая "фабрика" создаётся на основании схемы. Схема создаётся либо интерактивно средствами платформы либо сторонними приложениями. В схеме указывается какой(ие) тип(ы) из предоставляемых текущей конфигурацией нужно импортировать в свою схему. Данный инстумент как раз и был сделан для того, чтобы была возможность экспортировать типы текущей конфигурации во внешние XML редакторы типа ALTOVA XMLSpay и ему подобные.
7. Dmitryiv 115 22.02.17 11:29 Сейчас в теме
Помимо пространства имён в своей схеме необходимо указать директиву импрота этого пространства имён.
Оставьте свое сообщение