Как настроить автоматический ввод контрагентов по ИНН в 1С:Управление торговлей 10.3?

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

При ежедневном добавлении новых контрагентов ручной ввод наименований, кодов КПП, ОГРН, ОКПО и адресов занимает много времени и приводит к ошибкам. В современных конфигурациях на управляемых формах за автозаполнение отвечает встроенный сервис 1С. Однако в конфигурации 1С:Управление торговлей 10.3, работающей на обычных формах, этот функционал по умолчанию отсутствует из-за отсутствия актуальных подсистем БСП.

Рассмотрим подробнее, какие существуют рабочие варианты для автоматического заполнения данных контрагентов по ИНН в УТ 10.3, а также разберем технические нюансы реализации собственных решений.

Вариант 1. Использование сервиса «1С:Контрагент»

Официальный сервис от фирмы 1С позволяет автоматически заполнять реквизиты юридических лиц и ИП по ИНН на основании данных ЕГРЮЛ/ЕГРИП.

Особенности использования данного сервиса в УТ 10.3:

  1. Подключение: Для использования сервиса потребуется действующая подписка ИТС или отдельно приобретенный лицензионный продукт «1С:Контрагент».
  2. Ограничения по запросам: Стандартный лимит составляет 7 200 автозаполнений в год (примерно 20 запросов в день), чего вполне достаточно для большинства торговых компаний.
  3. Интеграция: Потребуется внедрить модуль сервиса в конфигурацию или использовать готовое внешнее решение/обработку, адаптированную под обычные формы.

Вариант 2. Интеграция с внешними REST API (на примере DaData)

Если требуется бесплатный лимит или гибкая настройка под особенности предприятия, разберем решение на основе внешнего сервиса подсказок DaData. Сервис предоставляет бесплатный лимит до 10 000 запросов в день, что полностью закрывает потребности малого и среднего бизнеса.

Проанализируем архитектурные и технические нюансы реализации такой интеграции в 1С:Управление торговлей 10.3:

  1. Использование защищенного соединения HTTPS: Внешние веб-сервисы работают исключительно по протоколу TLS/SSL. При отправке запроса из 1С необходимо корректно инициализировать объект ЗащищенноеСоединениеOpenSSL.
  2. Форматирование и парсинг данных (JSON): На старых платформах (до версии 8.3.6) отсутствуют штатные функции работы с форматом JSON. Для обработки ответа сервера потребуется использовать сторонние парсеры, COM-объект MSScriptControl.ScriptControl или использовать платформу 8.3 в режиме совместимости с разбором строки.
  3. Определение КПП и обособленных подразделений: При поиске организации исключительно по 10-значному ИНН сервис всегда возвращает данные головной компании. Чтобы получить реквизиты филиала, запрос к API необходимо передавать по связке ИНН + КПП.
  4. Сопоставление адресов: В УТ 10.3 адресная информация хранится в формате КЛАДР или в виде текстового представления в регистрах контактной информации. Внешние API отдают адреса по классификатору ФИАС/ГАР. Поэтому полученный структурированный ответ необходимо программно разобрать на составляющие (регион, город, улица, дом) и правильно записать в соответствующий регистр сведений или табличную часть элемента справочника Контрагенты.

Пример кода отправки HTTP-запроса к API

Посмотрим на пример формирования 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 и заполнение реквизитов
КонецЕсли;

Дополнительные возможности внешней обработки

При выстраивании процесса автозаполнения выделим следующие практические рекомендации:

  1. Перехват событий формы: Удобно привязать отправку запроса к событию ПриИзменении для поля ввода ИНН в форме элемента справочника «Контрагенты».
  2. Групповая обработка: Помимо ввода новых контрагентов, можно написать фоновую обработку для заполнения пропущенных кодов ОКПО, ОГРН и юридических адресов в существующей базе данных.
  3. Проверка статуса контрагента: Сервис позволяет получать текущее состояние юридического лица (действующее, в процессе ликвидации, банкрот). Это дает возможность заблокировать проведение документов (реализаций, заказов) по ликвидированным контрагентам.
← На главную