Имя: Пароль:
1C
1С v8
помогите разобраться: новый WSОпределения
,
0 hawksib
 
23.11.18
07:34
справка:

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";);

создается объект с типом 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', и по указанному пути хранится в точности такой же файл, какой был скачан с интернета

помогите разобраться, что не так, ведь в конструктор в первый параметр передается строка, как и указано в справке
1 ДенисЧ
 
23.11.18
07:39
Правов на файл может не хватить.
А почему бы его в конфигурацию не запихнуть?
2 hawksib
 
23.11.18
07:40
(1) как прав не хватает? записать же смог
3 hawksib
 
23.11.18
07:57
конфу нельзя обновлять
4 ДенисЧ
 
23.11.18
07:58
При создании описания сервиса произошла ошибка. : Файл не обнаружен 'C:\Users\user\AppData\Local\Temp\Service.wsdl'
при этом переменная ФайлWSDL имеет следующее значение: 'C:\Users\user\AppData\Local\Temp\v8_BF2A_2bb.wsdl',

Попробуй найти различия...
5 hawksib
 
23.11.18
08:00
(4) я про это и говорю, специально написал, что переменная по-другому называется, чем путь к файлу, который не обнаружен
6 hawksib
 
23.11.18
08:03
в файле содержится такое : <wsdl:definitions name="Service"
7 hawksib
 
23.11.18
09:09
(6) разобрался, проблема была не в этом, в тексте wsdl было location = "Service.wsdl", вот с этим и была проблема