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

13.02.24

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

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

Скачать исходный код

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

Всем привет!

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

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

 

 

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

Достоинства такого нового просмотрщика:

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

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

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

 

Очередное обновление:

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

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

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

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

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

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

Всем добра!

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

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) Оцифровка и визуализация склада

 

Проверено на следующих конфигурациях и релизах:

  • Управление торговлей, редакция 10.3, релизы 10.3.87.1

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

См. также

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

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

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

10000 руб.

02.09.2020    131048    711    390    

758

Infostart PrintWizard - создание и редактирование печатных форм в 1С 8.3

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

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

18000 руб.

06.10.2023    9391    27    6    

49

Infostart УДиФ: Управление данными и формами 1С

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

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

10000 руб.

10.11.2023    5508    14    2    

39

SALE! %

PowerTools

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

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

3600 2880 руб.

14.01.2013    179946    1095    0    

868

OneDebugger - инструмент для отладки кода без использования режима конфигуратора

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

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

5400 руб.

17.05.2024    6254    13    12    

38

Бустер Конвертации данных 3 (Infostart Toolkit)

Инструментарий разработчика Программист 8.3.14 1С:Конвертация данных Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

15000 руб.

07.10.2021    15436    3    12    

38

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

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

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

5000 руб.

07.02.2018    100352    240    97    

299

[ЕХТ] Фреймворк для Расширений 1С

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

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18862    7    8    

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

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

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

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

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

и тд

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

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


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

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

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

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

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