Ваши комментарии

Андрей, если работаете через API, вы можете просто не забирать из подсказок филиалы. Выбирайте из списка только подсказки, у которых data.branch_type = MAIN.


Если работаете через плагин, то список можно отфильтровать от филиалов с помощью коллбека onSuggestionsFetch. Пример: подсказки по организациям без филиалов.

Вот что удалось выяснить.


1. Документация 1С явно говорит о том, что сертификат клиента и сертификат удостоверяющего центра в простых случаях не требуются:

Создает защищенное соединение OpenSSL, использующего указанные источники клиентского сертификата и сертификатов удостоверяющих центров.
Если не указывается источник сертификатов удостоверяющих центров, то сертификат сервера не проверяется.
Если не указывается источник клиентского сертификата, то соединение возможно только с серверами, не требующими предоставления клиентского сертификата.

Это как раз наш случай: Дадата не требует клиентского сертификата.


2. Ваш код на моем тестовом сервере 1С работает без проблем.


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


В результате моя единственная гипотеза на сегодня — проблема в прокси-сервере или сетевых настройках, которые ваш сервер 1С использует для выхода в интернет. «Нечто» между сервером 1С и сервером Дадаты (ОС / прокси / маршрутизатор) через некоторое время перестает корректно обрабатывать исходящие соединения.


Как это можно проверить:

  1. Убедиться, что сервер 1С работает без использования прокси.
  2. Попробовать делать вызовы других сервисов, работающих через HTTPS (например, Яндекс), в течение длительного времени. Ошибка должна повториться.
  3. Попробовать работать с Дадатой по HTTP вместо HTTPS.

Еще уточните, пожалуйста:

  1. Версия платформы 1С?
  2. Код подключения к API выполняется на сервере 1C или на клиенте?

Попробуйте так:

ssl = Новый ЗащищенноеСоединениеOpenSSL(
            Новый СертификатКлиентаWindows(СпособВыбораСертификатаWindows.Авто),
            Новый СертификатыУдостоверяющихЦентровWindows());
Соединение = Новый HTTPСоединение("dadata.ru",,,,,,ssl);

И еще: вы используете прокси-сервер? Если да, попробуйте отключить его.

Добрый день! Какую ошибку вы получаете (HTTP-код и текст ошибки)?

Александр, плагин можно включать (если страна Россия) и отключать (если любая другая).

Пример: Включить или отключить подсказки

Добрый день! Такой возможности нет. А зачем она вам?

Окей, тогда, например, такой вариант. Создаете зап из Google Sheets через Code в Airtable. Вызов Дадаты происходит на шаге Code. Код на Питоне такой:

import json

BASE_URL = 'https://dadata.ru/api/v2/clean/'
TIMEOUT = 3  # in seconds
API_KEY = 'ВАШ_API_КЛЮЧ'
API_SECRET = 'ВАШ_СЕКРЕТНЫЙ_КЛЮЧ'

url = BASE_URL + 'name'
headers = {
    'Authorization': 'Token %s' % API_KEY,
    'X-Secret': API_SECRET,
    'Content-Type': 'application/json',
    'Accept-Encoding': 'gzip, deflate',
}

data = [ input_data['name'], ]
response = requests.post(url, data=json.dumps(data), headers=headers, timeout=TIMEOUT)
response.raise_for_status()
return response.json()

Заменяете в коде ВАШ_API_КЛЮЧ и ВАШ_СЕКРЕТНЫЙ_КЛЮЧ на реальные значения из личного кабинета. Настраиваете, чтобы ФИО из гугло-таблицы складывались в переменную name:


И все работает.


Если вы хотите эту возможность — напишите в комментариях, как станете использовать поля «кем выдан», «дата выдачи» и «код подразделения». Для чего они вам?

Сервис поддержки клиентов работает на платформе UserEcho