Область применения
Решение для программистов, которое может быть использовано для решения следующих задач:
- Упаковка данных для обмена.
- Хранение произвольных настроек в удобном формате с возможностью их переноса в другие базы
- Визуализация произвольных структур данных для демонстрации.
- Сериализация произвольных структур (состояния данных) для последующего статического анализа - например для разбора проблем и ошибок.
Технические требования
- Продукт не зависит от используемой конфигурации.
- Минимальная поддерживаемая версия платформы 8.3.6 из-за использования нативных методов платформы по непосредственным чтению и записи JSON. Поддержка может быть радикально снижена переопределением методов выполняющих непосредственные чтение и запись текста. Существует как минимум одна бесплатная обработка реализующая функциональность методов платформы по работе JSON.
- Предполагается использование обработки в контексте сервере, внешнего соединения или толстого клиента из-за широкого ассортимента поддерживаемых типов. Если есть потребность использовать конвертер на тонком клиенте(!), пишите в поддержку в каких кейсах это необходимо. Если реально, то будет вариант с поддержкой тонкого клиента.
Код открыт.
Обзор стандартных возможностей платформы
При стандартном преобразовании JSON от 1С:
- Поддерживаются массивы и структуры, состоящие из примитивных типов.
- Поддерживаются вложения структур.
- Конвертация даты может потребовать дополнительной настройки как при сериализации, так и при десериализации
Все остальные типы поддерживаются только при условии, что:
- Будут разработаны функции, выполняющие сериализацию/десериализацию данных в поддерживаемый формат.
- Будет обеспечена их доступность в контексте выполнения конвертации.
- Приёмник будет точно знать, какие свойства требуют особого подхода.
Т.е. индивидуальная настройка параметров конвертации выбранных значений требует разработки правил конвертации.
Представляем продукт "Конвертер JSON 1C", который решает эти проблемы "из коробки".
Основные преимущества и возможности Конвертера JSON 1С
- Готовый программный интерфейс.
- Нет необходимости предварительно готовить данные и настраивать механизмы конвертации - конвертируются в том виде, в котором они у вас есть на момент получения.
- Конвертация производится в открытый, легко читаемый формат.
- Стоимость не превышает двух часов работы программиста, которых очевидно не хватит на разработку функционального аналога.
Поддерживаемые типы данных
Поддерживаются основные типы данных, которые обычно необходимо хранить или передавать. Однозначно отсутствует поддержка мутабельных значений.
В теории можно сериализовать некоторые мутабельные значения, и это реализовано, но совсем другой продукт.
- Массив - поддерживается нативно платформой. В продукте добавлена поддержка рекурсивной сериализации значений коллекции.
- Структура - поддерживается нативно платформой. В продукте добавлена поддержка рекурсивной сериализации значений коллекции.
- ТаблицаЗначений - полная поддержка.
- Ссылки - полная поддержка.
- Предопределенные ссылочные значения - полная поддержка.
- Перечисления - полная поддержка.
- ОписаниеТипов - полная поддержка.
- Тип - полная поддержка.
- СписокЗначений - картинки в списке не поддерживаются.
- ДвоичныеДанные - полная поддержка.
- Системные перечисления - полная поддержка.
- Примитивные типы - полная поддержка.
- Отбор - поддерживается только сериализация в массив структур. Десериализация в принципе не возможна из-за отсутствия в платформе конструктора для отбора.
Важные исключения:
Поддержка любых ссылочных типов и связанных с ними значениями, подразумевает, что в контексте десериализации будут подходящие объекты.
Например, если вы сериализовали описание типа содержащее указание на справочник "Номенклатура", то ИБ в которой будет производиться десериализация должна содержать такой справочник, пусть и в другом наборе реквизитов.
Состав поставки и варианты интеграции
- Конвертер JSON поставляется в виде обработки готовой для интеграции в конфигурацию или расширение.
- К обработке прилагается форма, на которой можно предварительно потестировать и посмотреть глазами работу конвертера. Текст можно посмотреть глазами, обратную конвертацию придётся посмотреть в отладчике. Отдельного вьювера для всех поддерживаемых данных не нашёл. Собственно JSON формат и является таким вьювером.
- При нежелании возиться с правами на обработку для рабочих ролей, можно скопировать её модуль в общий модуль и пользоваться им, но в будущем планируется развитие конвертера именно как полноценного класса с простым API, но продвинутым содержимым.
- Если конфигурация полностью типовая и все доработки выполняются через расширения, то рекомендую помещать обработку в справочник внешних обработок или иной контейнер позволяющий хранить двоичные данные. Единственный недостаток данного метода, что при необходимости обратиться к внешней обработке, вам придётся выполнить чуть более сложную инициализацию через менеджер внешних обработок.
Пример подключения и использования
// Вариант с использованием обработки интегрированной в конфигурацию
КонвертерJSON = Обработки.КонвертерJSON.Создать();
Сообщение = Новый Структура;
Сообщение.Вставить("ДанныеОбъекта", ЗначенияРеквизитовИтабЧастейОбъекта(ДокументСсылка));
Сообщение.Вставить("Вложения", ПолучитьМассивВложений(ДокументСсылка));
Сообщение.Вставить("ТипРегистрации", ПредопределенноеЗначение("Перечисление.ТипыРегистрацииДанных.Авторегистрация"));
ТекстJSON = КонвертерJSON.Сериализовать(Сообщение);
// Сообщение1 будет идентично Сообщение
Сообщение1 = КонвертерJSON.Десериализовать(ТекстJSON);
Техническая поддержка и обновления
Бесплатный период техподдержки составляет 1 месяц со дня покупки.
Также после приобретения вы получаете 1 месяц бесплатных обновлений.
По окончании бесплатного периода вы можете приобрести услугу технической поддержки с доступом к обновлениям на платной основе.
Проверить наличие обновлений можно в личном кабинете. Если обновления недоступны - загрузить новую версию можно после покупки обновлений/технической поддержки.
Задать вопрос по программе можно по кнопке "Техподдержка" на странице описания.
При создании тикета необходимо предоставить:
- Номер заказа
- Описание вопроса. Если это ошибки - напишите порядок ваших действий с программой, которые к ней привели (приложите видео/скриншоты/отчеты об ошибке)
- Версию платформы, на которой используете купленное решение (версию 1С можно взять из раздела "О программе"), версию купленной программы.
К созданной заявке подключается специалист. Дальнейшее обсуждение проблемы будет проходить в тикете техподдержки. Стандартный срок реакции - 24 часа в рабочие дни с момента обращения.
Проверено на следующих конфигурациях и релизах:
- Управление торговлей, редакция 11, релизы 11.5.15.111
- Бухгалтерия предприятия, редакция 3.0, релизы 3.1.22.86