Выгрузка данных из 1С в формате JSON
-

Выгрузка данных из 1С в формате JSON

0
17034
03.06.2023 Алексей Болдонов

Содержание:

1.      Автоматическая сериализация и десериализация объектов XDTO

2.      Работа с объектами XDTO  


1.      Автоматическая сериализация и десериализация объектов XDTO


В настоящее время достаточно часто требуется организовать взаимодействие 1С с различными внешними и/или внутренними приложениями как на базе платформы 1С, так и сторонних вендоров.


«Из коробки» платформа уже имеет ряд встроенных механизмов, позволяющих реализовать обмен, но в данной статье мы рассмотрим один из вариантов работы с форматом файла  JSON.


Первые встроенные средства по работе с данным форматом (потоковая запись/чтение и сериализация примитивных типов и коллекций) появились в платформе начиная с релиза 8.3.6.1977 (29.04.2015), а в релизе 8.3.7.1759 (19.11.2015) появилась автоматическая сериализация и десериализация объектов XDTO.  


2.      Работа с объектами XDTO


Рассматриваемый механизм в первую очередь используется при обмене данными между информационными системами, написанными на платформе системы 1С: Предприятие, но также подходит для обмена с внешними системами, готовыми принимать типы данных «1С: Предприятие», т.к. полностью соответствует JSON-стандарту, а потому не накладывает никаких ограничений на его использование для обмена с другими системами.


Чтобы выполнить запись XDTO-объекта в формате файла JSON, необходимо использовать (в простейшем случае) следующие объекты:


1.      Объект, поддерживающий преобразование в/из XDTO.

2.      Сериализатор XDTO-объектов ‑ СериализаторXDTO;

3.      Объект, обеспечивающий низкоуровневую запись данных в формате JSON – ЗаписьJSON.

4.      Объект настроек сериализации НастройкиСериализацииJSON.


Источником данных послужит справочник «Демо: Договоры контрагентов» (Демонстрационная конфигурация «Библиотека стандартных подсистем», редакция 3.1), который имеет следующий вид:




Рассмотрим пример сериализации данных типа СправочникОбъект:

           



В результате будет получен файл JSON следующего содержания:




Следует обратить внимание на то, что сериализация значений типа Дата выполняется только в формате ISO и не управляется при записи данных, а также не поддерживается использование функции преобразования при операции сериализации.


Рассмотрим пример чтения файла JSON, полученного ранее в примере сериализации справочника «Демо: Договоры контрагентов»:




В приведённом примере следует обратить внимание на явное указание типа десериализуемых данных в методе ПрочитатьJSON, т.к. при выполнении JSON-сериализации значение параметра НазначениеТипаXML было по умолчанию установлено в значение Неявное (см. описание метода ЗаписатьJSON в синтакс-помощнике).


При обмене данными между прикладными программными решениями с помощью объектов XDTO может потребоваться выполнить некоторую предобработку данных, которые поступают в пакете обмена. Например, заменить любое значение некоторого типа на фиксированное значение того же типа (т.е. нельзя изменить тип считываемого объекта!), кроме служебных свойств, используемых конфигурацией системы «1С: Предприятие» (например, #type, #ns и т.д.). Для этого можно воспользоваться функцией восстановления:




В результате десериализации в прочитанном объекте у реквизита ДатаНачалаДействия будет установлено заданное нами значение:



ДатаНачалаДействия


С полным перечнем механизмов по работе с JSON-форматом можно ознакомиться в руководстве для разработчиков на ИТС.


Специалист компании "Кодерлайн"
Алексей  Болдонов

Обсудить статью в Telegram Задать вопрос автору статьи
Тема вопроса*
Ваше имя*
E-mail или телефон*
Ваш вопрос*
 

Добавить комментарий
Текст сообщения*
Защита от автоматических сообщений
 
Услуги программиста 1С
Получите специалиста
для решения всех задач
в области 1С
Программы 1С
Цены и подробное описание программ 1С:Предприятие 8.