Почему не работает сервис заполнения контрагента по ИНН в 1С:Бухгалтерии и как это исправить?

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

При использовании сервиса проверки и заполнения реквизитов контрагентов по ИНН в программных продуктах 1С (в частности, в 1С:Бухгалтерии Предприятия 3.0) пользователи могут столкнуться со сбоем выполнения HTTPS-запросов. Данная проблема часто возникает после обновления конфигурации или платформы и проявляется исключительно в клиент-серверном режиме работы базы, в то время как в файловом режиме заполнение данных проходит успешно.

Анализ причины возникновения ошибки

Выясним причину, почему поведение программы отличается в зависимости от режима работы базы. В обновленных версиях типовых конфигураций механизм отправки запросов к веб-сервисам переведен на обязательное использование защищенного соединения OpenSSL с проверкой сертификатов удостоверяющих центров операционной системы.

Рассмотрим фрагмент программного кода, в котором инициализируется защищенное HTTPS-соединение:


Если (Протокол = "https" Или Протокол = "ftps") И ЗащищенноеСоединение = Неопределено Тогда
    Сертификаты = Новый СертификатыУдостоверяющихЦентровОС;
    ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(, Сертификаты);
КонецЕсли;

В файловом режиме данный код исполняется на клиенте от имени текущего пользователя Windows, в операционной системе которого, как правило, присутствуют все необходимые корневые сертификаты. В клиент-серверном режиме вызов выносится на сервер 1С:Предприятия. При этом объект СертификатыУдостоверяющихЦентровОС обращается к хранилищу сертификатов системной учетной записи, под которой запущен сервис 1С (например, usr1cv8).

Сбой происходит по одной из следующих причин:

  1. Отсутствие доверенных корневых сертификатов в ОС сервера: Если на серверной операционной системе отключено автообновление сертификатов, в хранилище системного пользователя отсутствует корневой сертификат УЦ, подписывающий SSL-сертификат веб-сервиса 1С.
  2. Использование прокси-сервера или сетевого экрана с инспекцией SSL (DPI): При перехвате HTTPS-трафика прокси-сервер подменяет SSL-сертификат на собственный. Системная учетная запись сервера 1С не доверяет этому локальному сертификату.
  3. Устаревший кэш параметров веб-сервиса: При изменении WSDL-адресов сервисов 1С в конфигурации сохраняются старые данные в кэше программных интерфейсов.

Решение 1: Использование расширения конфигурации

Чтобы не снимать основной модуль конфигурации с поддержки, разберем решение с помощью доработки через расширение. В расширении можно переопределить логику создания защищенного соединения, изменив источник получения корневых сертификатов.

Вместо объекта СертификатыУдостоверяющихЦентровОС проанализируем возможность применения объекта СертификатыУдостоверяющихЦентровФайловойСистемы. Это позволяет указать конкретный файл бандла сертификатов (например, cacert.pem из каталога платформы 1С) и обойти проблему отсутствия сертификатов в профиле системной учетной записи ОС.

Решение 2: Установка корневых сертификатов на сервере 1С

Разберем по шагам административный способ решения проблемы без изменения программного кода 1С:

  1. Экспортируйте или скачайте актуальные корневые сертификаты удостоверяющих центров (Root CA), используемые сервисами 1С.
  2. Зайдите на сервер 1С под учетной записью администратора.
  3. Установите сертификат в хранилище «Доверенные корневые центры сертификации» (Trusted Root Certification Authorities).
  4. Важно убедиться, что сертификат импортирован в контексте «Локальный компьютер» (Local Computer), чтобы служба сервера 1С (работающая от имени служебного пользователя) имела к нему доступ.
  5. Перезапустите службу сервера 1С:Предприятия.

Решение 3: Очистка кэша программных интерфейсов

Если проблема вызвана сменой адреса WSDL-сервиса и сохранением устаревших параметров в базе, выполним очистку кэша БСП:

  1. Откройте регистр сведений Кэш программных интерфейсов через меню «Сервис и настройки» — «Перейти по ссылке».
  2. Найдите и удалите записи, связанные с сервисом проверки контрагентов (например, сервисы группы orgregister).
  3. Перезапустите пользовательский сеанс для повторной инициализации кэша и получения новых настроек сервиса.

Решение 4: Настройка прокси-сервера через inetcfg.xml

Если сервер 1С осуществляет выход в интернет через корпоративный прокси-сервер, необходимо настроить конфигурационный файл платформы. Для этого проанализируем каталог конфигурационных файлов платформы (папка conf в директории установки платформы на сервере) и отредактируем или создадим файл inetcfg.xml, указав параметры авторизации и адреса прокси-сервера, чтобы исходящие HTTPS-запросы сервера 1С проходили без ошибок.

← На главную