8.х ОБМЕН Типы данных в XML

Тема в разделе "Обмен данными в "1С:Предприятие 8"", создана пользователем Evgeny965, 20 мар 2017.

  1. TopicStarter Overlay
    Evgeny965
    Offline

    Evgeny965

    Регистрация:
    18 сен 2014
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Добрый день!
    Первый раз пишу обработку для загрузки данных через XML.
    Хочу загружать данные через фабрику XDTO, но возникли проблемы с пониманием того, какого типа данные приходят (документации нет).
    Фрагмент входного файла:
    <METADATA>
    <FIELDS>
    <FIELD attrname="DATETIME"fieldtype="dateTime"/>
    <FIELD attrname="NOZZLE"fieldtype="i2"/>
    <FIELD attrname="OSN_ID"fieldtype="i4"/>
    <FIELD attrname="COEFF"fieldtype="r8"/>
    </FIELDS>
    <PARAMS />
    </METADATA>

    Вопрос - что означают записи:
    "fieldtype="i2"
    "fieldtype="r8"
    Конкретно, что означают: i2, i4, r8.
    и какой стандарт "dateTime" использется:
    Вроде должно быть:"2017-03-15T20:14:49358", а приходит - DATETIME="20170315T20:14:49358"
    Буду признателен если ткнете носом где это расписано (сам не нашел)
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    8.202
    Симпатии:
    835
    Баллы:
    204
    Это должно быть описано на отправляющей стороне.
    Какие типы будете передавать, те и будут.
  3. TopicStarter Overlay
    Evgeny965
    Offline

    Evgeny965

    Регистрация:
    18 сен 2014
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Вы хотите сказать, что это не стандартные обозначения?
    Я, массу файлов с подобными сокращениями нашел в интернете - нет только расшифровки.
    Документации нет - есть программа которая их формирует и отправляет.
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    8.202
    Симпатии:
    835
    Баллы:
    204
    значит должна быть документация на эту программу.
    В случае XML нет понятия стандартные/не стандартные типы передаваемых данных. Типы передаваемых данных описываются "передатчиком" в отправляемом файле. Задача приемника правильно обработать эти типы данных, либо договорится с отправляющей стороной о другой структуре/типах передаваемых данных.
  5. TopicStarter Overlay
    Evgeny965
    Offline

    Evgeny965

    Регистрация:
    18 сен 2014
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Документации нет!!!
    Представленный фрагмент и есть описание типов из заголовка файла.
    Да, но подобные сокращения ( i2, i4, r8) в файлах XML встречаются очень часто. Это наводит на мысль, что существует общепринятое описание данных типов.
    Я, конечно догадываюсь, что символ "i" от integer, а вот цифры это либо разрядность числа (2 или 4 бита), либо количество знаков (2 или 4 знака). Что означает символ "r" и число 8 пока понять не могу.
    В настоящий момент загружаю такие данные как string, но хочется все сделать правильно.
    Программа куплена и находится в нашем распоряжении - с кем договариваться? В программе есть два варианта исходящих форматов: XML и TXT - необходима загрузка именно XML.
  6. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.312
    Симпатии:
    141
    Баллы:
    104
    Цифры означают количество байт. i2 - integer,2 байта, r8 - real, 8 байт
    Это не Xsd схема, поэтому типы называют как хотят. Что за добрая программа без документации?
  7. TopicStarter Overlay
    Evgeny965
    Offline

    Evgeny965

    Регистрация:
    18 сен 2014
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Спасибо.
    Опечатался когда писал "разрядность числа (2 или 4 бита)" - имел ввиду байты.
    Про тип real помнил, но цифра 8 смутила.
    У типа real разрядность вроде бы должна быть 6 байт, а 8 - это уже double?
    И ещё вопрос: как загрузить такой формат даты "DATETIME="20170315T20:14:49358".
    В настоящий момент парсю поле DATETIME и из записи "20170315T20:14:49358 делаю "2017-03-15T20:14:49358,
    после чего скармливаю ее XMLЗначение(Тип("Дата"), СтрокаДаты). Может есть встроенная функция понимающая исходный формат даты?
    Последнее редактирование: 21 мар 2017
  8. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.312
    Симпатии:
    141
    Баллы:
    104
    да, 8 байт - это double, просто в таком буквенно-цифровом обозначении не используется деление ни в целых ни в вещественных на разные подтипы.

    дату можете парсить удалив все символы из строки кроме цифр и убрав последние две цифры (сотые секунды), после чего скормить эту строку функции Дата

Поделиться этой страницей