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

27.10.24

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
JSON в ДеревоЗначений
.epf 8,80Kb
61
61 Скачать (1 SM) Купить за 1 850 руб.

Всем привет!

В процессе очередной отладки родилась обработка - очередной вариант просмотрщика 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 дерево значений

См. также

SALE! 15%

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

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

10000 руб.

02.09.2020    159403    872    399    

861

SALE! 15%

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя.

8400 7140 руб.

20.08.2024    7766    55    22    

66

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

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

9360 руб.

17.05.2024    23431    68    45    

117

SALE! 15%

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

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

10000 8500 руб.

10.11.2023    10415    36    21    

61

SALE! 15%

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

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

22200 19980 руб.

06.10.2023    15395    35    7    

70

SALE! 35%

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

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

4800 3120 руб.

14.01.2013    187972    1138    0    

912

SALE! 15%

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

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

15000 12750 руб.

07.10.2021    17302    6    32    

42

Инструментарий разработчика Программист Платные (руб)

Менеджер конфигураций 1С — альтернативный стартер информационных баз 1С:Предприятие.

1800 руб.

21.02.2023    7694    8    35    

23
Отзывы
1. dusha0020 1116 21.12.21 13:55 Сейчас в теме
Простенько и со вкусом. Спасибо за готовое решение. Когда-то решал подобную задачу для xml. А вот для json уже не нужно будет, если понадобится:)
AlexK_2012; RustIG; +2 Ответить
Остальные комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. dusha0020 1116 21.12.21 13:55 Сейчас в теме
Простенько и со вкусом. Спасибо за готовое решение. Когда-то решал подобную задачу для xml. А вот для json уже не нужно будет, если понадобится:)
AlexK_2012; RustIG; +2 Ответить
2. starik-2005 3087 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 264 22.12.21 12:20 Сейчас в теме
не туда прикрепился ответ)
6. RustIG 1747 21.12.21 22:44 Сейчас в теме
Обновление от 21-12=2021, часть 2:
1) добавил упорядочение списка параметров для быстрого поиска по кнопке;
2) добавил раскрытие узлов дерева для найденных параметров;
3) добавил кнопку сворачивания узлов дерева;
4) добавил команды для получения значений нужных параметров - с проверкой полученного результата.
7. uno-c 264 22.12.21 11:38 Сейчас в теме
В Файрфоксе файлы *.json всегда открываю - наглядно и удобно.
8. RustIG 1747 22.12.21 12:06 Сейчас в теме
(7) открыли, а что потом делаете?
как в 1с с ним работаете?
10. uno-c 264 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 264 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 264 22.12.21 12:53 Сейчас в теме
(12) Ну да, удобно, для информации написал, вдруг пригодится кому. В Файрфоксе так выглядит:
Прикрепленные файлы:
16. RustIG 1747 22.12.21 13:05 Сейчас в теме
(14) пригодится! спасибо !
17. uno-c 264 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 302 23.12.21 08:28 Сейчас в теме
В замечательном опенсорс проекте Универсальные инструменты 1С для управляемых форм
есть вот такой очень удобный редактор JSON

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

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

что -то подобное и приближенное начало получаться: Обход объекта рекурсивно
27. kuzyara 2090 01.11.24 15:12 Сейчас в теме
YML -> Дерево значений

https://github.com/kuzyara/1c-yaml-parser
Прикрепленные файлы:
28. RustIG 1747 02.11.24 09:17 Сейчас в теме
(27) формат YML - что это такое? где используется ?
по вашей одной картинке вижу что это что-то интересное и может быть полезным :)
вот еще пару статей - один на парсер шаблонов, второй - на оформление в УФ шаблонов
https://infostart.ru/1c/tools/1559216/
https://infostart.ru/1c/tools/1444273/
Оставьте свое сообщение