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

45

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

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

21.05.2024    40714    dimanich70    83    

157

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

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

1 стартмани

18.03.2024    6009    6    John_d    11    

58

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

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

12.02.2024    48744    atdonya    30    

65

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

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

30.11.2023    7773    ke.92@mail.ru    17    

66

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

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

28.08.2023    20929    YA_418728146    8    

174

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

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

2 стартмани

22.08.2023    6133    92    progmaster    17    

4
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. SerVer1C 984 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) вот гуглил, как быть с датой, наткнулся на эту статью... вот думаю, то ли в строку ее, то ли эти методы использовать
Для отправки сообщения требуется регистрация/авторизация