Как выполнить подключение к API Dadata в 1С с использованием токена?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Интеграция сторонних сервисов, таких как Dadata, в информационные системы 1С — это стандартная задача современного разработчика. В процессе настройки взаимодействия с API часто возникают вопросы по правильной передаче авторизационных данных. Рассмотрим подробно, как реализовать подключение к сервису Dadata для поиска организаций или очистки данных.

Подготовка к работе с API

Для корректного взаимодействия с сервером Dadata нам потребуются два ключа, полученных в личном кабинете: API-ключ и Секретный ключ. Эти данные используются для формирования заголовков HTTP-запроса, которые подтверждают право доступа к API.

Прежде чем приступать к написанию кода, важно убедиться, что сервер, на котором работает 1С, имеет доступ к протоколу HTTPS. Для защищенного соединения в платформе используется объект ЗащищенноеСоединениеOpenSSL.

Реализация HTTP-запроса в коде 1С

Рассмотрим по шагам, как сформировать и отправить запрос к методам API. Основная логика заключается в создании объекта HTTPЗапрос с необходимыми заголовками и выполнении его через HTTPСоединение.

Для начала нам необходимо определить заголовки запроса. По правилам API Dadata, нам потребуется указать тип содержимого и ключи доступа:


Заголовки = Новый Соответствие;
Заголовки.Вставить("Content-Type" , "application/json");
Заголовки.Вставить("Authorization", "Token " + КлючиДоступа.APIКлюч);
Заголовки.Вставить("X-Secret"     , КлючиДоступа.СекретныйКлюч);

Далее создаем сам объект запроса, указывая адрес метода API. Например, для очистки адресов мы используем путь /api/v2/clean/address.


Запрос = Новый HTTPЗапрос("/api/v2/clean/address", Заголовки);
Запрос.УстановитьТелоИзСтроки("[""" + Адрес + """]", КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);

Теперь подготовим HTTPСоединение для отправки данных:


Соединение = Новый HTTPСоединение("dadata.ru", 443,,,,,
    Новый ЗащищенноеСоединениеOpenSSL(Неопределено, Неопределено),);
Ответ = Соединение.ОтправитьДляОбработки(Запрос);
ОтветСервера = Ответ.ПолучитьТелоКакСтроку(КодировкаТекста.UTF8);

Важные аспекты отладки и безопасности

При работе с API в 1С часто возникают ошибки, связанные с безопасностью соединения. Если 1С выдает ошибку соединения, первым делом проверьте наличие установленных корневых сертификатов на сервере. Также важно учитывать следующие моменты:

  1. Формирование JSON: Старайтесь избегать ручного склеивания строк для формирования JSON-объектов. Используйте встроенные средства платформы, такие как ЗаписьJSON или сериализаторы, чтобы избежать проблем со спецсимволами.
  2. Анализ ответов: Всегда проверяйте КодСостояния ответа. Код 200 означает успех, а коды 401 или 403 сигнализируют о проблемах с ключами или лимитами.
  3. Инструменты анализа: Если запрос не проходит, используйте Postman. Вы можете скопировать пример запроса cURL из документации API, вставить его в Postman, и он автоматически разложит параметры по заголовкам и телу, что поможет понять структуру корректного вызова.

Использование cURL как универсального языка API

Понимание структуры cURL запросов — критически важный навык. Практически любая документация API предоставляет примеры в этом формате. Разберем основные части:

Научившись читать такие запросы, вы сможете интегрировать любую систему, не полагаясь на готовые модули, а создавая надежные решения самостоятельно.

Рекомендации по стабильности

Для продакшн-решений рекомендуется всегда задавать Таймауты при создании соединения. Это защитит вашу учетную систему от зависаний в случаях, когда API внешнего сервиса временно недоступно или медленно отвечает. Также не забывайте о реализации логирования: сохранение отправленных запросов и полученных ответов в регистр сведений или текстовый файл поможет вам оперативно решать проблемы, если интеграция перестанет работать.

← На главную