03.06.2023 Алексей Болдонов 16274
Выгрузка данных из 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С:Управление торговлей"
ООО «ТЕЛЕВЕС РУСС»

Отрасль:
Торговля

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

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

ООО "Смена"
ООО "Смена"

Отрасль:
Торговля, склад, логистика, транспорт

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

Банк и касса
Расчеты с контрагентами
Торговые операции
Взаиморасчеты с...

ООО «ПЛЮСПЭЙ»
ООО «ПЛЮСПЭЙ»

Отрасль:
Организацией расчетов посредством электронных средств платежа

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

- Разработка подсистемы оперативного учета транзакций...

Внедрение блока бухгалтерского учета «1С:Управление производственным предприятием»
ОАО «Издательство «Просвещение»

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

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

Бухгалтерский учет:
- Завершение периода;
- Регламентированная отчетнос...

Группа компаний АО «Киномакс»
Группа компаний АО «Киномакс»

Отрасль:
Культура, шоу-бизнес

Внедренное типовое решение:
БИТ.Финанс

- Разработка Положения о Казначействе группы компаний
- Разработка Положе...

ООО "АСК ИНЖИНИРИНГ"
ООО "АСК ИНЖИНИРИНГ"

Отрасль:
Машиностроение, приборостроение

Внедренное типовое решение:
1С:Документооборот ПРОФ

Делопроизводство
Учет и хранение документов
Ведение номенклатуры дел
...

ООО «Лаборатория успеха»
ООО «Лаборатория успеха»

Отрасль:
Общественное и плановое питание, гостиничный бизнес, туризм

Внедренное типовое решение:
1С:Зарплата и управление персоналом 8. КОРП

Кадровый учет;
Расчет зарплаты;...

1с-РАРУС МСК
1с-РАРУС МСК

Отрасль:
Разработка компьютерного программного обеспечения

Внедренное типовое решение:

- Совместная работа по внедрению разных решений, в том числе «1С:ERP Управление...

ООО «ЛукБелОйл»
ООО «ЛукБелОйл»

Отрасль:
Нефтегазовая отрасль

Внедренное типовое решение:

- Обследовании бизнес-процессов «Документооборот», «Казначейство и Бюджети...

ПАО «АрселорМиттал Кривой Рог»
ПАО «АрселорМиттал Кривой Рог»

Отрасль:
Металлургическая промышленность

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

- Кадровый учет
- Расчет зарплаты
- Регламентированная отчетность
- Уч...

Автоматизация кадрового учета на базе ПП "1С:Зарплата и управление персоналом" в ТД НМК
ООО «Торговый дом Нальчикский молочный комбинат»

Отрасль:
Торговля

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

- Кадровый учет;
- Расчет зарплаты;
- Регламентированная отчетность;
- А...

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

Отрасль:

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

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

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

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

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

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