При использовании сервиса проверки и заполнения реквизитов контрагентов по ИНН в программных продуктах 1С (в частности, в 1С:Бухгалтерии Предприятия 3.0) пользователи могут столкнуться со сбоем выполнения HTTPS-запросов. Данная проблема часто возникает после обновления конфигурации или платформы и проявляется исключительно в клиент-серверном режиме работы базы, в то время как в файловом режиме заполнение данных проходит успешно.
Выясним причину, почему поведение программы отличается в зависимости от режима работы базы. В обновленных версиях типовых конфигураций механизм отправки запросов к веб-сервисам переведен на обязательное использование защищенного соединения OpenSSL с проверкой сертификатов удостоверяющих центров операционной системы.
Рассмотрим фрагмент программного кода, в котором инициализируется защищенное HTTPS-соединение:
Если (Протокол = "https" Или Протокол = "ftps") И ЗащищенноеСоединение = Неопределено Тогда
Сертификаты = Новый СертификатыУдостоверяющихЦентровОС;
ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(, Сертификаты);
КонецЕсли;
В файловом режиме данный код исполняется на клиенте от имени текущего пользователя Windows, в операционной системе которого, как правило, присутствуют все необходимые корневые сертификаты. В клиент-серверном режиме вызов выносится на сервер 1С:Предприятия. При этом объект СертификатыУдостоверяющихЦентровОС обращается к хранилищу сертификатов системной учетной записи, под которой запущен сервис 1С (например, usr1cv8).
Сбой происходит по одной из следующих причин:
Чтобы не снимать основной модуль конфигурации с поддержки, разберем решение с помощью доработки через расширение. В расширении можно переопределить логику создания защищенного соединения, изменив источник получения корневых сертификатов.
Вместо объекта СертификатыУдостоверяющихЦентровОС проанализируем возможность применения объекта СертификатыУдостоверяющихЦентровФайловойСистемы. Это позволяет указать конкретный файл бандла сертификатов (например, cacert.pem из каталога платформы 1С) и обойти проблему отсутствия сертификатов в профиле системной учетной записи ОС.
Разберем по шагам административный способ решения проблемы без изменения программного кода 1С:
Если проблема вызвана сменой адреса WSDL-сервиса и сохранением устаревших параметров в базе, выполним очистку кэша БСП:
Кэш программных интерфейсов через меню «Сервис и настройки» — «Перейти по ссылке».orgregister).Если сервер 1С осуществляет выход в интернет через корпоративный прокси-сервер, необходимо настроить конфигурационный файл платформы. Для этого проанализируем каталог конфигурационных файлов платформы (папка conf в директории установки платформы на сервере) и отредактируем или создадим файл inetcfg.xml, указав параметры авторизации и адреса прокси-сервера, чтобы исходящие HTTPS-запросы сервера 1С проходили без ошибок.