Аналоги новых методов платформы ЗаписатьЗначение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 сериализация

См. также

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

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

14.05.2025    3903    DeerCven    9    

48

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

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

21.05.2024    42506    dimanich70    83    

158

Универсальные функции Программист 1С v8.3 1C:Бухгалтерия Абонемент ($m)

Задача: вставить картинку из буфера обмена на форму средствами платформы 1С.

1 стартмани

18.03.2024    6287    6    John_d    12    

58

Универсальные функции Программист Стажер 1С v8.3 1C:Бухгалтерия Бесплатно (free)

Пришлось помучиться с GUID-ами немного, решил поделиться опытом, мало ли кому пригодится.

12.02.2024    51779    atdonya    31    

67

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

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

30.11.2023    8031    ke.92@mail.ru    17    

66

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

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

28.08.2023    21490    YA_418728146    8    

174
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. SerVer1C 990 09.06.22 15:49 Сейчас в теме
Так ради упрощения данного кода эти методы и появились.
kild; bilex; +2 3 Ответить
2. nporrep 50 13.08.23 19:03 Сейчас в теме
И при переходе на платформу 23 теперь все подобные костыли приводят к ошибке "Процедура или функция с указанным именем уже определена (ЗаписатьЗначениеJSON)"
И особенно это печально для типовых конфигураций (БП для Казахстана, например), которые совсем не хочется снимать с поддержки.
3. mszsuz 344 12.11.23 20:14 Сейчас в теме
Сейчас с удивлением обнаружил, что платформенные методы ЗаписатьЗначениеJSON() и ПрочитатьЗначениеJSON() не поддерживают значения типа Дата. Зачем тогда вообще делали - непонятно.
unknown181538; Prooa; +2 Ответить
4. apic 15 09.01.24 15:28 Сейчас в теме
(3) Новые методы не пробовал, но если это так, то это прискорбно. 1С как всегда, сделала, да не доделала...
5. unknown181538 163 29.08.25 15:28 Сейчас в теме
(3) вот гуглил, как быть с датой, наткнулся на эту статью... вот думаю, то ли в строку ее, то ли эти методы использовать
Для отправки сообщения требуется регистрация/авторизация