Каталог решений - Конвертация JSON в Объект 1С

Конвертация JSON в Объект 1С

Конвертация JSON в Объект 1С

В наличии

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

Категория:

Описание

Достаточно нечасто можно встретить бизнес, где в качестве учетной системы используется ERP система, не требующая интеграции с другими программными комплексами. По большей части, всегда есть задача загрузить какие-то данные из сторонних программ, таких как например мобильная торговля или "дополнительная" ERP система. Задача по загрузке данных выглядит примерно так: 

«У нас есть 1С и есть сайт, с помощью которого наши клиенты покупают у нас товары. Нам необходимо, что бы данные о покупке товара загружались в 1С в документ "Заказ покупателя". Формат передачи данных JSON.»

В этой статье будет приведен пример реализации задачи конвертации JSON в объект 1С. Транспорт сообщений обмена, составление очередности и распараллеливание загрузки данных в этой статье рассмотрены не будут.

Итак, опишем как может выглядеть среднестатистический алгоритм решения задачи конвертации JSON в Объект 1С:

  1. С помощью объекта Новый ЧтениеJSON выполняем чтение JSON в соответствие/структуру (коллекция данных JSON);
  2. Получаем значения уникального идентификатора, загружаемого JSON;
  3. Ищем по полученному уникальному идентификатору уже загруженный ранее Объект 1С;
  4. Принимаем решение о перезаполнении и перезаписи найденного Объекта 1С, либо, если Объект 1С не найден, о создании и заполнении нового;
  5. Выполняем программный обход коллекции данных JSON с одновременным поиском значений для реквизитов ссылочного типа и заполнением реквизитов Объекта 1С (алгоритмы этого блока описаны в программном коде);
  6. Выполняем запись заполненного Объекта 1С.

На мой взгляд, этот алгоритм можно использовать если нам необходимо загрузить какой-то один Объект 1С. Но если у нас много загружаемых данных, и из разных систем, то мы можем столкнуться с проблемами вида:

  • Мы не контролируем состав ключей файла JSON (зависим от поставщика данных, который может внезапно добавить, убрать, переименовать какой-либо ключ данных JSON), что заставляет нас постоянно дорабатывать обмены в режиме конфигуратора;
  • У нас более одного поставщика данных JSON, которые шлют нам разные JSON для загрузки в один и тот же Объект 1С;
  • У нас ограниченные ресурсы в поддержке уже существующих загрузок и отсутствует возможность релизить тогда, когда нам удобно.

В качестве решения для описанных выше причин хорошо было бы иметь подсистему конвертации данных JSON в Объект 1С, где:

  • Правила конвертации можно было бы описать непосредственно в 1С предприятии;
  • Где был бы кэшируемый поиск значений для реквизитов ссылочного типа;
  • Где была бы возможность вклиниться в события записи Объекта 1С, например, такие как, после добавления строки табличной части, перед записью Объекта 1С, после записи Объекта 1С;

Подсистема конвертации данных JSON в Объект 1С должна быть отвязана от БСП, и не должна требовать каких-то экспертных знаний для внедрения ее в свой транспорт обмена.

Другими словами, нам нужен некий модуль конвертации данных который бы имел функциональность Конвертации данных 3.0, но при этом, для ее работы

  1. Нам не нужно было бы иметь и поддерживать XDTO пакет;
  2. Поддерживала загрузку из JSON;
  3. Позволяла менять правила в режиме 1С Предприятия;
  4. Имела лёгкий программный и пользовательский интерфейс.

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

Что бы начать использовать данное расширение в своем транспорте обмена, вам достаточно в режиме 1С Предприятие создать правило конвертации JSON в Объект 1С, а в программном коде обратиться к функции конвертации, которая в качестве входных параметров принимает JSON и правило конвертации этого JSON в Объект 1С.

Расширение позволяет нам конвертировать JSON любого формата в Объект 1С. Под любым форматом JSON имеется ввиду JSON, который может содержать данные в виде Ключ – Значение, где в качестве значения может выступать как примитивный тип, так и массив данных, или, массив массивов данных.

Например,

Перед нами стоит задача загрузить JSON в Объект 1С.

В файле JSON мы видим 4 табличных части:

  • Товары;
  • Услуги;
  • ТабличныеЧасти.Товары;
  • ТабличныеЧасти.Услуги.

Хотелось обратить ваше внимание на состав ключа данных JSON ТабличныеЧасти – это своего рода табличная часть с данными табличных частей (массив массивов).

Метаданные загружаемого Объекта 1С содержит 3 ссылочных реквизита и одну табличную часть.

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

 

 

После выполнения команды

кдс_ОбщегоНазначения.ЗагрузитьДанные(

JSON,

ПравилоКонвертации);

где, JSON – данные которые надо загрузить в 1С, а ПравилоКонвертации – по какому правилу конвертации эти данные необходимо загрузить.

в базу данных будет добавлен новый элемент справочника, который наполнен данными JSON.

 

Алгоритм конвертации JSON в Объект 1С имеет следующий вид:

has been added to your cart:
Оформление заказа