03.06.2023 Алексей Болдонов 15588
Выгрузка данных из 1С в формате JSON

Содержание:

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-форматом можно ознакомиться в руководстве для разработчиков на ИТС.


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

Наши проекты

Автоматизация производственного планирования нефтесервисной компании на базе 1С:ЕРП 2.0
ЗАО «Инвестгеосервис»

Отрасль:
Нефтесервис

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

- Блок планирования проектов (процессы объемно-календарного планирования пр...

Внедрение ПП "1С:Бухгалтерия 8 ПРОФ" в ООО Фирма «Бисер»
ООО фирма «Бисер»

Отрасль:
Производство

Внедренное типовое решение:
1С:Бухгалтерия 8 ПРОФ

Финансы, управленческий учет, мониторинг показателей:
- Налоговый учет...

Внедрение ПП "1С:Бухгалтерия 8 ПРОФ" в ООО "ДЕКОР"
ООО «ДЕКОР»

Отрасль:
Производство

Внедренное типовое решение:
1С:Бухгалтерия 8 ПРОФ

Управление персоналом и кадровый учет (HRM):
- Кадровый учет
- Расчет зарпл...

ФГУП «Почта России»
ФГУП «Почта России»

Отрасль:
Почта, доставка

Внедренное типовое решение:
1С:Управление торговлей

- Оформление заказов поставщикам
- Оформление заказов покупателей
- Упр...

СТС-Медиа
СТС-Медиа

Отрасль:
Медиаиндустрия

Внедренное типовое решение:
1С:Управление холдингом

- Бухгалтерский учет;
- Налоговый учет;
- МСФО (GAAP/управленческий учет);
- ...

ООО "НЦКТ"
ООО "НЦКТ"

Отрасль:
Профессиональные услуги

Внедренное типовое решение:
1С:Управление нашей фирмой 8 ПРОФ

Взаиморасчеты с покупателями
Автоматизация бизнес-процессов...

ЗАО «Ламбумиз»
ЗАО «Ламбумиз»

Отрасль:
Производство картонной упаковки

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

- Маркетинг;
- Продажи;
- Планирование закупок;
- Закупки;
- Регламенти...

ООО «Аэроэкспресс»
ООО «Аэроэкспресс»

Отрасль:

Внедренное типовое решение:
1С:ERP. Управление холдингом

· Планирование закупок · Управление закупочными процедурами, включая 223 ФЗ ...

Внедрение «1С:Зарплата и управление персоналом 8 КОРП» в компании «ПБК»
ООО «Партнер Бухгалтер Консультант»

Отрасль:
Бухгалтерские услуги

Внедренное типовое решение:
1С:Зарплата и управление персоналом

- Интеграция продукта с базой данных оперативного учета Axapta;
- Доработка фу...

ООО «Фипар»
ООО «Фипар»

Отрасль:

Внедренное типовое решение:
1С:Предприятие 8. ERP Управление предприятием 2

Специалисты «Кодерлайн» внедрили «1С:ERP. Управление предприятием 2» и автома...

Госкорпорация «Ростех»
Госкорпорация «Ростех»

Отрасль:
Производство, ТЭК >> Машиностроение, приборостроение

Внедренное типовое решение:
1С:Управление холдингом 1.3.

Специалисты «Кодерлайн» помогли разработать и внедрить автоматизированную...

Автоматизация учета на базе ПП "1С:Комплексная автоматизация 8" в ЗАО "Крюгер-Гранд"
ЗАО «Крюгер-Гранд»

Отрасль:
Производство

Внедренное типовое решение:
1С:Комплексная автоматизация

- Создание интерфейсов и наборов прав пользователей;
- Отражению временных ...

Наши соц. сети

Telegram-канал «Koderline 1С» Группа в Вконтакте «Кодерлайн КОРП» Rutube

Остались вопросы - обратитесь к нам!

Впишите свои Имя и Телефон, чтобы мы ответили на все интересующие Вас вопросы.
ФИО*
E-mail*
Телефон*
Сообщение