При ведении учета и заведении новых контрагентов в 1С часто возникает задача автоматического заполнения реквизитов (КПП, ОГРН, полного наименования, юридического адреса, сведений о руководителе) по номеру ИНН напрямую из реестров Федеральной налоговой службы (ЕГРЮЛ/ЕГРИП). Разберем, как устроен этот функционал в типовых конфигурациях, какие условия необходимы для его работы и как реализовать загрузку данных собственными силами.
Вариант 1. Штатный механизм сервиса «1С:Контрагент» и Библиотека стандартных подсистем (БСП)
В большинстве современных типовых конфигураций 1С (таких как 1С:Бухгалтерия предприятия, 1С:Управление торговлей, 1С:ERP) встроен механизм автозаполнения реквизитов по кнопке Заполнить по ИНН. Проанализируем, как устроен данный сервис и что требуется для его функционирования:
Подключение через Портал 1С:ИТС: Заполнение реквизитов выполняется через веб-сервис фирмы «1С» (сервис «1С:Контрагент»). Конфигурация 1С отправляет запрос на сервер авторизации портала, передавая ИНН, а сервис в ответ возвращает структурированный пакет данных контрагента из актуальных баз ЕГРЮЛ/ЕГРИП.
Условия доступа: Для использования сервиса необходима действующая учетная запись на портале 1С и активный договор информационно-технологического сопровождения уровня ИТС ПРОФ (в него включен лимит обращений) либо отдельно приобретенный пакет сервиса «1С:Контрагент». Базовые подписки уровня ИТС ТЕХНО данный функционал по умолчанию не включают.
Использование кода из БСП: Если разрабатывается собственная нетиповая конфигурация или дорабатывается старая база, готовый программный код и процедуры заполнения можно взять из Библиотеки стандартных подсистем (БСП), подсистема «Работа с контрагентами». В ней уже реализованы все обработчики авторизации, отправки веб-запросов и разбора входящих структур данных.
Вариант 2. Прямое обращение к открытым REST API и сервисам налоговой службы
Если в базе нет подписки ИТС ПРОФ или требуется полностью независимое решение, обратимся к открытым источникам данных. Рассмотрим основные варианты интеграции:
Двухэтапный HTTP-запрос к публичной поисковой форме реестров: Общедоступный сервис поиска юрлиц работает по асинхронной схеме. Сначала отправляется POST-запрос с указанием ИНН или ОГРН для запуска поиска. В ответ возвращается JSON с идентификатором задачи (токеном). Вторым GET-запросом по полученному токену забирается результирующий JSON-пакет со всеми данными организации (наименование, адрес, ОГРН, статус, ФИО руководителя).
Официальный программный API ФНС: Налоговая служба предоставляет специализированный API для разработчиков с доступом к открытым государственным реестрам. Для подключения требуется регистрация и получение индивидуального токена авторизации. Запросы отправляются стандартными методами REST (GET/POST), возвращая ответ в формате JSON или XML.
Сторонние REST-сервисы и агрегаторы: Существуют специализированные внешние API для стандартизации контрагентов и адресов. Они предоставляют бесплатные лимиты запросов в сутки и возвращают готовые структурированные данные по ИНН в один HTTP-запрос.
Особенности реализации загрузки на платформе 1С:Предприятие 8.2
При самостоятельной разработке модуля загрузки данных в среде 1С 8.2 необходимо учитывать технические ограничения данной версии платформы. Разберем ключевые моменты:
Работа с современными протоколами шифрования (TLS 1.2+): Большинство государственных и коммерческих веб-сервисов требуют защищенное соединение TLS 1.2 или TLS 1.3. В ранних релизах 8.2 объект HTTPСоединение не поддерживает современные протоколы SSL, что вызывает ошибку соединения при обращении к HTTPS. В таком случае оправдано использование консольной утилиты curl через метод ЗапуститьПриложение() либо передача запросов через локальный промежуточный сервис.
Ограничения объекта HTTPСоединение в 8.2: В версии 8.2 отсутствует объект HTTPЗапрос для гибкой работы с телом запроса в оперативной памяти. Отправка и получение данных выполняются через сохранение во временные файлы на диске с помощью методов Записать() и Получить().
Разбор JSON в 1С 8.2: В платформе 8.2 отсутствуют штатные объекты ЧтениеJSON и ЗаписьJSON (появившиеся в версии 8.3.6). Для обработки ответа сервера применяют разбор строки регулярными выражениями, преобразование JSON в XML с последующим чтением через ЧтениеXML или использование COM-объекта MSScriptControl.ScriptControl:
// Пример разбора JSON через MSScriptControl в 1С 8.2 (32-разрядный клиент)
Скрипт = Новый COMОбъект("MSScriptControl.ScriptControl");
Скрипт.Language = "JScript";
Скрипт.AddCode("function getProperty(obj, prop) { return obj[prop]; }");
ОбъектJSON = Скрипт.Eval("(" + СтрокаJSONОтвета + ")");
НаименованиеКонтрагента = Скрипт.Run("getProperty", ОбъектJSON, "name");
Рекомендации по выбору решения
Подведем итог и выберем оптимальный подход под конкретные условия:
Если конфигурация типовая и оформлен договор ИТС ПРОФ, наиболее надежным и поддерживаемым решением является использование штатной подсистемы «1С:Контрагент».
Если конфигурация самописная на современной версии платформы 8.3, целесообразно внедрить подсистему работы с контрагентами из состава БСП либо настроить прямой HTTP-запрос к официальному API с авторизацией по токену.
Если разработка ведется на платформе 1С 8.2, запросы к внешним веб-сервисам реализуются с учетом отсутствия встроенных объектов JSON и ограничений работы с TLS через внешние утилиты или COM-объекты.