Как организовать поиск контрагента по ОГРН в 1С?

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

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

Ограничения штатного сервиса 1С:Контрагент

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

Решение 1: Использование предварительного поиска через открытые источники

Если ваша бизнес-задача требует ввода именно ОГРН, мы можем реализовать алгоритм «обходного пути». Суть его заключается в двухэтапном процессе:

  1. Сначала мы обращаемся к публичным API или сервисам ФНС, которые позволяют найти организацию по номеру ОГРН и получить соответствующий ей ИНН.
  2. Затем полученный ИНН мы передаем в штатную функцию 1С:Контрагент, которая успешно находит контрагента и заполняет все остальные реквизиты в карточке.

Для реализации этого метода можно использовать сторонние веб-сервисы, которые предоставляют API для поиска контрагентов. Рассмотрим пример работы с такими сервисами.

Решение 2: Интеграция со сторонними API (например, DaData)

Альтернативой является использование специализированных API, например, DaData. Эти сервисы поддерживают расширенные возможности поиска, включая поиск по ОГРН, КПП или даже по части наименования. Рассмотрим, как это выглядит на практике:

Когда пользователь вводит ОГРН в форму 1С, мы отправляем запрос к API провайдера. В ответ получаем объект с реквизитами, включая ИНН. Далее, используя полученный ИНН, мы программно заполняем реквизиты объекта Контрагент.

Пример логики обработки ответа от внешнего API:


// Пример псевдокода для обработки данных
Результат = СервисAPI.НайтиКонтрагентаПоОГРН(ВведенныйОГРН);
Если Результат.Успешно Тогда
    ИНН = Результат.ИНН;
    // Дальнейший вызов стандартного механизма 1С:Контрагент
    ОбъектКонтрагент = Справочники.Контрагенты.СоздатьЭлемент();
    ОбъектКонтрагент.ИНН = ИНН;
    ЗаполнитьПоИНН(ОбъектКонтрагент);
КонецЕсли;

Решение 3: Прямое использование API ФНС

Для тех, кто хочет максимальной автономности, существует возможность прямого обращения к API ФНС. Это требует регистрации на официальном портале и написания кода для работы с форматами XML или JSON. Это более сложный, но надежный путь, так как вы получаете данные напрямую из первоисточника без промежуточных посредников.

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

Итоги и рекомендации

Подводя итог нашей совместной работе по поиску решения, можно сделать следующие выводы:

Рекомендуем при написании кода обработки обязательно учитывать обработку ошибок HTTP-соединения, так как работа с внешними API зависит от стабильности интернет-соединения и доступности серверов провайдера на момент выполнения запроса.

← На главную