Как работать с JSON и HTTP-запросами в 1С: практическое руководство

Интеграции — основа современной экосистемы 1С.
CRM, сайты, внешние сервисы, маркетплейсы, банки — всё обменивается данными через HTTP-запросы и формат JSON.
Без понимания, как их использовать в 1С, разработчик ограничен только внутренней логикой конфигурации.

Разберём, как работать с HTTP-запросами и JSON в 1С: от отправки запроса до обработки ответа, с примерами кода и рекомендациями по отладке.


Что такое JSON и почему он удобен

JSON (JavaScript Object Notation) — это лёгкий формат обмена данными, основанный на структуре ключ-значение.
Он прост, читаем и поддерживается всеми языками программирования.

Пример:

{
  "client": "ООО Альфа",
  "sum": 125000,
  "status": "paid"
}

В 1С формат JSON используется в интеграциях с API, REST-сервисами и веб-приложениями.


Работа с JSON в 1С

Для работы с JSON в платформе 1С используются два объекта:

  • ЧтениеJSON() — для парсинга строк в структуры;
  • ЗаписьJSON() — для сериализации данных в текст.

Пример 1. Преобразование строки JSON в структуру

СтрокаJSON = "{""client"":""ООО Альфа"",""sum"":125000,""status"":""paid""}";
Ридер = Новый ЧтениеJSON;
Ридер.УстановитьСтроку(СтрокаJSON);

Данные = РидерПрочитать();
Сообщить("Клиент: " + Данные.client);
Сообщить("Сумма: " + Строка(Данные.sum));

Пример 2. Создание JSON-строки

Структура = Новый Структура;
Структура.Вставить("client", "ООО Бета");
Структура.Вставить("sum", 89000);
Структура.Вставить("status", "processing");

Запись = Новый ЗаписьJSON;
Запись.УстановитьСтроку();
Запись.ЗаписатьЗначение(Структура);
JSON = Запись.Закрыть();
Сообщить(JSON);

Результат:

{"client":"ООО Бета","sum":89000,"status":"processing"}

HTTP-запросы в 1С

Для интеграции с внешними API используется объект HTTPСоединение и HTTPЗапрос.

Пример 3. GET-запрос

Соединение = Новый HTTPСоединение("api.example.com");
Запрос = Новый HTTPЗапрос("/status");
Ответ = Соединение.Получить(Запрос);

Если Ответ.КодСостояния = 200 Тогда
    Сообщить("Ответ сервера: " + Ответ.ТелоКакСтрока());
Иначе
    Сообщить("Ошибка: " + Строка(Ответ.КодСостояния));
КонецЕсли;

Пример 4. POST-запрос с JSON-телом

Данные = Новый Структура;
Данные.Вставить("user", "test");
Данные.Вставить("password", "12345");

Запись = Новый ЗаписьJSON;
Запись.УстановитьСтроку();
Запись.ЗаписатьЗначение(Данные);
JSONТело = Запись.Закрыть();

Соединение = Новый HTTPСоединение("api.example.com");
Запрос = Новый HTTPЗапрос("/login");
Запрос.УстановитьТелоИзСтроки(JSONТело, "application/json");

Ответ = Соединение.Отправить(Запрос);

Если Ответ.КодСостояния = 200 Тогда
    Сообщить("Авторизация успешна: " + Ответ.ТелоКакСтрока());
Иначе
    Сообщить("Ошибка запроса: " + Ответ.КодСостояния);
КонецЕсли;

Обработка ошибок и логирование

Для стабильной работы интеграций важно отлавливать ошибки соединения.

Попытка
    Ответ = Соединение.Получить(Запрос);
Исключение
    Сообщить("Ошибка соединения: " + ОписаниеОшибки());
КонецПопытки;

Рекомендуется вести журнал логов (например, в регистре сведений или файле) — особенно при интеграции с внешними сервисами.


Отладка и тестирование API

Для проверки API до внедрения можно использовать:

  • Postman — ручное тестирование REST-запросов;
  • Mock-сервера — имитация ответов (например, mockapi.io);
  • Консоль запросов 1С — отладка SQL и HTTP на тестовой базе.

Безопасность при работе с API

  • Используйте HTTPS вместо HTTP.
  • Никогда не храните пароли в открытом виде — только в зашифрованных настройках.
  • Ограничивайте доступ к интернету для сервисных пользователей.
  • Применяйте токены и ключи доступа, которые обновляются автоматически.

Пример из реального проекта

Разработчик интегрировал 1С:УНФ с сайтом на CMS через API.
Передача заказов и статусов шла через JSON-запросы.
После внедрения HTTP-интеграции:

  • время обмена снизилось с 15 минут до 40 секунд;
  • заказы синхронизируются автоматически каждые 5 минут;
  • бухгалтерия получает актуальные данные без ручного ввода.

Советы по архитектуре интеграций

  1. Выносите все HTTP-запросы в отдельный общий модуль.
  2. Логируйте каждый запрос и ответ в таблицу.
  3. Используйте структуру «обёртку» для параметров (заголовки, тело, код).
  4. Реализуйте повтор отправки при временных ошибках.
  5. Следите за лимитами API — многие сервисы ограничивают частоту запросов.

Вывод

Работа с JSON и HTTP-запросами в 1С — это базовый навык современного разработчика.
Освоив эти инструменты, вы сможете интегрировать 1С с любыми внешними системами — от онлайн-магазинов до корпоративных порталов.
Главное — аккуратно проектировать обмен, логировать результаты и обеспечивать безопасность передачи данных.

Вам также могут понравиться эти