1c документооборот- имя сервиса не задано

Добрый день! Уважаемые читатели и гости популярного компьютерного блога pyatilistnik.org. В прошлый раз мы с вами решили ошибку » db query error please try later», и восстановили работу сайта на платформе 1С Битрикс. Сегодня я хочу поделиться небольшой заметкой, как выйти из ситуации, когда не работает кнопка «Заполнить по ИНН» в Справочнике Контрагенты при создании нового. Выдается ошибка «ОбщийМодуль.ОбщегоНазначенияПовтИсп.Модуль(198): Ошибка при вызове конструктора (WSОпределения) WSОпределения = Новый(Тип(«WSОпределения»). Давайте разбираться в чем собственно дело.

Причины ошибок с модулем 198-504

Вся проблема связана с неправильным и устаревшим сертификатом, это бывает если вы давно не обновляли свою версию 1С, а в этот момент как раз истек срок сертификата, который участвует в подключении к внешним сервисам, например, npchk.nalog.ru или api.orgregister.1c.ru.

Вот так вот выглядит более полный текст ошибки:

Не работает кнопка «Заполнить по ИНН» в Справочнике Контрагенты при создании нового.

Выдает ошибку:

{ОбщийМодуль.ОбщегоНазначенияПовтИсп.Модуль(198)}: Ошибка при вызове конструктора (WSОпределения)

WSОпределения = Новый(Тип(«WSОпределения»), Параметры);

по причине:

по причине:

Ошибка работы с Интернет: Удаленный узел не прошел проверку

Комментарий: {ОбщийМодуль. ОбщегоНазначения. Модуль (5303)}: Ошибка при вызове конструктора (WSОпределения)
Определения = Новый WSОпределения (ИмяФайлаWSDL, ИмяПользователя, Пароль, ИнтернетПрокси, Таймаут);
по причине:
Ошибка импорта схемы
по причине:
Ошибка при выполнении файловой операции ‘_ttp://npchk.nalog.ru:80/FNSNDSCAWS_2?xsd=1’
по причине:
Ошибка работы с Интернет: произошел таймаут при ожидании ответа шлюзу (504).

10060 — Ошибка соединения с сервером

HOST — npchk.nalog.ru; PORT — 80
Connection timed outTraffic Inspector HTTP/FTP/Proxy server (3.0.2.912)

по причине:
Ошибка работы с Интернет: произошел таймаут при ожидании ответа шлюзу (504)

Как решить проблему

В случае клиент-серверной версии необходимо добавить сертификат Digicert как на сервере, так и на всех клиентах. Добавлять стоит способом, описанным в пункту 1 или 3. Перегружать сервер после обновления cacert.pem не нужно.

  • Самым быстрым методом? будет замена сертификата cacert.pem, который располагается в папке с вашим клиентом. Скачать cacert.pem можно о официального сайта по ссылке:

https://its.1c.ru/db/files/1CITS/EXE/cacert/cacert.zip

В итоге у вас будет архив с сертификатом cacert.pem, распакуйте его. Далее, откройте вашего клиента, где вы получаете ошибку при вызове конструктора WSОпределения. И перейдите по пути:

C:\Program Files (x86)\1cv8\8.3.11.3034\bin\ это в случае с версией 8.3.11.3034

Если вы теряетесь в своих версиях, то попробуйте произвести поиск по cacert.pem в папке C:\Program Files (x86) и посмотрите, где у вас нужно подменить, этот файл. Меняете его на свежий и радуетесь жизни.

  • Второй метод, заключается в использовании обработки в 1С. Скачайте файл обработка.epf

https://its.1c.ru/db/files/1CITS/EXE/digicert_epf/digicert_epf.zip

ОБЯЗАТЕЛЬНО запустите его от имени администратора, иначе можете получить ошибку:

Ошибка записи сертификата. Возможно:
— Файл cacert.pem занят. Освободите файл от редактирования и запустите обработку заново.
— Закройте 1С: Предприятие и запустите с правами администратора операционной системы

* Ну и третий метод, это редактирование текущего файла cacert.pem. Откройте его текстовым редактором и в самом конце файла вставьте содержимое файла digicert.pem, который можно скачать тут:

справка:
WSОпределения (WSDefinitions)
Из WSDL файла
Синтаксис:
Новый WSОпределения(<МестоположениеWSDL>, <ИмяПользователя>, <Пароль>, <ИнтернетПрокси>, <Таймаут>, <ЗащищенноеСоединение>, <ИспользоватьАутентификациюОС>)
Параметры:
<МестоположениеWSDL> (обязательный)
Тип: Строка.
Местоположение WSDL файла, откуда будет получено определение веб-сервисов.
<ИмяПользователя> (необязательный)
Тип: Строка.
Имя пользователя, которое будет использоваться для аутентификации при получении определений веб-сервисов.
<Пароль> (необязательный)
Тип: Строка.
Пароль пользователя, который будет использоваться для аутентификации при получении определений веб-сервисов.
<ИнтернетПрокси> (необязательный)
Тип: ИнтернетПрокси.
Содержит объект ИнтернетПрокси, используемый для загрузки WSDL документа по протоколу HTTP.
Если не указан, то используются настройки прокси по умолчанию.
Значение по умолчанию: Неопределено.
<Таймаут> (необязательный)
Тип: Число.
Таймаут соединения, осуществляемого для загрузки WSDL описания веб-сервиса, в секундах. 0 — не устанавливать таймаут.
Значение по умолчанию: 0.
<ЗащищенноеСоединение> (необязательный)
Тип: ЗащищенноеСоединениеOpenSSL; Неопределено.
Объект защищенного соединения для осуществления HTTPS соединения для загрузки WSDL описания веб-сервиса.
Значение по умолчанию: Неопределено.
<ИспользоватьАутентификациюОС> (необязательный)
Тип: Булево.
Включает использование аутентификации NTLM или Negotiate на сервере.
Значение по умолчанию: Ложь.
Описание:
Создает определение веб-сервисов из WSDL-файла.
Если используемый WSDL-файл некорректен, будет вызвано исключение.
пишу так:
ОпределениеWS = Новый WSОпределения(«http://api.xxx.ru/schema/service.wsdl&quot;);
создается объект с типом WSОпределения, но так как всё тянется с интернета, проходит время, хочу ускорить
сохраняю wsdl на диск, добавляю макет, с типом двоичные данные и называю его service_wsdl, пишу следующее:
ФайлWSDL = ПолучитьИмяВременногоФайла(«wsdl»);
ПолученныйМакет = ПолучитьМакет(«service_wsdl»);
ПолученныйМакет.Записать(ФайлWSDL);
ОпределениеWS = Новый WSОпределения(ФайлWSDL);
УдалитьФайлы(ФайлWSDL);
конструктор не срабатывает, в ошибке написано следующее:
Ошибка при вызове конструктора (WSОпределения): При вызове веб-сервиса произошла ошибка. При создании описания сервиса произошла ошибка. : Файл не обнаружен ‘C:\Users\user\AppData\Local\Temp\Service.wsdl’
при этом переменная ФайлWSDL имеет следующее значение: ‘C:\Users\user\AppData\Local\Temp\v8_BF2A_2bb.wsdl’, и по указанному пути хранится в точности такой же файл, какой был скачан с интернета
помогите разобраться, что не так, ведь в конструктор в первый параметр передается строка, как и указано в справке

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *