Вход | Регистрация
 

Как wsdl сделать полностью off-line что бы работало?

Как wsdl сделать полностью off-line что бы работало?
Я
   RomaH
 
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,
        ИмяПользователя,
        Пароль,
        ИнтернетПрокси,
        Таймаут,
        ЗащищенноеСоединение
    );
ломится по этим адресам, а адреса эти , например сейчас, не очень доступны

помогите избавится от обращения к внешним ресурсам
   RomaH
 
1 - 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>

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

есть какой-нибудь конструктор - что бы все само по исходному файлу в один ?
   Вафель
 
3 - 01.02.21 - 12:05
тебе нужно прочитать xml по схеме?
   Вафель
 
4 - 01.02.21 - 12:06
[1C]
    ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресХранилища);
    Поток = ДвоичныеДанные.ОткрытьПотокДляЧтения();
    
    ЧтениеXML = Новый ЧтениеXML;    
    ЧтениеXML.ОткрытьПоток(Поток);    
    
    Метод = Метаданные.WebСервисы.Exchange.Операции[ИмяМетода];
    ТипПараметра = Метод.Параметры.Object.ТипЗначенияXDTO;
    ТипXDTO      = ФабрикаXDTO.Тип(ТипПараметра.URIПространстваИмен, ТипПараметра.ЛокальноеИмя);
    
    ОбъектXDTO = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML, ТипXDTO);
    ЧтениеXML.Закрыть();
[/1C]
   RomaH
 
5 - 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 сделать внутри одного файла

вот есть ли он-лайн сервис который может?
   d4rkmesa
 
6 - 01.02.21 - 12:21
(5) Если попробовать функцию из БСП с кэшированием, тоже ломится при повторных вызовах?
   arsik
 
7 - 01.02.21 - 12:21
(5) Создай новый элемент в WS-ссылки, укажи там свой ВСДЛ https://docs.fss.ru/WSLnCryptoV20/FileOperationsLnService?wsdl=../Faults.wsdl, он туда подтянет все что связано с сервисом внешним. Им и пользуйся.
   arsik
 
8 - 01.02.21 - 12:22
(7) Онлайн нужен, но 1 раз только, при создании WSссылки
   arsik
 
9 - 01.02.21 - 12:25
+ (7) Хотя я незнаю, по какой ты ссылке к всдл подключаешься. Напиши ссылку на всдл сюда.
   RomaH
 
10 - 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 - вроде отпустило
   RomaH
 
11 - 01.02.21 - 12:33
(9) вот "исходная" ссылка
https://docs.fss.ru/WSLnCryptoV20/FileOperationsLnService?WSDL
   RomaH
 
12 - 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-ссылки - правильное направление?
   2mugik
 
13 - 02.02.21 - 08:10
(12)я может не совсем понял но когда ты все это дело отправлять будешь оно валидаю у получателя пройдет? даже если у тебя получится "локализовать" то что ты хочешь.
   RomaH
 
14 - 02.02.21 - 08:20
(13) а почему нет? если импортированные схемы будут соответствовать схемам получателя

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.