Инструменты пользователя

Инструменты сайта


1c:общие:xdto

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
1c:общие:xdto [2016/10/26 12:16]
alex Исправление заголовка
1c:общие:xdto [2021/05/30 02:05] (текущий)
admin Добавил ссылку, исправил taxpravo на первоисточник
Строка 7: Строка 7:
 Самым ярким примером использования такого механизма обмена являются различного рода декларации (налоговые и прочее). На сайтах соответствующих ведомств всегда можно найти файл со схемой. Другой распространённый пример - обмен данными с сайтом. Самым ярким примером использования такого механизма обмена являются различного рода декларации (налоговые и прочее). На сайтах соответствующих ведомств всегда можно найти файл со схемой. Другой распространённый пример - обмен данными с сайтом.
  
-С точки зрения программиста 1с, объект XDTO очень похож на [[1c:коллекции:Фиксированная структура|Фиксированную структуру]], созданную на основе файла со схемой. Эта псевдоструктура может быть загружена из XML-файла и использована для загрузки сторонних данных. А может быть заполнена данными и записана в корректный XML-файл. Который впоследствии будет использован для загрузки в другую информационную систему. В любом случае работа с объектом состоит из 3 основных этапов: получение типа объекта, создание объекта XDTO требуемого типа, использование объекта XDTO для выгрузки или загрузки данных.+С точки зрения программиста 1с, объект XDTO очень похож на [[1c:коллекции:Фиксированная структура|Фиксированную структуру]], созданную на основе файла со схемой. Эта псевдоструктура может быть загружена из XML-файла и использована для загрузки сторонних данных. А может быть заполнена данными и записана в корректный XML-файл. Который впоследствии будет использован для загрузки в другую информационную систему. В любом случае работа с объектом состоит из 3 основных этапов: [[1c:общие:xdto#Получение типа объекта|получение типа объекта]][[1c:общие:xdto#Создание объекта XDTO|создание объекта XDTO]] требуемого типа, использование объекта XDTO для [[1c:общие:xdto#Запись объектов XDTO в файл|выгрузки]] или [[1c:общие:xdto#Чтение объектов XDTO из файла|загрузки]] данных.
  
 ===== Получение типа объекта ===== ===== Получение типа объекта =====
 Это наиболее трудный для понимания этап т.к. он не соответствует обычной работе с переменными 1с. Но для работы с объектами XDTO он обязателен. Прежде чем создать объект XDTO, необходимо получить его тип. Для этого используются специальные объекты - [[1c:глобальные_объекты:ФабрикаXDTO|фабрики типов XDTO]]. Это наиболее трудный для понимания этап т.к. он не соответствует обычной работе с переменными 1с. Но для работы с объектами XDTO он обязателен. Прежде чем создать объект XDTO, необходимо получить его тип. Для этого используются специальные объекты - [[1c:глобальные_объекты:ФабрикаXDTO|фабрики типов XDTO]].
  
-Платформа позволяет использовать 2 вида схем - встроенные в конфигурацию [[1c:общие:ПакетыXDTO|XDTO-пакеты]] или внешние файлы с расширением .xsd и оформленные в соответствии со стандартами [[https://www.w3.org/TR/xmlschema-0/|w3c]]. Соответственно, существует 2 способа получения объекта-фабрики типов.+Платформа позволяет использовать 2 вида схем - встроенные в конфигурацию [[1c:объекты:XDTO-пакеты|XDTO-пакеты]] или внешние файлы с расширением .xsd и оформленные в соответствии со стандартами [[https://www.w3.org/TR/xmlschema-0/|w3c]]. Соответственно, существует 2 способа получения объекта-фабрики типов.
  
 ==== Использование XDTO-пакетов ==== ==== Использование XDTO-пакетов ====
Строка 19: Строка 19:
 ТипОбъектаНоменклатура = ФабрикаXDTO.Тип("http://www.wiki-1c.ru/xdto", "Номенклатура");  ТипОбъектаНоменклатура = ФабрикаXDTO.Тип("http://www.wiki-1c.ru/xdto", "Номенклатура"); 
 </code> </code>
-Здесь [[1c:общие:глобальные_объекты:ФабрикаXDTO]] - это особый глобальный объект, который знает всё обо всех объектах XDTO, описанного в имеющихся в конфигурации XDTO-пакетах. Метод [[1c:общие:глобальные_объекты:ФабрикаXDTO:Тип|Тип()]] возвращает искомый тип объекта XDTO ([[1c:объекты:ТипОбъектаXDTO]]). Он принимает 2 параметра - пространство имён и имя типа (оба - строки). Результат полезно запомнить в переменной, в дальнейшем её можно использовать для создания объектов XDTO произвольное количество раз.+Здесь [[1c:общие:глобальные_объекты:ФабрикаXDTO]] - это особый глобальный объект, который знает всё обо всех объектах XDTO, описанных в имеющихся в конфигурации XDTO-пакетах. Метод [[1c:общие:глобальные_объекты:ФабрикаXDTO:Тип|Тип()]] возвращает искомый тип объекта XDTO ([[1c:объекты:ТипОбъектаXDTO]]). Он принимает 2 параметра - пространство имён и имя типа (оба - строки). Результат полезно запомнить в переменной, в дальнейшем её можно использовать для создания объектов XDTO произвольное количество раз.
  
 <WRAP round tip>Заметим, что в параметре передаётся не имя пакета, а его пространство имён. Имя пакета вообще нигде не используется и задаётся только для удобства поиска в дереве конфигурации.</WRAP> <WRAP round tip>Заметим, что в параметре передаётся не имя пакета, а его пространство имён. Имя пакета вообще нигде не используется и задаётся только для удобства поиска в дереве конфигурации.</WRAP>
Строка 39: Строка 39:
  
 ===== Запись объектов XDTO в файл ===== ===== Запись объектов XDTO в файл =====
-Прежде чем записать объект, его нужно заполнить. Принципы заполнения схожи с заполнением фиксированной структуры для реквизитов базовых типов, и с созданием объекта XDTO для прочих реквизитов.+Прежде чем [[1c:общие:xdto#Запись объекта XDTO|записать объект]], его нужно заполнить. Принципы заполнения схожи с заполнением фиксированной структуры для реквизитов базовых типов, и с созданием объекта XDTO для прочих реквизитов.
  
 ==== Заполнение объекта XDTO ==== ==== Заполнение объекта XDTO ====
Строка 104: Строка 104:
 В результате в переменной ''Результат'' будет следующее содержимое: В результате в переменной ''Результат'' будет следующее содержимое:
  
-<code xml>+<code xml goods.xml>
 <?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
 <Номенклатура xmlns="http://www.wiki-1c.ru/xdto" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Номенклатура xmlns="http://www.wiki-1c.ru/xdto" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
Строка 163: Строка 163:
  
 Связанные темы: Связанные темы:
-[[1c:общие:ПакетыXDTO|XDTO-пакеты]], [[https://ru.wikipedia.org/wiki/XML_Schema|XML Schema]]+[[1c:общие:ПакетыXDTO|XDTO-пакеты]], [[https://ru.wikipedia.org/wiki/XML_Schema|XML Schema]], [[https://www.w3.org/TR/xmlschema-0/|XML Schema. Часть 0: Основные сведения (англ.)]] и [[http://citforum.ru/internet/xml/scheme/|перевод]], [[https://www.w3.org/TR/xmlschema-1/|XML Schema. Часть 1: Структуры (англ.)]], [[https://www.w3.org/TR/xmlschema-2/|XML Schema. Часть 2: Типы данных (англ.)]] 
 + 
 +Другие статьи на эту тему: 
 +  * [[https://infostart.ru/public/98019/|Инфостарт:XDTO-пакеты, xml, xml schema]] 
 +  * [[http://1c-programmer-blog.ru/programmirovanie/xdto-v-1s.html]] 
 +  * [[http://infostart.ru/public/167459/|Инфостарт:XDTO - это просто]] 
 +  * [[https://infostart.ru/public/311011/|Инфостарт:Разбор XML документа - почти все возможные способы]] 
 + 
 +Прочее: 
 +{{backlinks>.#!1c:общие:xdto}}
1c/общие/xdto.1477473390.txt.gz · Последнее изменение: 2016/10/26 12:16 — alex