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

27.10.24

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
JSON в ДеревоЗначений
.epf 8,80Kb
63
63 Скачать (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 дерево значений

См. также

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

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

12000 руб.

02.09.2020    171342    959    403    

923

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

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

8400 руб.

20.08.2024    13874    107    46    

107

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

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

22200 руб.

06.10.2023    17178    43    15    

75

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

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

9360 руб.

17.05.2024    27149    94    48    

137

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

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

15000 руб.

10.11.2023    11831    44    27    

67

SALE! %

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

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

4800 3840 руб.

14.01.2013    191059    1152    0    

919

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

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    1077    2    0    

5

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

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

5000 руб.

07.02.2018    104086    244    100    

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

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

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

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

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

и тд

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

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


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

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

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

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

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

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

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