До старта конференции

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

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

Экспорт встроенных 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Файл.Закрыть()
        КонецЦикла;   
    КонецЦикла;

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

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

См. также

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

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