JSON -> Дерево значений

31.01.23

Разработка - Инструментарий разработчика

Очередной просмотрщик json-структуры

Скачать файлы

Наименование Файл Версия Размер
JSON в ДеревоЗначений
.epf 8,80Kb
57
.epf 8,80Kb 57 Скачать

Всем привет!

В ходе обсуждений под публикацией Загрузка JSON в дерево значений родилась обработка - очередной вариант просмотрщика json-структуры.

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

 

 

В обработке, которая представлена в публикации, подобных вопросов не возникнет -  слева вы вставляете текст json, справа видите результат чтения json-структуры в формате дерева значений.

Отличия в новом просмотрщике:

1) не используются файлы - это неудобно для больших файлов, но удобно для отладки процесса чтения json-структуры - вы только копируете содержимое json-файла (через любой текстовый редактор) и вставляете в левое поле обработки. В одном окне видите и json и дерево значений в 1с.

2) дерево значений json-структуры содержит три (!), а не два поля для просмотра и анализа - это Параметр, Значение параметра и Тип параметра (в обработке это ТипЭлемента - отсылка к тому, что это в первую очередь элемент списка, список в json-структуре описывается типом "Массив").

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

 

 

Обновление от 21-12-2021:

 

1) добавил сохранение текста json, который слева анализируем - при открытии восстанавливается, при закрытии сохраняется.

2) добавил поиск по параметру по дереву - с выделением желтым цветом строки найденного параметра - см. рис.

3) добавил поле "Команда" - по сути это строка кода для вызова и получения значения соответствующего параметра (см. рис. ниже).

Надо учитывать, что переменная Данные - это структура нашего json-текста, которую мы получаем так:


	Чтение = Новый ЧтениеJSON;
	Чтение.УстановитьСтроку(ЭлементыФормы.ПолеТекстовогоДокумента1.ПолучитьТекст());
	Данные = ПрочитатьJSON(Чтение);

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

Обработка создана на платформе 1С:Предприятие 8.3 (8.3.18.1289), на пустой конфигурации для _ОбычныхФорм. Для управляемых форм будет реализовано в будущем - подписывайтесь на комментарии - сообщу дополнительно через них.

Небольшое отступление. Исторически сложилось так, что я только что закончил отладку алгоритма построения дерева:

- Анализ прав и ролей: поиск подходящего профиля

- Парсер шаблонов конфигурации .st

А интерес к json-структуре у меня непосредственный - кто знает, я писал цикл статей по маркировке, в которых использовал xml-формат для ручных операций. Но для операций через АПИ Честного знака надо использовать только json-структуру (!). Поэтому все не зря - анализ разбора json-структуры это очередной шаг в решении следующих задач по маркировке.

Всем добра!

 
 См. также другие разработки

1) Подбор товаров по характеристикам (свойствам и значениям)

2) Как свернуть базу УТ 10.3

3) Сравнение запросов

4) Ввод показателей план-факта через табличный документ

5) Доработка конфигурации Конвертация Данных (вер. 2.1.8.2)

6) Поиск ссылок на любой справочник в документах на УФ

7) Поиск сотрудника и поиск физлица в документах ЗУП

8) Поиск контрагента в документах для управляемых форм

9) Поиск номенклатуры в документах

10) Параллельные вычисления

11) УТ 11.4. Счет на оплату с факсимиле

12) УНФ. Список заказов + Структура подчиненности

13) Удаление справочников для любых баз на управляемых и обычных формах

14) Неиндексированные измерения регистров сведений. В помощь 1С:Эксперту

15) Удаление документов для любых баз на управляемых формах

16) Удаление чеков ККМ в Рознице 2.2

17) Договоры для 1с-ника

Из последнего опубликованного:

18) Перенумерация документов и справочников с учетом префиксов (учет уникальности кодов) для управляемых форм

19) Анализ прав и ролей: поиск подходящего профиля

20) Оцифровка и визуализация склада

21) Про деньги фрилансера

22) АВС-анализ и табличное программирование

 

json дерево значений

См. также

SALE! 20%

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

12000 9600 руб.

02.09.2020    101045    554    385    

597

Онлайн-интенсив "DevOps для 1С". с 5 февраля по 19 марта 2024 г.

Инструментарий разработчика DevOps и автоматизация разработки DevOps для 1С Платные (руб)

Данный онлайн-курс (интенсив) предусматривает изучение процессов, инструментов и методик DevOps, их применение при разработке на платформе 1С. 

25000 руб.

20.06.2023    11370    3    2    

141

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2520 руб.

14.01.2013    172675    1074    0    

811

SALE! 20%

Управление данными и формами (УДиФ)

Инструменты администратора БД Инструментарий разработчика Администрирование Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 8000 руб.

10.11.2023    1289    3    1    

19

SALE! 25%

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 14400 руб.

06.10.2023    3393    2    0    

17

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    97499    236    97    

287

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    22320    14    15    

27

SALE! 10%

Автоматизация труда программиста. Библиотека прикладных функций

Инструментарий разработчика Платформа 1С v8.3 Платформа 1C v8.2 Платформа 1С v8.1 Конфигурации 1cv8 Платные (руб)

Программист - это человек, непрерывно принимающий решения. Написание кода не является процессом принятия решения - это всего лишь трансляция ваших желаний. Если вас периодически тяготит написание сотен строк кода ради решения задач, то прошу обратить внимание. Данный продукт позволит существенно сократить время на рутинные операции при разработке. За счет библиотечной реализации сокращается объём кода, а его читаемость повышается. К библиотеке прилагается документация API и шаблоны кода для наиболее популярных методов.

4200 руб.

16.04.2021    13780    5    9    

12
Отзывы
1. dusha0020 1094 21.12.21 13:55 Сейчас в теме
Простенько и со вкусом. Спасибо за готовое решение. Когда-то решал подобную задачу для xml. А вот для json уже не нужно будет, если понадобится:)
AlexK_2012; RustIG; +2 Ответить
Остальные комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. dusha0020 1094 21.12.21 13:55 Сейчас в теме
Простенько и со вкусом. Спасибо за готовое решение. Когда-то решал подобную задачу для xml. А вот для json уже не нужно будет, если понадобится:)
AlexK_2012; RustIG; +2 Ответить
2. starik-2005 2898 21.12.21 14:10 Сейчас в теме
В действительности, json в дерево нужен только тогда, когда нет понимания, как это в принципе работает. Я как раз указал в комиентах к публикации своей, что механизм родился в ходе решения задачи клиента, который хотел сначала поглядеть, что там и как, а потом выдернуть что-то (кстати, у него это и с визуализацией не получилось - тут ведь от общего непонимания все пляшет).

Объекты работы с json в 1С отлично раскатывают объект в структуру или соответствие, которых ну просто за глаза и за уши хватает для того, чтобы не пложить такие вот сущности.

В принципе я объяснил, почему в ваш там споо не ввязывался. Смысл спорить о том, что один костыль лучше другого)))
3. RustIG 1747 21.12.21 15:37 Сейчас в теме
никто не спорит
4. RustIG 1747 21.12.21 15:57 Сейчас в теме
(2) я почерпнул много полезного из вашей публикации, за нее дополнительное отдельное спасибо. всем рекомендую.
5. RustIG 1747 21.12.21 20:18 Сейчас в теме
Обновление от 21-12-2021:

1) добавил сохранение текста json, который слева анализируем - при открытии восстанавливается, при закрытии сохраняется.

2) добавил поиск по параметру по дереву - с выделением желтым цветом строки найденного параметра - см. рис. в публикации.
9. uno-c 225 22.12.21 12:20 Сейчас в теме
не туда прикрепился ответ)
6. RustIG 1747 21.12.21 22:44 Сейчас в теме
Обновление от 21-12=2021, часть 2:
1) добавил упорядочение списка параметров для быстрого поиска по кнопке;
2) добавил раскрытие узлов дерева для найденных параметров;
3) добавил кнопку сворачивания узлов дерева;
4) добавил команды для получения значений нужных параметров - с проверкой полученного результата.
7. uno-c 225 22.12.21 11:38 Сейчас в теме
В Файрфоксе файлы *.json всегда открываю - наглядно и удобно.
8. RustIG 1747 22.12.21 12:06 Сейчас в теме
(7) открыли, а что потом делаете?
как в 1с с ним работаете?
10. uno-c 225 22.12.21 12:21 Сейчас в теме
(8)
примерно то же
добавил сохранение текста json, ...
добавил поиск по параметру по дереву -...
добавил раскрытие узлов ...
добавил кнопку сворачивания узлов ...

и тд

В 1С я в конфигураторе с ними работаю, если повезет - то со структурой, если не очень - то с соответствием. Делаю интеграции с АПИ разных инфосистем.
https://den1c.wordpress.com
11. RustIG 1747 22.12.21 12:32 Сейчас в теме
(10)
В 1С я в конфигураторе с ними работаю

как вы программно вытаскиваете параметры и их значения?
отлаживаете через отладчик?
последовательно обходите все параметры с проверкой на имя параметра?
13. uno-c 225 22.12.21 12:52 Сейчас в теме
(11) Смотрю в Файрфоксе, ищу что надо - и пошли в конфигуратор (отладчик или сразу в текст модуля к свойствам структуры/соответствия)
15. RustIG 1747 22.12.21 13:01 Сейчас в теме
(13)
Смотрю в Файрфоксе, ищу что надо - и пошли в конфигуратор (отладчик или сразу в текст модуля к свойствам структуры/соответствия)


Хорошо, я понимаю вас.
Спасибо за ответ)
12. RustIG 1747 22.12.21 12:39 Сейчас в теме
(7)
В Файрфоксе файлы *.json всегда открываю - наглядно и удобно.

Спасибо за информацию - попробовал, удобно!
Раз это появилось в фаерфоксе - значит давно уже пора что-то подобное реализовать в 1с.
А вообще, фаерфокс открывает только файлы в формате .json
Но json это не только формат файлов - это еще формат структурированного хранения информации - то есть его можно упаковать в любой текстовый формат файлов txt, csv и другие. И эти другие форматы фаерфокс уже не читает....
Да и потом, есть еще обмены между 1с-базами - мы не затрагивали эту тему совсем - полагаю, что фаерфокс не справится с типами 1с-документов.
14. uno-c 225 22.12.21 12:53 Сейчас в теме
(12) Ну да, удобно, для информации написал, вдруг пригодится кому. В Файрфоксе так выглядит:
Прикрепленные файлы:
16. RustIG 1747 22.12.21 13:05 Сейчас в теме
(14) пригодится! спасибо !
17. uno-c 225 22.12.21 13:08 Сейчас в теме
(12)
А вообще, фаерфокс открывает только файлы в формате .json

Вообще насколько помню он ответ http-сервера так же открывает, если тот шлет в заголовке Content-type:application/json. Но то из специфической среды интеграций, в повседневной жизни программиста 1С редко встречается.
18. RustIG 1747 22.12.21 14:12 Сейчас в теме
(17) откроет - не сомневаюсь
19. mike002 22.12.21 15:58 Сейчас в теме
Для Честного знака неактуально. С 1.01.2022 обмен только через документооборот.
20. RustIG 1747 22.12.21 16:36 Сейчас в теме
(19) спасибо за информацию.
значит сделал просто просмотрщик.
21. RustIG 1747 23.12.21 07:48 Сейчас в теме
Кто-нибудь знает как выгрузить в json структуру свойства объектов 1С (типов платформы 1С), чтобы затем собрать (разобрать) в дерево, как на картинке .
На картинке представлен отладчик конфигуратора, а хотелось бы такое увидеть в пользовательском режиме...
Прикрепленные файлы:
22. JohnyDeath 301 23.12.21 08:28 Сейчас в теме
В замечательном опенсорс проекте Универсальные инструменты 1С для управляемых форм
есть вот такой очень удобный редактор JSON

Преобразует не только текст в структуру (дерево), но и подсветит парные скобки, покажет где есть ошибки. Умеет фильтровать/сортировать и делать прочие полезные и приятные вещий с JSON.
В общем, рекомендую
23. RustIG 1747 23.12.21 11:34 Сейчас в теме
(22) спасибо за информацию!
удобный редактор JSON

если честно, я не хотел бы редактировать json в дереве - задача и цели другие :)
24. JohnyDeath 301 23.12.21 11:37 Сейчас в теме
(23) слева - редактор, справа - дерево по этому тексту.
Или надо было назвать Удобный редактор и Дерево JSON? ))
25. RustIG 1747 23.12.21 12:30 Сейчас в теме
(24) есть интерес разложить типы платформы 1с на свойства - чуть выше спросил об этом.
поскольку обращение к ним происходит через точку как обращение к элементу дерева json - только сравните приложенные скрины обработки и отладчика - похожи друг на друга.... но я понимаю, что по форме похожи, по содержанию разные...
по поводу редактуры json - а разве нельзя отредактировать в любом текстовом редакторе, например Notepad++?
Оставьте свое сообщение