При работе с типовыми конфигурациями 1С часто возникает необходимость автоматического заполнения реквизитов контрагентов по ИНН. Основным инструментом для этого служит сервис 1С:Контрагент. Однако в условиях строгих корпоративных политик безопасности доступ к внешним веб-сервисам с сервера приложений может быть заблокирован. В таких ситуациях разработчикам крайне важно понимать, в каком именно формате приходят данные, чтобы корректно настроить обработку или отладить механизмы интеграции. Рассмотрим подробно, что именно возвращает сервис 1С при запросе данных по ИНН, на примере конкретной организации.
Для начала разберем техническую сторону вопроса. Когда мы нажимаем кнопку Заполнить по ИНН, система обращается к веб-сервису (исторически это был orgregister.1c.ru, в современных версиях — защищенный шлюз API). Ответ приходит в виде сложной структуры XDTO, которая соответствует схеме, утвержденной ФНС для выписок из ЕГРЮЛ. Это означает, что данные передаются ровно в том виде, в котором они зафиксированы в государственных реестрах.
Проанализируем путь к данным внутри объекта ответа. Для юридического лица основные реквизиты наименования находятся в узле СвНаимЮЛ (Сведения о наименовании юридического лица). Разберем конкретные поля, которые нас интересуют:
Важно понимать, что сервис не занимается «украшательством» текста. Если в ЕГРЮЛ название записано заглавными буквами, сервис вернет его именно так. Если используются специфические кавычки, они также будут переданы без изменений.
Рассмотрим ситуацию, когда нам нужно узнать, что именно вернет сервис для организации с ИНН 7807057657 (ООО «РЕМСТРОЙ»). Многие пользователи предполагают, что сервис может возвращать наименование в формате «РЕМСТРОЙ, ООО» (с запятой после названия), однако это заблуждение. Проанализируем реальные значения полей:
Полное наименование (НаимЮЛПолн):
ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ "РЕМСТРОЙ"
Сокращенное наименование (НаимЮЛСокр):
ООО "РЕМСТРОЙ"
Обратите внимание: организационно-правовая форма (ООО) всегда идет в начале строки, как это принято в юридических документах. Формат с запятой (например, «РЕМСТРОЙ, ООО») обычно формируется уже внутри самой конфигурации 1С (например, в «1С:Бухгалтерии») с помощью встроенных функций обработки строк, чтобы пользователю было удобнее искать контрагента в списке по алфавиту названия, а не по аббревиатуре ООО. Сам веб-сервис такую трансформацию не выполняет.
Выясним, как программно получить эти данные, если у вас есть доступ к объекту ответа. В коде типовых конфигураций это выглядит примерно следующим образом:
// Предположим, что Ответ — это полученный XDTO-объект от сервиса
// Получаем полное наименование
НаименованиеПолное = Ответ.РеквизитыЮрЛица.СвНаимЮЛ.НаимЮЛПолн;
// Получаем сокращенное наименование
НаименованиеСокращенное = Ответ.РеквизитыЮрЛица.СвНаимЮЛ.НаимЮЛСокр;
// Пример проверки на наличие данных
Если ЗначениеЗаполнено(НаименованиеСокращенное) Тогда
КонтрагентОбъект.Наименование = НаименованиеСокращенное;
Иначе
КонтрагентОбъект.Наименование = НаименованиеПолное;
КонецЕсли;
Нужно учитывать, что в некоторых случаях у организации может отсутствовать сокращенное наименование в реестре. В такой ситуации поле НаимЮЛСокр будет пустым, и логика программы должна предусматривать использование полного наименования в качестве основного.
Если на сервере 1С отсутствует доступ к веб-сервису, мы столкнемся с ошибками типа Failed to resolve или Превышено время ожидания. Разберем основные причины, почему это происходит, даже если конфигурация настроена верно:
orgregister.1c.ru или api.orgregistry.1c.ru. Это часто лечится настройкой форвардинга DNS или проверкой файла hosts.Если вам критически важно узнать точность регистра и знаков препинания, а сервер заблокирован, выполним следующие шаги:
Во-первых, можно воспользоваться обработкой Проверка контрагентов на локальном компьютере, где есть интернет. Типовая конфигурация 1С позволяет запустить отладчик на клиенте. Посмотрим в табло значение переменной, содержащей ответ от сервиса.
Во-вторых, проанализируем официальный портал ФНС (ЕГРЮЛ). Данные 1С:Контрагента идентичны данным из официальной выписки. Если в выписке написано "РЕМСТРОЙ" в кавычках-лапках, то и сервис вернет именно их. Если в выписке стоит запятая (что бывает крайне редко и обычно является ошибкой регистратора), она будет и в ответе сервиса.
Важный совет: При написании кода обработки данных никогда не полагайтесь на жестко заданные позиции запятых или пробелов. Используйте функции СтрЗаменить() или регулярные выражения, если вам нужно привести наименование к специфическому корпоративному стандарту (например, всегда переносить ООО в конец).
Таким образом, мы выяснили, что веб-сервис 1С возвращает эталонные данные из госреестра. Любые запятые и изменения регистра, которые вы видите в справочнике «Контрагенты», — это результат работы внутренних алгоритмов 1С, а не «сырой» ответ сервера. Для отладки в условиях закрытой сети рекомендуется использовать логирование XML-ответов на тех машинах, где доступ открыт, либо ориентироваться на структуру XDTO, описанную в документации к API 1С:Контрагент.