Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
11 дек 2024, 10:08

Таблица по объектам справочника для интеграции из ЕРП УХ по средствам json

Автор OlgaTu, 13 фев 2024, 14:50

0 Пользователей и 1 гость просматривают эту тему.

OlgaTu

Добрый день.

Сразу оговорюсь (я совсем на стартовых началах). Вникаю в разработку не с азов - а как-то наскоком, пытаясь реализовать живые задачи. Параллельно изучаю вопросы, но есть моменты которые нужны прямо сейчас.

Прошу помощи - мне нужно составить спецификацию полей для дальнейшей настройки интеграции из 1С по средствам json. Мы пока на справочнике Партнеры (у него есть связь со справочниками контрагентов и  банковскими счетами).

 

Может быть кто-то сможет поделиться примерами - как это на первом этапе структурировать в одну таблицу (как указать тип кода, как указать связь с табличной частью или связанным другим справочником).....

 

Максим75

OlgaTu, для начала прочитайте за json, что это за формат, с чем его едят.
он чем-то напоминает xml, хотя конечно отличается.

В JSON можно записывать три вида объектов:
1. Массив - объявляется имя и потом пишется сам массив. в структуре в квадратных скобках
2. Соответствие (похоже на структуру)- составной вид, внутри состоит из нескольких примитивных видов
3. Строка - простой вид (примитивный тип данных Строка, Число, Булево или Неопределено)

Определитесь, что хотите выгрузить, ну какие данные. Потом эти данные разберите на более примитивные, чтобы могли их описать теми видами объектов, с которым работает джисон. И дальше реализация.
Принцип записи такой - вначале корень структуры, потом объект (начало, свойства объекта, конец (обязательно))

Вот примерно такого плана код:

//начнем формировать данные для выгрузки в JSON
     
     Джисон = Новый ЗаписьJSON;
     ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON(,Символы.Таб);//для красоты результирующего текста увеличиваем "лесенку"
     
     Джисон.ПроверятьСтруктуру = ложь;//чтобы быстрее писалось, то можно не проверять при записи правильность структуры
     
     //либо открываем файл, в которую будем писать
     //Джисон.ОткрытьФайл("C:\Выгрузка в xml\Документ_в_еДИН.json",,,ПараметрыЗаписиJSON);
     //ФайлТелаЗапросаДжисон = ПолучитьИмяВременногоФайла();
     //Джисон.ОткрытьФайл(ФайлТелаЗапросаДжисон,,,ПараметрыЗаписиJSON);
     //либо указать, что запись будет выполнена в строку, которую вернет метод Закрыть().
     Джисон.УстановитьСтроку(ПараметрыЗаписиJSON);
     
     //В JSON можно записывать три вида объектов:
     //1. Массив - объявляется имя и потом пишется сам массив. в структуре в квадратных скобках
     //2. Соответствие (похоже на структуру)- составной вид, внутри состоит из нескольких примитивных видов
     //3. Строка - простой вид (примитивный тип данных Строка, Число, Булево или Неопределено)
     
     Джисон.ЗаписатьНачалоОбъекта(); //корень структуры JSON
     Джисон.ЗаписатьИмяСвойства("ecmr");
     Джисон.ЗаписатьНачалоОбъекта();// ecmr
         ДЖисон.ЗаписатьИмяСвойства("documentContext");
         Джисон.ЗаписатьНачалоОбъекта();//documentContext
             Джисон.ЗаписатьИмяСвойства("transactionID");
             Джисон.ЗаписатьЗначение("0");
                 Джисон.ЗаписатьИмяСвойства("documentCode");
                 Джисон.ЗаписатьНачалоОбъекта(); //documentCode
                 Джисон.ЗаписатьИмяСвойства("id");
                 Джисон.ЗаписатьЗначение("всякая хрень");
                 ДЖисон.ЗаписатьКонецОбъекта();//documentCode
                 
                 Джисон.ЗаписатьИмяСвойства("documentSubCode");
                 Джисон.ЗаписатьНачалоОбъекта();//documentSubCode
                 Джисон.ЗаписатьИмяСвойства("id");
                 Джисон.ЗаписатьЗначение("всякая хрень");
                 ДЖисон.ЗаписатьКонецОбъекта(); //documentSubCode
          ДЖисон.ЗаписатьКонецОбъекта(); //documentContext
         //Данные документа
         ДЖисон.ЗаписатьИмяСвойства("exchangedDocument");
         Джисон.ЗаписатьНачалоОбъекта();//exchangedDocument
             Джисон.ЗаписатьИмяСвойства("id");
             Джисон.ЗаписатьЗначение(ТекДок.Номер);
         //Джисон.ЗаписатьНачалоОбъекта();//  documentCode
             Джисон.ЗаписатьИмяСвойства("issueDateTime");
             Джисон.ЗаписатьНачалоОбъекта(); //issueDateTime
             Джисон.ЗаписатьИмяСвойства("dateTime");
             СтрокаДаты = Строка(Формат(ТекДок.Дата,"ДФ=yyyy-MM-dd"));
             СтрокаВремени = Строка(Формат(ТекДок.Дата,"ДЛФ=T"));
             Если СтрДлина(СтрокаВремени)<8 тогда
                 СтрокаВремени = "0"+СтрокаВремени;
             КонецЕсли;
             Джисон.ЗаписатьЗначение(СтрокаДаты+"T"+СтрокаВремени+".000Z");

самое главное, что объект открывается и закрывается, корень так же открывается и закрывается.
в этом плане очень похож на xml.

Afinogen

 B) вот преобразование структуры в JSON


     
    лкЗаписьJSON = Новый ЗаписьJSON;
лкЗаписьJSON.УстановитьСтроку(Новый ПараметрыЗаписиJSON(,Символы.Таб));
ЗаписатьJSON(лкЗаписьJSON,ВашаСтруктура);

СтрокаJSON = лкЗаписьJSON.Закрыть();


ВашаСтруктура - это переменная с тіпом Структура в которой хранятся какие то данные
СтрокаJSON  - текстовая строка формата JSON в которую преобразована ваша структура

далее эту строку JSON можете сохранять і передавать куда вам надо,  просто потом вам ее надо будет обратнов структуру преобразовать в коде базы -приемника

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск