Имя: Пароль:
IT
 
Как wsdl сделать полностью off-line что бы работало?
0 RomaH
 
naïve
29.01.21
11:59
Подписываем больничные листы
используется WSDL файл

<wsdl:definitions
    xmlns:xs="http://www.w3.org/2001/XMLSchema";
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
    xmlns:mo="http://www.fss.ru/integration/types/eln/mo/v01";
    xmlns:fs="http://www.fss.ru/integration/ws/fault/v01";
    xmlns="http://www.fss.ru/integration/ws/eln/mo/v01"; name="FileOperationsLnService" targetNamespace="http://www.fss.ru/integration/ws/eln/mo/v01">;
    <wsdl:import location="https://docs.fss.ru/WSLnCryptoV20/FileOperationsLnService?wsdl=../Faults.wsdl"; namespace="http://www.fss.ru/integration/ws/fault/v01"></wsdl:import>;
    <wsdl:types>
        <xs:schema
            xmlns:xs="http://www.w3.org/2001/XMLSchema";
            xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd";
            xmlns:tns="http://www.fss.ru/integration/types/eln/mo/v01";
            xmlns:p="http://www.fss.ru/integration/types/person/v01";
            xmlns:org="http://www.fss.ru/integration/types/organization/v01";
            xmlns:com="http://www.fss.ru/integration/types/eln/v01"; elementFormDefault="qualified" targetNamespace="http://www.fss.ru/integration/types/eln/mo/v01"; version="1.0">
            <xs:import namespace="http://www.fss.ru/integration/types/organization/v01"; schemaLocation="https://docs.fss.ru/WSLnCryptoV20/FileOperationsLnService?xsd=../../xsd/v01/type/Organization.xsd"/>;
            <xs:import namespace="http://www.fss.ru/integration/types/eln/v01"; schemaLocation="https://docs.fss.ru/WSLnCryptoV20/FileOperationsLnService?xsd=../../xsd/v01/type/Eln.xsd"/>;
            <xs:import namespace="http://www.fss.ru/integration/types/person/v01"; schemaLocation="https://docs.fss.ru/WSLnCryptoV20/FileOperationsLnService?xsd=../../xsd/v01/type/Person.xsd"/>;
            <xs:import namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"; schemaLocation="https://docs.fss.ru/WSLnCryptoV20/FileOperationsLnService?xsd=../../xsd/v01/eln/WsSecurity.xsd"/>;

сам файлик хранится в общем макете, но наличие в нем schemaLocation="https://docs.fss.ru/WSLnCryptoV20/FileOperationsLnService?xsd=../../xsd/v01/eln/WsSecurity.xsd";
побуждает 1С при

Определения = Новый WSОпределения(
        ИмяФайлаWSDL,
        ИмяПользователя,
        Пароль,
        ИнтернетПрокси,
        Таймаут,
        ЗащищенноеСоединение
    );
ломится по этим адресам, а адреса эти , например сейчас, не очень доступны

помогите избавится от обращения к внешним ресурсам
1 RomaH
 
naïve
29.01.21
12:01
например
по адресу: https://docs.fss.ru/WSLnCryptoV20/FileOperationsLnService?xsd=../../xsd/v01/eln/WsSecurity.xsd

<xs:schema elementFormDefault="qualified" targetNamespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"; version="1.0">
<xs:attribute name="Id" type="xs:ID">
<xs:annotation>
<xs:documentation>
This global attribute supports annotating arbitrary elements with an ID.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:schema>

как его вставить в макет?
2 RomaH
 
naïve
01.02.21
11:53
по-изучал вопрос - в принципе возможно
но там куча вложеностей

есть какой-нибудь конструктор - что бы все само по исходному файлу в один ?
3 Вафель
 
01.02.21
12:05
тебе нужно прочитать xml по схеме?
4 Вафель
 
01.02.21
12:06

    ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресХранилища);
    Поток = ДвоичныеДанные.ОткрытьПотокДляЧтения();
    
    ЧтениеXML = Новый ЧтениеXML;    
    ЧтениеXML.ОткрытьПоток(Поток);    
    
    Метод = Метаданные.WebСервисы.Exchange.Операции[ИмяМетода];
    ТипПараметра = Метод.Параметры.Object.ТипЗначенияXDTO;
    ТипXDTO      = ФабрикаXDTO.Тип(ТипПараметра.URIПространстваИмен, ТипПараметра.ЛокальноеИмя);
    
    ОбъектXDTO = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML, ТипXDTO);
    ЧтениеXML.Закрыть();
5 RomaH
 
naïve
01.02.21
12:18
нет
суть - схема содержит

  <wsdl:import location="https://docs.fss.ru/WSLnCryptoV20/FileOperationsLnService?wsdl=../Faults.wsdl";; namespace="http://www.fss.ru/integration/ws/fault/v01"></wsdl:import>;;

и 1С при вызове
Определения = Новый WSОпределения(
        ИмяФайлаWSDL,

ломится по указанному адресу, а ФСС последнее время не отвечает

хочу все что import сделать внутри одного файла

вот есть ли он-лайн сервис который может?
6 d4rkmesa
 
01.02.21
12:21
(5) Если попробовать функцию из БСП с кэшированием, тоже ломится при повторных вызовах?
7 arsik
 
гуру
01.02.21
12:21
(5) Создай новый элемент в WS-ссылки, укажи там свой ВСДЛ https://docs.fss.ru/WSLnCryptoV20/FileOperationsLnService?wsdl=../Faults.wsdl, он туда подтянет все что связано с сервисом внешним. Им и пользуйся.
8 arsik
 
гуру
01.02.21
12:22
(7) Онлайн нужен, но 1 раз только, при создании WSссылки
9 arsik
 
гуру
01.02.21
12:25
+ (7) Хотя я незнаю, по какой ты ссылке к всдл подключаешься. Напиши ссылку на всдл сюда.
10 RomaH
 
naïve
01.02.21
12:32
(9) вот начало файла - общий макет в 1С Медицина Больничные

<wsdl:definitions
    xmlns:xs="http://www.w3.org/2001/XMLSchema";;
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";;
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";;
    xmlns:mo="http://www.fss.ru/integration/types/eln/mo/v01";;
    xmlns:fs="http://www.fss.ru/integration/ws/fault/v01";;
    xmlns="http://www.fss.ru/integration/ws/eln/mo/v01";; name="FileOperationsLnService" targetNamespace="http://www.fss.ru/integration/ws/eln/mo/v01">;;
    <wsdl:import location="https://docs.fss.ru/WSLnCryptoV20/FileOperationsLnService?wsdl=../Faults.wsdl";; namespace="http://www.fss.ru/integration/ws/fault/v01"></wsdl:import>;;
    <wsdl:types>
        <xs:schema
            xmlns:xs="http://www.w3.org/2001/XMLSchema";;
            xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd";;
            xmlns:tns="http://www.fss.ru/integration/types/eln/mo/v01";;
            xmlns:p="http://www.fss.ru/integration/types/person/v01";;
            xmlns:org="http://www.fss.ru/integration/types/organization/v01";;
            xmlns:com="http://www.fss.ru/integration/types/eln/v01";; elementFormDefault="qualified" targetNamespace="http://www.fss.ru/integration/types/eln/mo/v01";; version="1.0">
            <xs:import namespace="http://www.fss.ru/integration/types/organization/v01";; schemaLocation="https://docs.fss.ru/WSLnCryptoV20/FileOperationsLnService?xsd=../../xsd/v01/type/Organization.xsd"/>;;
            <xs:import namespace="http://www.fss.ru/integration/types/eln/v01";; schemaLocation="https://docs.fss.ru/WSLnCryptoV20/FileOperationsLnService?xsd=../../xsd/v01/type/Eln.xsd"/>;;
            <xs:import namespace="http://www.fss.ru/integration/types/person/v01";; schemaLocation="https://docs.fss.ru/WSLnCryptoV20/FileOperationsLnService?xsd=../../xsd/v01/type/Person.xsd"/>;;
            <xs:import namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd";; schemaLocation="https://docs.fss.ru/WSLnCryptoV20/FileOperationsLnService?xsd=../../xsd/v01/eln/WsSecurity.xsd"/>;;

- тут 4 импорта
практически все 4 ссылки содержат свои "импорты"
и далее - свои

кеширование не поможет ФСС падает надолго, сегодня с 9 часов примерно, до 12 - вроде отпустило
11 RomaH
 
naïve
01.02.21
12:33
(9) вот "исходная" ссылка
https://docs.fss.ru/WSLnCryptoV20/FileOperationsLnService?WSDL
12 RomaH
 
naïve
02.02.21
07:20
импортировали XSD в XDTO-пакеты
а https://docs.fss.ru/WSLnCryptoV20/FileOperationsLnService?wsdl=../Faults.wsdl в WS-ссылку

при использовании падает - похоже на переполнение стека

ок, импортнем первую ссылку
https://docs.fss.ru/WSLnCryptoV20/FileOperationsLnService?WSDL

ругается на
"Не может содержать схемы с одинаковым целевым пространством"

я так понимаю в этом собака зарыта?
импорт всего этого добра в XDTO-пакеты + WS-ссылки - правильное направление?
13 2mugik
 
02.02.21
08:10
(12)я может не совсем понял но когда ты все это дело отправлять будешь оно валидаю у получателя пройдет? даже если у тебя получится "локализовать" то что ты хочешь.
14 RomaH
 
naïve
02.02.21
08:20
(13) а почему нет? если импортированные схемы будут соответствовать схемам получателя
15 PuhUfa
 
03.06.21
16:56
(0) удалось победить?
У меня:

АдресWSDL = "https://docs-test.fss.ru/WSLnCryptoV20/FileOperationsLnService?WSDL";
ИмяПользователя = "";
Пароль = "";
Таймаут = 10;
ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
Определение = Новый WSОпределения(АдресWSDL, ИмяПользователя, Пароль, ,Таймаут, ЗащищенноеСоединение);

Падает с ошибкой: "Неверный аргумент."
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс