При ежедневном добавлении новых контрагентов ручной ввод наименований, кодов КПП, ОГРН, ОКПО и адресов занимает много времени и приводит к ошибкам. В современных конфигурациях на управляемых формах за автозаполнение отвечает встроенный сервис 1С. Однако в конфигурации 1С:Управление торговлей 10.3, работающей на обычных формах, этот функционал по умолчанию отсутствует из-за отсутствия актуальных подсистем БСП.
Рассмотрим подробнее, какие существуют рабочие варианты для автоматического заполнения данных контрагентов по ИНН в УТ 10.3, а также разберем технические нюансы реализации собственных решений.
Официальный сервис от фирмы 1С позволяет автоматически заполнять реквизиты юридических лиц и ИП по ИНН на основании данных ЕГРЮЛ/ЕГРИП.
Особенности использования данного сервиса в УТ 10.3:
Если требуется бесплатный лимит или гибкая настройка под особенности предприятия, разберем решение на основе внешнего сервиса подсказок DaData. Сервис предоставляет бесплатный лимит до 10 000 запросов в день, что полностью закрывает потребности малого и среднего бизнеса.
Проанализируем архитектурные и технические нюансы реализации такой интеграции в 1С:Управление торговлей 10.3:
ЗащищенноеСоединениеOpenSSL.MSScriptControl.ScriptControl или использовать платформу 8.3 в режиме совместимости с разбором строки.Контрагенты.Посмотрим на пример формирования HTTPS-запроса из 1С к API получения данных организации по ИНН:
ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
Соединение = Новый HTTPСоединение("suggestions.dadata.ru", 443, , , , 30, ЗащищенноеСоединение);
Запрос = Новый HTTPЗапрос("/suggestions/api/4_1/rs/findById/party");
Запрос.Заголовки.Вставить("Content-Type", "application/json");
Запрос.Заголовки.Вставить("Accept", "application/json");
Запрос.Заголовки.Вставить("Authorization", "Token " + ТокенАвторизации);
// Формируем тело запроса с ИНН контрагента
ТелоЗапроса = "{""query"": """ + СокрЛП(ИННПоиска) + """}";
Запрос.УстановитьТелоИзСтроки(ТелоЗапроса, КодировкаТекста.UTF8);
Ответ = Соединение.ОтправитьДляОбработки(Запрос);
Если Ответ.КодСостояния = 200 Тогда
СтрокаОтвета = Ответ.ПолучитьТелоКакСтроку(КодировкаТекста.UTF8);
// Далее выполняется парсинг JSON и заполнение реквизитов
КонецЕсли;
При выстраивании процесса автозаполнения выделим следующие практические рекомендации:
ПриИзменении для поля ввода ИНН в форме элемента справочника «Контрагенты».