Многие пользователи сталкиваются с задачей автоматического заполнения реквизитов организации на основании имеющегося ОГРН. В данной статье мы разберем, почему стандартный сервис 1С:Контрагент не поддерживает такой поиск «из коробки», и какие варианты интеграции существуют для реализации этой функции в ваших конфигурациях.
Сервис 1С:Контрагент является стандартным инструментом платформы для получения актуальных данных из государственных реестров. Однако, проанализировав его архитектуру, мы видим, что сервис оптимизирован для поиска и идентификации налогоплательщиков именно по ИНН, который является ключевым уникальным идентификатором. Возможность прямого поиска по ОГРН в текущем API вендора не реализована. Если вы попытаетесь отправить ОГРН в качестве поискового параметра, штатный механизм не сможет обработать такой запрос, так как он ожидает ИНН.
Если ваша бизнес-задача требует ввода именно ОГРН, мы можем реализовать алгоритм «обходного пути». Суть его заключается в двухэтапном процессе:
ОГРН и получить соответствующий ей ИНН.ИНН мы передаем в штатную функцию 1С:Контрагент, которая успешно находит контрагента и заполняет все остальные реквизиты в карточке.Для реализации этого метода можно использовать сторонние веб-сервисы, которые предоставляют API для поиска контрагентов. Рассмотрим пример работы с такими сервисами.
Альтернативой является использование специализированных API, например, DaData. Эти сервисы поддерживают расширенные возможности поиска, включая поиск по ОГРН, КПП или даже по части наименования. Рассмотрим, как это выглядит на практике:
Когда пользователь вводит ОГРН в форму 1С, мы отправляем запрос к API провайдера. В ответ получаем объект с реквизитами, включая ИНН. Далее, используя полученный ИНН, мы программно заполняем реквизиты объекта Контрагент.
Пример логики обработки ответа от внешнего API:
// Пример псевдокода для обработки данных
Результат = СервисAPI.НайтиКонтрагентаПоОГРН(ВведенныйОГРН);
Если Результат.Успешно Тогда
ИНН = Результат.ИНН;
// Дальнейший вызов стандартного механизма 1С:Контрагент
ОбъектКонтрагент = Справочники.Контрагенты.СоздатьЭлемент();
ОбъектКонтрагент.ИНН = ИНН;
ЗаполнитьПоИНН(ОбъектКонтрагент);
КонецЕсли;
Для тех, кто хочет максимальной автономности, существует возможность прямого обращения к API ФНС. Это требует регистрации на официальном портале и написания кода для работы с форматами XML или JSON. Это более сложный, но надежный путь, так как вы получаете данные напрямую из первоисточника без промежуточных посредников.
При анализе реализации стоит учесть следующие важные моменты:
egrul.nalog.ru для критически важных финансовых операций.Подводя итог нашей совместной работе по поиску решения, можно сделать следующие выводы:
1С:Контрагент не поддерживает поиск по ОГРН, поэтому необходимо использовать дополнительные программные надстройки.DaData, которые позволяют получить ИНН по ОГРН и использовать его для штатного заполнения.Рекомендуем при написании кода обработки обязательно учитывать обработку ошибок HTTP-соединения, так как работа с внешними API зависит от стабильности интернет-соединения и доступности серверов провайдера на момент выполнения запроса.