Аналоги новых методов платформы ЗаписатьЗначениеJSON и ПрочитатьЗначениеJSON

09.06.22

Разработка - Универсальные функции

Пример самописных методов ЗаписатьЗначениеJSON и ПрочитатьЗначениеJSON которые будут реализованы в платформе 8.3.23.

Всем привет! Вышла новость о появлении новых методов по работе с JSON, которые появятся в платформе 8.3.23. Если кратко - новые методы ЗаписатьЗначениеJSON и ПрочитатьЗначениеJSON, будут позволять просто и без лишних движений преобразовывать значения 1С в JSON и обратно. 

Данная новость есть и на Infostart.ru, в комментарии под которой я собственно и написал, что непреодолимое желание написать данные методы у меня появилось сразу, как только в платформе 1С появилась поддержка JSON.

По просьбе участников сообщества выложил пример своих методов, на что получил совет опубликовать пример данных метода в отдельной статье, что, собственно, и делаю, дабы их увидела широкая общественность. Глядишь, еще кому пригодятся, ведь новая платформа выйдет довольно не скоро.

Собственно сами методы:

//Аналог ЗаписатьЗначениеJSON 
Функция ДанныеВJSON(Значение, Знач ПараметрыЗаписиJSON = Неопределено, НастройкиСериализации = Неопределено) Экспорт
    Если ПараметрыЗаписиJSON = Неопределено Тогда
        ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON(, Символы.Таб);
    КонецЕсли;
    
    ЗаписьJSON = Новый ЗаписьJSON();
    ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписиJSON);
    ЗаписатьJSON(ЗаписьJSON, Значение, НастройкиСериализации);
    Результат = ЗаписьJSON.Закрыть();    
    
    Возврат Результат;
КонецФункции

//Аналог ПрочитатьЗначениеJSON
Функция ДанныеИзJSON(ДанныеJSON, ИзФайла = Ложь, ПрочитатьВСоответствие = Ложь, ЗначениеПоУмолчанию = Неопределено, ОписаниеОшибки = "") Экспорт
    ЧтениеJSON = Новый ЧтениеJSON();
    
    Если ИзФайла = Истина Тогда
        ЧтениеJSON.ОткрытьФайл(ДанныеJSON);
    Иначе
        ЧтениеJSON.УстановитьСтроку(ДанныеJSON);
    КонецЕсли;
    
    Попытка
        Результат = ПрочитатьJSON(ЧтениеJSON, ПрочитатьВСоответствие);
    Исключение
        ОписаниеОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
        Результат = ЗначениеПоУмолчанию;
    КонецПопытки;
    
    Возврат Результат;
КонецФункции

Надеюсь, кому-то еще эти методы будут полезны, а фирма 1С сделает свои методы с функциональностью не хуже, чем у моих :)

ЗаписатьЗначениеJSON ПрочитатьЗначениеJSON JSON сериализация

См. также

Печать любых непроведенных документов для УТ, КА, ERP. Настройка печати по пользователям, документам и печатным формам

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

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать любые печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

3480 руб.

22.08.2023    1236    1    4    

3

Валидация JSON через XDTO (включая массивы)

WEB-интеграция Универсальные функции Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    5520    YA_418728146    6    

119

Расширение: Быстрые отборы через буфер [Alt+C] Копировать список, [Alt+V] Вставить список, [Ctrl+C] Копировать из файлов

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

Копирует в буфер значения из списков, из ячеек отчетов, таблиц, настроек списков, других отборов и вставляет в выбранную настройку отбора. Работает с Объект не найден. Работает как в одной так и между разными базами 1С. Использует комбинации [Alt+C] Копировать список, [Alt+V] Вставить список. Также для копирования данных используется стандартная [Ctrl+C] (например из открытого xls, mxl, doc и т.п. файла скопировать список наименований)

1 стартмани

13.10.2022    14458    112    sapervodichka    106    

124

Система контроля ведения учета [БСП]

Универсальные функции Механизмы типовых конфигураций БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данном материале рассмотрим типовой алгоритм подсистемы контроля учета БСП в конфигурациях на примерах.

18.07.2022    6676    quazare    8    

108

Хитрости СКД. Часть 3

СКД Универсальные функции Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

Столкнулся с тем, что мне приходится писать гору отчетов. Во многих приходится использовать повторяющиеся приемы. Решил написать шпаргалку, которая, надеюсь пригодится не только мне. В этой статье: Объединение ячеек в отчете только на определенном уровне иерархии, Постобработка итогов в табличном документе, Скрытие колонок в зависимости от количества месяцев в периоде.

28.05.2022    8276    milkers    11    

91

Базовые принципы работы с регламентными заданиями подсистем БСП

Универсальные функции БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

22.05.2022    14797    quazare    25    

59
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. SerVer1C 729 09.06.22 15:49 Сейчас в теме
Так ради упрощения данного кода эти методы и появились.
2. nporrep 50 13.08.23 19:03 Сейчас в теме
И при переходе на платформу 23 теперь все подобные костыли приводят к ошибке "Процедура или функция с указанным именем уже определена (ЗаписатьЗначениеJSON)"
И особенно это печально для типовых конфигураций (БП для Казахстана, например), которые совсем не хочется снимать с поддержки.
3. mszsuz 309 12.11.23 20:14 Сейчас в теме
Сейчас с удивлением обнаружил, что платформенные методы ЗаписатьЗначениеJSON() и ПрочитатьЗначениеJSON() не поддерживают значения типа Дата. Зачем тогда вообще делали - непонятно.
Оставьте свое сообщение