Преобразование JSON в структуру 1С: рефакторинг и серверные функции

Введение

В работе с внешними API в 1С часто приходится получать данные в формате JSON и преобразовывать их в структуру, с которой удобно работать в серверном коде. В этой статье показан рефакторинг простого HTTP‑запроса: мы вынесем логику преобразования в отдельную серверную функцию, добавим обработку ошибок и воспользуемся объектом ЧтениеJSON.

Рефакторинг кода

Создание серверной функции

Для начала создаём серверную функцию, которая будет принимать строку JSON и возвращать результат преобразования. Параметр ПрочитатьВСоответствие позволяет гибко управлять типом возвращаемого значения.

&НаСервере
Функция ОбработатьJSON(Знач СтрокаJSON, ПрочитатьВСоответствие = Истина)
    ДанныеВозврата = Неопределено;
    Возврат ДанныеВозврата;
КонецФункции

Обработка ошибок

Преобразование JSON может завершиться с исключением. Поэтому код оборачиваем в Попытка/Исключение и записываем ошибку в журнал регистрации.

Попытка
    // код преобразования
Исключение
    ЗаписьЖурналаРегистрации("fakestoreapi", УровеньЖурналаРегистрации.Ошибка,,, ОписаниеОшибки());
КонецПопытки;

Преобразование строки в JSON

Для чтения JSON в 1С используется объект ЧтениеJSON. Сначала создаём его, затем задаём строку, а затем читаем данные.

Чтение = Новый ЧтениеJSON;
Чтение.УстановитьСтроку(СтрокаJSON);
ДанныеВозврата = ПрочитатьJSON(Чтение, ПрочитатьВСоответствие);

Если ПрочитатьВСоответствие = Ложь, результат будет массивом структур. Это удобно для дальнейшей работы с данными.

Результат и работа с массивом структур

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

Выводы

  • Вынесение логики преобразования в серверную функцию повышает читаемость и переиспользуемость кода.
  • Обработка ошибок через журнал регистрации упрощает отладку и мониторинг.
  • Объект ЧтениеJSON обеспечивает надёжное чтение JSON‑строк в 1С.
  • Полученный массив структур можно легко интегрировать в бизнес‑логику приложения.

Теперь вы можете использовать эту функцию в своих проектах, заменяя громоздкие фрагменты кода на компактный и надёжный серверный модуль.