Ошибка разбора wsdl неверный формат wsdl описания

WSDL (англ. Web Services Description Language) — язык описания веб-сервисов и доступа к ним, основанный на языке XML. После успешной публикаций web сервиса 1С  нужно проверить доступность и коррект…

WSDL (англ. Web Services Description Language) — язык описания веб-сервисов и доступа к ним, основанный на языке XML.

После успешной публикаций web сервиса 1С  нужно проверить доступность и корректность файла WSDL.  Для этого нужно запустить любой браузер  по адресу

http://www.ИмяСайта.ru/ПутьНаСайте/ИмяФайла.1cws?wsdl

Например,  Запустите работающий сервис сбербанка  http://www.cbr.ru/dailyinfowebserv/dailyinfo.asmx?WSDL

Браузер должен отобразить некий файл XML  и не выдавать ошибку или пустую страницу или невнятный текст на любой кодировке.

Существуют 2 способа загрузки WSDL файл веб- сервиса в 1С:

  1. Статическая ссылка  (Добавление WS-ссылки 1С )  – WS-ссылки 1С это объект 1С, который расположен в конфигурации в ветке Общие/WS-ссылки 1С.  Добавление ссылки на веб сервис производится автоматически. Нажмите правой кнопкой на ветку, выберите Добавить, укажите путь к WSDL описанию веб сервиса.  В результате добавления WS-ссылки 1С будет создана автоматически такая же структура, как создается вручную при добавлении Web сервиса.
  2.  Динамическая ссылка ( WsСоединение )  – В этом случае на импорт WSDL в момент создания объекта будет потрачено определенное время

Подробнее  о динамических и статических ссылках по материалам из диска ИТС я написал    здесь

Часто при загрузке  WSDL файл  статически (WS-ссылки)  или динамически (WsСоединение)  может возникать ошибку типа нет соединения с веб сервисом  или не верный формат данных в файле WSDL

Особенность загрузки WSDL в 1С в том, что валидные схемы могут не загружаться. Никакого встроенного валидатора нет, поэтому приходится искать ошибку методом деструктивного анализа, последовательно уменьшая количество элементов в схеме.

Веб -программисты  используют программу Web Services Validation Tool for WSDL and SOAP для создания, проверки, передачи и приема SOAP-сообщений.

  Вот например, файл WSDL( см рис 1)  в 1С не загружается и выдается ошибка о неверном формате.  Сначала я  удалил описание веб-сервиса в XML-редакторе и ничего не получилось, но когда  я убрал , все что связано со словами  «policies» удалось загружать

Рис 1. Не верный формат WSDL -файла для загрузки в 1С

I’m programming a SOAP client for an existing soap web service.
I’m using Wildfly8.2 as a server where the client is and JbossWS, JAX-WS

I generated the classes needed to call the service via eclispe with the NEW-> Web service client wizzard

When I call the service I got the error INVALID_WSDL … the stack trace is on the bottom.

The actual problematic service call is the call to «addService» method of the web service.

This is the code that I use to call the service:

SOAP service1 = new SOAP();
WorkflowEditor workflowEditor = service1.getSOAPPort();

AddService parameters = new AddService();
parameters.setLogicalURI(logicalUri);
parameters.setServiceDescription(serviceDescription);
parameters.setServiceType(servicetype.getName());
Specialties specialities = new Specialties();
specialities.getSpecialty().add("aaaa");
parameters.setSpecialties(specialities);
parameters.setWsdlLocation(wsdlLocation);
parameters.setWsdlServiceName(wsdlServiceName);
parameters.setSessionToken(currentUser.getKeystoneSessionToken());
workflowEditor.addService(parameters);

the generated java class for the parameters in the soap call:

package si.arctur.services.workflowEditor;

import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {

})
@XmlRootElement(name = "addService")
public class AddService {

    @XmlElement(required = true)
    protected String sessionToken;
    @XmlElement(required = true)
    protected String wsdlLocation;
    @XmlElement(required = true)
    protected String wsdlServiceName;
    @XmlElement(required = true)
    protected String logicalURI;
    @XmlElement(required = true)
    protected String serviceType;
    protected AddService.Specialties specialties;
    @XmlElement(required = true)
    protected String serviceDescription;


    public String getSessionToken() {
        return sessionToken;
    }


    public void setSessionToken(String value) {
        this.sessionToken = value;
    }


    public String getWsdlLocation() {
        return wsdlLocation;
    }


    public void setWsdlLocation(String value) {
        this.wsdlLocation = value;
    }


    public String getWsdlServiceName() {
        return wsdlServiceName;
    }


    public void setWsdlServiceName(String value) {
        this.wsdlServiceName = value;
    }


    public String getLogicalURI() {
        return logicalURI;
    }


    public void setLogicalURI(String value) {
        this.logicalURI = value;
    }


    public String getServiceType() {
        return serviceType;
    }


    public void setServiceType(String value) {
        this.serviceType = value;
    }


    public AddService.Specialties getSpecialties() {
        return specialties;
    }


    public void setSpecialties(AddService.Specialties value) {
        this.specialties = value;
    }

    public String getServiceDescription() {
        return serviceDescription;
    }


    public void setServiceDescription(String value) {
        this.serviceDescription = value;
    }


    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "specialty"
    })
    public static class Specialties {

        @XmlElement(required = true)
        protected List<String> specialty;


        public List<String> getSpecialty() {
            if (specialty == null) {
                specialty = new ArrayList<String>();
            }
            return this.specialty;
        }

    }

}

This is the wsdl copied from the browser:

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="WorkflowEditor" targetNamespace="*****************" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wfe="*****************" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
  <wsdl:types>
    <xsd:schema targetNamespace="*****************">
      <xsd:element name="addService">
        <xsd:complexType>
          <xsd:all>
            <xsd:element name="sessionToken" type="xsd:string"/>
            <xsd:element name="wsdlLocation" type="xsd:string"/>
            <xsd:element name="wsdlServiceName" type="xsd:string"/>
            <xsd:element name="logicalURI" type="xsd:string"/>
            <xsd:element name="serviceType" type="xsd:string"/>
            <xsd:element maxOccurs="1" minOccurs="0" name="specialties">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element maxOccurs="unbounded" minOccurs="1" name="specialty" type="xsd:string">
                        </xsd:element>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="serviceDescription" type="xsd:string">
            </xsd:element>
            <xsd:element name="serviceTitle" type="xsd:string"/>
          </xsd:all>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="addServiceResponse">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element name="success" type="xsd:boolean"/>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="removeService">
        <xsd:complexType>
            <xsd:all>
                <xsd:element name="sessionToken" type="xsd:string"/>
                <xsd:element name="serviceURI" type="xsd:string"/>
            </xsd:all>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="removeServiceResponse">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="success" type="xsd:boolean"/>
            </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="addUserToService">
        <xsd:complexType>
            <xsd:all>
                <xsd:element name="sessionToken" type="xsd:string"/>
                <xsd:element name="serviceURI" type="xsd:string"/>
                <xsd:element name="username" type="xsd:string"/>
            </xsd:all>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="addUserToServiceResponse">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="success" type="xsd:boolean"/>
            </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="removeUserFromService">
        <xsd:complexType>
            <xsd:all>
                <xsd:element name="sessionToken" type="xsd:string"/>
                <xsd:element name="serviceURI" type="xsd:string"/>
                <xsd:element name="username" type="xsd:string"/>
            </xsd:all>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="removeUserFromServiceResponse">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="success" type="xsd:boolean"/>
            </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="addWorkflow">
        <xsd:complexType>
            <xsd:all>
                <xsd:element name="sessionToken" type="xsd:string"/>
                <xsd:element name="workflowDescription_base64" type="xsd:string"/>
            </xsd:all>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="addWorkflowResponse">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="success" type="xsd:boolean"/>
            </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="removeWorkflow">
        <xsd:complexType>
            <xsd:all>
                <xsd:element name="sessionToken" type="xsd:string"/>
                <xsd:element name="workflowURI" type="xsd:string"/>
            </xsd:all>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="removeWorkflowResponse">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="success" type="xsd:boolean"/>
            </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="replaceWorkflow">
        <xsd:complexType>
            <xsd:all>
                <xsd:element name="sessionToken" type="xsd:string"/>
                <xsd:element name="workflowDescription_base64" type="xsd:string"/>
            </xsd:all>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="replaceWorkflowResponse">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="success" type="xsd:boolean"/>
            </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="getWorkflowDescription">
        <xsd:complexType>
            <xsd:all>
                <xsd:element name="sessionToken" type="xsd:string"/>
                <xsd:element name="workflowURI" type="xsd:string"/>
            </xsd:all>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="getWorkflowDescriptionResponse">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="success" type="xsd:boolean"/>
                <xsd:element name="workflowDescription_base64" type="xsd:string"/>
            </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="getWorkflows">
        <xsd:complexType>
            <xsd:all>
                <xsd:element name="sessionToken" type="xsd:string"/>
            </xsd:all>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="getWorkflowsResponse">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="success" type="xsd:boolean"/>
                <xsd:element name="workflows">
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="workflow" type="xsd:string"/>
                        </xsd:sequence>
                    </xsd:complexType>
                </xsd:element>
            </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="getServices">
        <xsd:complexType>
            <xsd:all>
                <xsd:element name="sessionToken" type="xsd:string"/>
            </xsd:all>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="getServicesResponse">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="success" type="xsd:boolean"/>
                <xsd:element name="services">
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="service" type="xsd:string"/>
                        </xsd:sequence>
                    </xsd:complexType>
                </xsd:element>
            </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="getServiceIOs">
        <xsd:complexType>
            <xsd:all>
                <xsd:element name="sessionToken" type="xsd:string"/>
                <xsd:element name="serviceURI" type="xsd:string"/>
            </xsd:all>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="getServiceIOsResponse">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="success" type="xsd:boolean"/>
                <xsd:element name="serviceIOs">
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="serviceIO" type="xsd:string"/>
                        </xsd:sequence>
                    </xsd:complexType>
                </xsd:element>
            </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="getServiceInfo">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="sessionToken" type="xsd:string"/>
                <xsd:element name="serviceURI" type="xsd:string"/>
            </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="getServiceInfoResponse">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="description" type="xsd:string"/>
                <xsd:element name="wsdlLink" type="xsd:string"/>
                <xsd:element name="title" type="xsd:string"/>
            </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="getServicesInfo">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="sessionToken" type="xsd:string"/>
            </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="getServicesInfoResponse">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="success" type="xsd:boolean"/>
                <xsd:element name="services">
                    <xsd:complexType>
                            <xsd:sequence>
                                <xsd:element maxOccurs="unbounded" minOccurs="0" name="service">
                                    <xsd:complexType>
                                        <xsd:sequence>
                                            <xsd:element maxOccurs="1" minOccurs="1" name="serviceURI" type="xsd:string">
                                            </xsd:element>
                                            <xsd:element maxOccurs="1" minOccurs="0" name="serviceDescription" type="xsd:string">
                                            </xsd:element>
                                            <xsd:element maxOccurs="1" minOccurs="1" name="serviceWSDL" type="xsd:string">
                                            </xsd:element>
                                            <xsd:element maxOccurs="1" minOccurs="1" name="serviceTitle" type="xsd:string">
                                            </xsd:element>
                                        </xsd:sequence>
                                    </xsd:complexType>
                                </xsd:element>
                                </xsd:sequence>
                        </xsd:complexType>
                </xsd:element>
            </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
    </xsd:schema>
  </wsdl:types>
  <wsdl:message name="removeWorkflowRequest">
    <wsdl:part name="parameters" element="wfe:removeWorkflow">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="addWorkflowRequest">
    <wsdl:part name="parameters" element="wfe:addWorkflow">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="removeUserFromServiceRequest">
    <wsdl:part name="parameters" element="wfe:removeUserFromService">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="removeServiceRequest">
    <wsdl:part name="parameters" element="wfe:removeService">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="getServicesRequest">
    <wsdl:part name="parameters" element="wfe:getServices">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="removeUserFromServiceResponse">
    <wsdl:part name="parameters" element="wfe:removeUserFromServiceResponse">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="replaceWorkflowRequest">
    <wsdl:part name="parameters" element="wfe:replaceWorkflow">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="getServicesInfoRequest">
    <wsdl:part name="parameters" element="wfe:getServicesInfo">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="getWorkflowDescriptionRequest">
    <wsdl:part name="parameters" element="wfe:getWorkflowDescription">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="getServicesResponse">
    <wsdl:part name="parameters" element="wfe:getServicesResponse">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="getServiceIOsResponse">
    <wsdl:part name="parameters" element="wfe:getServiceIOsResponse">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="getServiceInfoResponse">
    <wsdl:part name="parameters" element="wfe:getServiceInfoResponse">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="addUserToServiceResponse">
    <wsdl:part name="parameters" element="wfe:addUserToServiceResponse">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="removeWorkflowResponse">
    <wsdl:part name="parameters" element="wfe:removeWorkflowResponse">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="getWorkflowDescriptionResponse">
    <wsdl:part name="parameters" element="wfe:getWorkflowDescriptionResponse">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="getServiceInfoRequest">
    <wsdl:part name="parameters" element="wfe:getServiceInfo">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="getWorkflowsResponse">
    <wsdl:part name="parameters" element="wfe:getWorkflowsResponse">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="getServiceIOsRequest">
    <wsdl:part name="parameters" element="wfe:getServiceIOs">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="replaceWorkflowResponse">
    <wsdl:part name="parameters" element="wfe:replaceWorkflowResponse">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="addServiceResponse">
    <wsdl:part name="parameters" element="wfe:addServiceResponse">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="addUserToServiceRequest">
    <wsdl:part name="parameters" element="wfe:addUserToService">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="removeServiceResponse">
    <wsdl:part name="parameters" element="wfe:removeServiceResponse">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="getServicesInfoResponse">
    <wsdl:part name="parameters" element="wfe:getServicesInfoResponse">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="addWorkflowResponse">
    <wsdl:part name="parameters" element="wfe:addWorkflowResponse">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="getWorkflowsRequest">
    <wsdl:part name="parameters" element="wfe:getWorkflows">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="addServiceRequest">
    <wsdl:part name="parameters" element="wfe:addService">
    </wsdl:part>
  </wsdl:message>
  <wsdl:portType name="WorkflowEditor">
    <wsdl:operation name="addService">
      <wsdl:input message="wfe:addServiceRequest">
    </wsdl:input>
      <wsdl:output message="wfe:addServiceResponse">
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="removeService">
      <wsdl:input message="wfe:removeServiceRequest">
    </wsdl:input>
      <wsdl:output message="wfe:removeServiceResponse">
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="addUserToService">
      <wsdl:input message="wfe:addUserToServiceRequest">
    </wsdl:input>
      <wsdl:output message="wfe:addUserToServiceResponse">
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="removeUserFromService">
      <wsdl:input message="wfe:removeUserFromServiceRequest">
    </wsdl:input>
      <wsdl:output message="wfe:removeUserFromServiceResponse">
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="addWorkflow">
      <wsdl:input message="wfe:addWorkflowRequest">
    </wsdl:input>
      <wsdl:output message="wfe:addWorkflowResponse">
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="removeWorkflow">
      <wsdl:input message="wfe:removeWorkflowRequest">
    </wsdl:input>
      <wsdl:output message="wfe:removeWorkflowResponse">
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="replaceWorkflow">
      <wsdl:input message="wfe:replaceWorkflowRequest">
    </wsdl:input>
      <wsdl:output message="wfe:replaceWorkflowResponse">
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getWorkflowDescription">
      <wsdl:input message="wfe:getWorkflowDescriptionRequest">
    </wsdl:input>
      <wsdl:output message="wfe:getWorkflowDescriptionResponse">
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getWorkflows">
      <wsdl:input message="wfe:getWorkflowsRequest">
    </wsdl:input>
      <wsdl:output message="wfe:getWorkflowsResponse">
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getServices">
      <wsdl:input message="wfe:getServicesRequest">
    </wsdl:input>
      <wsdl:output message="wfe:getServicesResponse">
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getServiceIOs">
      <wsdl:input message="wfe:getServiceIOsRequest">
    </wsdl:input>
      <wsdl:output message="wfe:getServiceIOsResponse">
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getServiceInfo">
      <wsdl:input message="wfe:getServiceInfoRequest">
    </wsdl:input>
      <wsdl:output message="wfe:getServiceInfoResponse">
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getServicesInfo">
      <wsdl:input message="wfe:getServicesInfoRequest">
    </wsdl:input>
      <wsdl:output message="wfe:getServicesInfoResponse">
    </wsdl:output>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="WorkflowEditorSOAP" type="wfe:WorkflowEditor">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="addService">
      <soap:operation soapAction="*****************addService"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="removeService">
      <soap:operation soapAction="*****************removeService"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="addUserToService">
      <soap:operation soapAction="*****************addUserToService"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="removeUserFromService">
      <soap:operation soapAction="*****************removeUserFromService"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="addWorkflow">
      <soap:operation soapAction="*****************addWorkflow"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="removeWorkflow">
      <soap:operation soapAction="*****************removeWorkflow"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="replaceWorkflow">
      <soap:operation soapAction="*****************replaceWorkflow"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getWorkflowDescription">
      <soap:operation soapAction="*****************getWorkflowDescription"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getWorkflows">
      <soap:operation soapAction="*****************getWorkflows"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getServices">
      <soap:operation soapAction="*****************getServices"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getServiceIOs">
      <soap:operation soapAction="*****************getServiceIOs"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getServiceInfo">
      <soap:operation soapAction="*****************getServiceInfo"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getServicesInfo">
      <soap:operation soapAction="*****************getServicesInfo"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="SOAP">
    <wsdl:port name="SOAPPort" binding="wfe:WorkflowEditorSOAP">
      <soap:address location="*******************************"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

The stack trace error:

Caused by: javax.wsdl.WSDLException: WSDLException (at /html): faultCode=INVALID_WSDL: Expected element '{http://schemas.xmlsoap.org/wsdl/}definitions'.
at com.ibm.wsdl.xml.WSDLReaderImpl.checkElementName(Unknown Source)
at com.ibm.wsdl.xml.WSDLReaderImpl.parseDefinitions(Unknown Source)
at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
at org.apache.axis2.description.AxisService.createClientSideAxisService(AxisService.java:2317)
... 29 more

Старый
06.02.2015, 11:22

 

#1
 

Участник

Аватар для Bega

 

Регистрация: 18.08.2005

Адрес: Москва

Вызов веб-сервиса Ax 2012 R3 из 1C 8.2


Друзья, кому-нибудь удавалось вызвать custom веб-сервис, реализованный на стороне Ax из 1С? При указании ссылки на WSDL, 1С выдает ошибку «Неверный формат». Судя по всему Ax генерит либо неправильный либо слишком сложный WSDL. Не удается даже для простейшего сервиса (операция принимает и возвращает строку).

Есть какой-то способ изменить формирование этого файла WSDL в Ax?

На форумах 1С есть информация, могут не нравится названия некоторых тэгов. Если сравнить с WSDL, генерируемый из Visual Studio, то получается что он сильно отличается от формата Ax.


Последний раз редактировалось Bega; 06.02.2015 в 11:30.

Старый
06.02.2015, 11:29

 

#2
 

Участник

 

Регистрация: 28.11.2005

Адрес: Москва

Записей в блоге: 3

Судя по тому, что другие системы спокойно «проглатывают» генерируемый Аксаптой WSDL, он генерится правильный и не шибко сложный, скажем, для генерации proxy-классов по нему. Видимо, дело все же в 1С. Может, из 1С дергать не веб-сервисы, а старый добрый .NET Business Connector? С ним тоже есть определенные заморочки, но в целом успешные примеры есть.

Старый
06.02.2015, 11:41

 

#3
 

Участник

Аватар для Bega

 

Регистрация: 18.08.2005

Адрес: Москва

Цитата:

Сообщение от gl00mie
Посмотреть сообщение

Судя по тому, что другие системы спокойно «проглатывают» генерируемый Аксаптой WSDL, он генерится правильный и не шибко сложный, скажем, для генерации proxy-классов по нему. Видимо, дело все же в 1С. Может, из 1С дергать не веб-сервисы, а старый добрый .NET Business Connector? С ним тоже есть определенные заморочки, но в целом успешные примеры есть.

Проверил сайтом www.wsdl-analyzer.com и получил предупреждения:
1. http://tempuri.org/ is used by some samples and templates. You should use a unique targetNamespace.
2. Bindings — SOAP12 warning (рекомендация использовать 1.1)

«другие системы» — это какие? мне конечно удалось вызвать из Ax2009 и Visual Studio, ног это все microsoft.

WSDL этот ядром генерится или есть где-то код на X++?

Старый
06.02.2015, 11:47

 

#4
 

Участник

Аватар для Morpheus

Соотечественники

 

Регистрация: 30.03.2005

Адрес: Київ-København-Düsseldorf

Попробуйте создать в Visual Studio прокси dll и вызывать ее методы из 1С.

Старый
06.02.2015, 12:15

 

#5
 

Участник

Аватар для Bega

 

Регистрация: 18.08.2005

Адрес: Москва

Цитата:

Сообщение от Morpheus
Посмотреть сообщение

Попробуйте создать в Visual Studio прокси dll и вызывать ее методы из 1С.

Да это понятно, но некрасиво.

Старый
06.02.2015, 12:21

 

#6
 

Участник

 

Регистрация: 06.03.2007

Адрес: москва

WSDL возвращает SOAP сервис. Данные по binding он берет из настроек app.config или web.config.
DAX формирует файлы C# затем компилирует их и разворачивает как сервис. Посмотреть как генерятся файлы для сервиса. можно в классах Aif.
Как пример:

X++:

AifServiceConfigGenerator

X++:

AifServiceGenerationManager

Последний раз редактировалось maldini; 06.02.2015 в 12:31.

За это сообщение автора поблагодарили: Bega (5).

Старый
06.02.2015, 12:48

 

#7
 

Участник

 

Регистрация: 28.11.2005

Адрес: Москва

Записей в блоге: 3

Цитата:

Сообщение от Bega
Посмотреть сообщение

Цитата:

Сообщение от Morpheus
Посмотреть сообщение

Попробуйте создать в Visual Studio прокси dll и вызывать ее методы из 1С.

Да это понятно, но некрасиво.

С каких это пор?

Старый
06.02.2015, 12:51

 

#8
 

Участник

1C

 

Регистрация: 13.01.2006

Адрес: Республика Татарстан, г. Казань

Встречался в 1С с проблемой, когда в WSDL-описании было зацикливание директив импорта.

Другие приложения «кушают» это нормально, 1С не умеет.

Можно попробовать сохранить WSDL-описание в файл, почистить ручками и в 1С его скормить, дальше попробовать подергать методы сервиса, может поможет.

Сталкивался с этой проблемой на платформе 8.2, на 8.3 не пробовал, может починили.

__________________
Айрат Вильданов.
skype: vildanov.a

За это сообщение автора поблагодарили: Bega (3).

Старый
06.02.2015, 13:30

 

#9
 

Участник

Аватар для Bega

 

Регистрация: 18.08.2005

Адрес: Москва

Цитата:

Сообщение от gl00mie
Посмотреть сообщение

С каких это пор?

Дополнительный программный код и его поддержка. И зачем тогда декларируемая Ax система интеграции через web-сервисы.

21 / 21 / 3

Регистрация: 22.04.2014

Сообщений: 112

1

17.08.2015, 12:21. Показов 4980. Ответов 6


Здравствуйте, проблема такая есть веб сервис https://4totam.4totam.ru/4/WsAgents.svc?wsdl. Когда пытаюсь загрузить данные с этого этого файла пишет «неверный формат»(загружал через WS-ссылки). Посмотрел файл вроде как обычный. Но потом оказалось он несколько модифицированный. Подскажите как быть? Хотелось бы через WS-ссылки сделать, но есть еще com Объект( через него работает 100%). Погуглил говорили чисто программно можно обращаться и передавать данные.. Может кто сталкивался?

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



SPR1TE89

21 / 21 / 3

Регистрация: 22.04.2014

Сообщений: 112

19.08.2015, 09:32

 [ТС]

2

Получилось загрузить обертку веб сервис, но теперь другая проблема

1C
1
 Ошибка при вызове метода контекста (CheckAuthority): Ошибка вызова операции сервиса:  {http://tempuri.org/}:WsAgentsService:CheckAuthority(): Неизвестная ошибка. Ошибка работы с Интернет:   Удаленный узел не прошел проверку: Ошибка работы с Интернет:   Удаленный узел не прошел проверку.

Когда передаю сертификат он так ругается, когда даю системе выбрать сертификат ругается так

1C
1
 Ошибка при вызове метода контекста (CheckAuthority): Ошибка вызова операции сервиса:  {http://tempuri.org/}:WsAgentsService:CheckAuthority(): Ошибка HTTP:  HTTP Status (403).

Через браузер с этим сертификатом захожу все хорошо. Но вот когда к методам обращаюсь вылетают такие ошибки. Куда копать то?



0



340 / 315 / 43

Регистрация: 20.08.2014

Сообщений: 1,242

Записей в блоге: 1

19.08.2015, 10:31

3

SPR1TE89, платформа, может быть в свежем релизе поправили чего-нить с ssl



0



21 / 21 / 3

Регистрация: 22.04.2014

Сообщений: 112

19.08.2015, 10:38

 [ТС]

4

1c-k, Платформа 8.3.6.2041. Более менее свежая.
Кто нибудь может скинуть ссылку на рабочий пример https и сертификатами ? Только не центробанк и аэрофлоты всякие. Там уже смотрел не много не то.



0



340 / 315 / 43

Регистрация: 20.08.2014

Сообщений: 1,242

Записей в блоге: 1

19.08.2015, 10:41

5

Цитата
Сообщение от SPR1TE89
Посмотреть сообщение

{http://tempuri.org/}:WsAgentsService:CheckAuthority(): Ошибка HTTP: *HTTP Status (403).

У меня конечно странный вопрос, но почему HTTP вместо HTTPS?



0



21 / 21 / 3

Регистрация: 22.04.2014

Сообщений: 112

19.08.2015, 10:53

 [ТС]

6

1c-k, WSDL такой у него target name space прописан http://tempuri.org/ . Но обращается он к https://4totam.4totam.ru/4/WsAgents.svc. В отладчике в wsПрокси.ТочкаСоединения такой адрес : https://4totam.4totam.ru/4/WsAgents.svc. Может дело в кривом wsdl нике? Просто в нем прописаны такие тэги связанные с сертификатом. Их пришлось удалить, чтоб просто загрузить обертку веб сервиса. НО все остальные пакеты и вебсервис, загрузились нормально без ошибок. А изначально когда грузил WSDL вылетала ошибка, неверный формат….



0



340 / 315 / 43

Регистрация: 20.08.2014

Сообщений: 1,242

Записей в блоге: 1

19.08.2015, 11:43

7

Цитата
Сообщение от SPR1TE89
Посмотреть сообщение

Может дело в кривом wsdl нике?

может в нём, тут я не подскажу.



0



Помогите пожалуйста, не могу разобраться. Есть веб сервис сторонний, подключаюсь к нему через 1с на последней строчке выдает ошибку: {Форма.Форма.Форма}: Метод объекта не обнаружен (addComment) Proxy.addComment(«tasks»,45578,»Тест»,»ACCOUNTING»,»»);     В чем может быть дело. Из других систем этот метод работает

Прошу прощения. Это к 1С. Для сторонних может быть не так. Хотя кроме АдресВэбСервиса должно быть одинаково. Смотри в отладчике

В отладчике у меня есть только одна точка подключения, ее я и прописываю в Новый WSПрокси, если вызываю с окончанием soap, она ругается что порт не найден

Пробовала и «ПутьКМоемуСервису?wsdl» и «ПутьКМоемуСервису разницы нет

Проверь имя метода по wsdl

создай в пустой конфе WSСсылку, закинь в нее свой wsdl и посмотри, какие методы 1Ска распознает

Если подумать, то ПутьКМоемуСервису?wsdl забив в браузер ты увидишь описание web-сервиса….

web-сервисы чувствительны к регистру букв.

создай в пустой конфе WSСсылку, закинь в нее свой wsdl и посмотри, какие методы 1Ска распознает Она ругается, что формат неверен, в каком формате нужно указывать url

а в браузере открывается?

Путь у меня ПутьКМоемуСервису.xml?wsdl

открывается в xml формате

Есть веб сервис сторонний — как правило, в виде URI…

Пишет что неверный формат, может нужно каку-нибудь библитеку подгрузить?

:)))))))))))))))))))))))))))))))))))))))))))

адрес сервера секретный такой что ли?

значит не судьба с этим сервисом из 1Ски поработать. SOAP он такой SOAP, слишком вольно местами трактуемый

Адрес стороннего web-сервиса какой?

Да не нужен мне твой сервант, сама проверь, открывается ли в браузере wsdl-ка

Если там еще и https то вообще песня :)

открывая ПутьКМоемуСервису.xml?wsdl я получаю тоже что и когда пишу ПутьКМоемуСервису.xml

использовать платформу 8.3 в качестве ws2ws-proxy :)))

ТС, у меня была схожая ситуация, вот статья с моими изысканиями:

И что получаешь? *уже просто интересно*

В моем случае это не помогло(сторонний веб сервис был на Oracle Fusion Middlewere)

без разницы. Можно использовать любое MQ с поддержкой SOAP в качестве ws2ws-proxy

Ну не можешь и не можешь. Короче, ты описание сервиса через обычный браузер видишь?

Ищи метод addComment и смотри что он должен получить.

<part name=»type» type=»xsd:string»/><part name=»id» type=»xsd:int»/><part name=»comment» type=»xsd:string»/><part name=»user» type=»xsd:string»/><part name=»attachments» type=»soap-enc:Array»/>

MQ = Message Queue, например, RabbitMQ

это параметры метода addcomment

Метод в том пространстве имен?

>>Из других систем этот метод работает Из каких других, 1С или что-то иное?

на той же машине, что и сервер 1С? :)

ты с регистром имя метода точно не путаешься, дело в том, что метод addcomment из и addComment из с точки зрения SOAP — разные

на perl имя метода как звучит?

на perl они вызывают my $obj = $soap->addComment( $tw_type, $tw_id, $tw_comment, $tw_user, $tw_attachments );

у сервиса есть эхо-метод?

в скорее всего ошибка. в perl пространство имен и прочее статично или дергает из определения?

обычно метод echo реализуют у сервисов для диагностики связи.

Можешь создать класс на Net для подключения вэб сервиса а затем через вот этот прокиси подключить его как ком

+ в передача параметров неправильная согласно : и. т. п.

Да там в создании WSProxy косяк, ИМХО

1ска же нормально преобразует в xml примитивные типы, мне кажется, это излишество

с фабрикой я тоже пробовала, но проблема именно в том что 1с-ка не видит этот метод

Проблема в создании WSProxy

Причина? Ты не знаешь статично оно в perl или динамично?

проблема в том, что wsdl скорее всего не соответствует спецификации. из-за чего 1Ска не может преобразовать его в XTDO.

ИМХО, там она просто из другого пространства имен цепляет.

Для сложных и included type есть такая фича

URIПространстваИмен и прочее точно соответсвует определению?

сервис на закрытом порту?

а то играем в «Угадай мелодию»….

Для anyType нужно явное создание типа. Но в данном случае ругается на метод. Если же в она WS ссылку не может загрузить, то возможно, что 1С не понимает. Если бы была ссыдка можно было бы проверить

</portType> <binding name=»Binding» type=»tns:WSСервис.ИмяТочкиПодключения»><soap:binding style=»rpc» transport=»http://schemas.xmlsoap.org/soap/http»/><operation name=»addComment»></operation></binding> <service name=»Сервис»><port name=»WSСервис.ИмяТочкиПодключения» binding=»tns:Binding»><soap:address location=»URIПространстваИмен»/></port></service><message name=»addCommentIn»><part name=»type» type=»xsd:string»/><part name=»id» type=»xsd:int»/><part name=»comment» type=»xsd:string»/><part name=»user» type=»xsd:string»/><part name=»attachments» type=»soap-enc:Array»/></message> Что типа этого, в чем может быть ошибка

и закрывается все </definitions>

Я давно разочаровался в 1с-овском SOAP. Сплошь и рядом продвинутые веб-сервисы юзают SOAP шире, чем его поддерживает 1С. В итоге 1С их «не понимает».

Вы статью читали, ссылку на которую я давал в самом начале? Делайте как там.

Сохрани WSDL-описание в xml-файл, и загрузи WSссылку, если будет ошибка «неверный формат», значит надо редактировать xml. Я так раздел за разделом отлаживал. Еще проверь веб-сервис на валидность, можно через сайт

Хорошая идея. Я тоже как-то было так отлаживал. Избавлял от циклических ссылок в пространствах имен (1С этого не переваривает). Думал, что победа близка. wsdl успешно загрузился. А потом выяснилось, что сервис использует хитрый способ авторизации через установку каких-то заголовков (подробности уже плохо помню), а 1С эту фигню не поддерживает. Было очень обидно.

файл сохранила, пишет что неверный формат, можно ли какой-нибудь прогой его проверить. Сайт не подходит

Может кто знает, что может не нравиться в wsdl 1с, почему она может писать неверный формат?

и что такое  циклические ссылки в пространствах имен

SoapUI тебе в помощь. невалидный wsdl

wsdl валидный, я отправляла запрос с помощью soap-клиента, все нормально отрабатывает

дело именно в 1с, ей что-то не нравиться(

Нашла))))) Может кому поможет: ошибка была в том что в узле <portType name=»WSСервис.ИмяТочкиПодключения»><operation name=»Com»><documentation>яяя</documentation><input message=»tns:addCommentIn»/></operation>  не было выходного <output message=»tns:addCommentIn»/> и в самом начале было просто <?xml version=’1.0′?>, я поставила <?xml version=’1.0′ encoding=’UTF-8′?>

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

Автор Сообщение

[Post New]15/11/2017 22:18:21

    

Тема: Re:Интеграция с 1С

[Up]

Андрей Любимов

Зарегистрирован: 17/10/2017 16:58:56
Сообщений: 12

Оффлайн



Мне просто интересно. На кой в IncomingOperation элементы consignment и vetCertificate имеют списочный тип, ЕСЛИ ТУДА ВСЕ РАВНО МОЖНО ЗАПИХАТЬ ТОЛЬКО ПО ОДНОМУ ЭЛЕМЕНТУ?


[Post New]16/11/2017 03:44:12

    

Тема: Re:Интеграция с 1С

[Up]

anig99

Зарегистрирован: 21/10/2016 20:05:29
Сообщений: 143

Оффлайн


anig99 wrote:Если у кого возникнет такая проблема, то на платформе 8.2.19.121 возникает ошибка

Определения = Новый WSОпределения(«http://api.vetrf.ru/schema/platform/services/2.0-RC-last/ams-mercury-g2b.service_v2.0_pilot.wsdl»);

по причине:

При создании описания сервиса произошла ошибка.

по причине:

Неправильный путь к файлу ‘ApplicationManagementService_v1.1.wsdl’

На 8.3 такой ошибки нет. Попытаюсь решить. Если получится, то сообщу.

Решил. http://api.vetrf.ru/schema/platform/services/2.0-RC-last/ams-mercury-g2b.service_v2.0_pilot.wsdl вообще не нужен. Вместо него достаточно ApplicationManagementService_v1.1.wsdl программно или как wsdl ссылку в конфигурацию. Спасибо mevgenym за его код https://github.com/mevgenym/1c_vetis.api

Для получения Фабрики нужно использовать такой код:

Не понятно как влияет, но ЗапросWeb = Новый HTTPЗапрос(«platform/services/ApplicationManagementService»); использовал ЗапросWeb = Новый HTTPЗапрос(«platform/services/2.0/ApplicationManagementService»); Вроде работает и так, и так.

serviceID поменять с mercury-g2b.service на mercury-g2b.service:2.0


[Post New]16/11/2017 11:22:12

    

Тема: Re:Интеграция с 1С

[Up]

nifor

[Avatar]

Зарегистрирован: 21/04/2017 04:01:50
Сообщений: 150

Оффлайн



Коллеги добрый день !!! Подскажите у кого то посредством 1С получилось заполнить атрибуты id и for (api 2.0) ? При заполнении строковым типом ругается на неверный формат при отправке запроса !!!

Это сообщение было редактировано 1 раз. Последнее обновление произошло в 16/11/2017 11:22:29


[Post New]16/11/2017 19:44:13

    

Тема: Re:Интеграция с 1С

[Up]

vvche

Зарегистрирован: 13/06/2016 19:39:45
Сообщений: 45

Оффлайн


nifor wrote:Коллеги добрый день !!! Подскажите у кого то посредством 1С получилось заполнить атрибуты id и for (api 2.0) ? При заполнении строковым типом ругается на неверный формат при отправке запроса !!!

Подчеркивание впереди прицепите. Там базовый тип «NCName», а он должен содержать первым символом или букву или подчеркивание.


[Post New]16/11/2017 23:55:32

    

Тема: Re:Интеграция с 1С

[Up]

vvche

Зарегистрирован: 13/06/2016 19:39:45
Сообщений: 45

Оффлайн



Вот не пойму, в чем косяк.

Формирую ProcessIncomingConsignmentOperation в версии 2,0.

При сохранении XML с помощью ФабрикиXDTO «перепрыгивают» реквизиты.

(ФабрикаXDTO создается по рекомендациям, выложенным здесь на форуме, та же схема с 1,4 отрабатывала без проблем)

И вот эти issueDate и issueNumber, относящиеся к vetCertificate, почему-то уезжают вниз, хотя должны идти следом за issueSeries.

В итоге пакет шлюзом не принимается, выдает отлуп «Format validation failed due to XML Schema rules: Элемент ‘issueDate’ не предусмотрен.» — я так понимаю, что порядок элементов ему важен.

В SOAPui элементы на место поставишь — запрос проходит.

Грешил на релиз платформы, но на 8.3.8 , 8.3.9 , 8.3.10 результат одинаков.

1С, что-ли, не берет во внимание тег <xs:sequence> в XSD-схеме?..


[Post New]17/11/2017 04:55:36

    

Тема: Re:Интеграция с 1С

[Up]

nifor

[Avatar]

Зарегистрирован: 21/04/2017 04:01:50
Сообщений: 150

Оффлайн


vvche wrote:

nifor wrote:Коллеги добрый день !!! Подскажите у кого то посредством 1С получилось заполнить атрибуты id и for (api 2.0) ? При заполнении строковым типом ругается на неверный формат при отправке запроса !!!

Подчеркивание впереди прицепите. Там базовый тип «NCName», а он должен содержать первым символом или букву или подчеркивание.

Спасибо огромное !!!


[Post New]17/11/2017 08:51:48

    

Тема: Re:Интеграция с 1С

[Up]

vvche

Зарегистрирован: 13/06/2016 19:39:45
Сообщений: 45

Оффлайн


vvche wrote:Вот не пойму, в чем косяк.

Формирую ProcessIncomingConsignmentOperation в версии 2,0.

При сохранении XML с помощью ФабрикиXDTO «перепрыгивают» реквизиты.

Сам спросил, сам ответил

При импорте схемы document_v2.0.xsd 1С выставила в типе объекта VetDocument свойство «Упорядоченный» в «Ложь», отсюда и косяк.

Причем у базового типа Document все нормально.


[Post New]17/11/2017 13:50:10

    

Тема: Re:Интеграция с 1С

[Up]

ashugaenko

Зарегистрирован: 28/02/2017 11:51:59
Сообщений: 8

Оффлайн



.

Это сообщение было редактировано 1 раз. Последнее обновление произошло в 17/11/2017 16:38:37


[Post New]20/11/2017 14:36:33

    

Тема: Re:Интеграция с 1С

[Up]

mevgenym

Зарегистрирован: 19/05/2017 14:03:42
Сообщений: 312

Оффлайн



Появилась обратная «совместимость» с 1.4 по упаковкам (смотрел через getStockEntryChangesList):

— непонятно по каким соображениям назначился уровень и он разный

— почти все без количества и количество так и не соответствует 1.4

https://github.com/mevgenym/1c_vetis.api_v1.1

https://github.com/mevgenym/1c_vetis.api


[Post New]21/11/2017 17:00:15

    

Тема: Re:Интеграция с 1С

[Up]

FCool

Зарегистрирован: 21/11/2017 16:50:37
Сообщений: 3

Оффлайн



Добрый день.

Вопрос по API 2

Пытаюсь создать предприятие методом ModifyEnterpriseOperation

Определение = Новый WSОпределения(«http://api.vetrf.ru/schema/platform/services/2.0-RC-last/ams-mercury-g2b.service_v2.0_pilot.wsdl»);

ПодключениеОбмена = Новый WSПрокси(Определение,»http://api.vetrf.ru/schema/cdm/application/service»,»ApplicationManagementServiceBindingQSService»,»ApplicationManagementServiceBindingQSPort»,,, Новый ЗащищенноеСоединениеOpenSSL( неопределено, неопределено ));

ПодключениеОбмена.Пользователь = «*************»;

ПодключениеОбмена.Пароль = «************»;

SubmitApplicationRequest = Фабрика.Создать(Фабрика.Тип(«http://api.vetrf.ru/schema/cdm/application/ws-definitions», «submitApplicationRequest»));

Application = Фабрика.Создать(Фабрика.Тип(«http://api.vetrf.ru/schema/cdm/application», «Application»));

ApplicationDataWrapper = Фабрика.Создать(Фабрика.Тип(«http://api.vetrf.ru/schema/cdm/application», «ApplicationDataWrapper»));

modifyEnterpriseRequest = Фабрика.Создать(Фабрика.Тип(«http://api.vetrf.ru/schema/cdm/mercury/g2b/applications/v2», «ModifyEnterpriseRequest»));;

ApplicationDataWrapper.Добавить(ФормаXML.Элемент,»http://api.vetrf.ru/schema/cdm/mercury/g2b/applications/v2″, «ModifyEnterpriseRequest», modifyEnterpriseRequest);

Application.data = ApplicationDataWrapper;

Application.serviceId = «mercury-g2b.service:2.0»;

Application.issuerId = «******************»;

Application.issueDate = ТекущаяДата();

SubmitApplicationRequest.apiKey = «***********************»;

SubmitApplicationRequest.application = Application;

Результат = ПодключениеОбмена.submitApplicationRequest(SubmitApplicationRequest.apiKey, SubmitApplicationRequest.application);

Вылезает такая ошибка:

Несоответствие типов XDTO:

Тип ‘{http://api.vetrf.ru/schema/cdm/mercury/g2b/applications/v2}ModifyEnterpriseRequest’ не найден

Тип принадлежит пакету, отсутствующему в фабрике типов XDTO

Может кто подскажет, что я делаю не так ?


[Post New]21/11/2017 17:08:43

    

Тема: Интеграция с 1С

[Up]

RomanWBD

[Avatar]

Зарегистрирован: 12/05/2016 11:36:01
Сообщений: 23

Оффлайн



Все делаете так, а вот шлюз API 2.0 с тестовым Меркурием явно работает не так. Сейчас по этому сервису в ответе всегда возвращается ошибка по любому сервису из ams-mercury-g2b.service_v2.0_pilot.wsdl.


[Post New]21/11/2017 17:10:32

    

Тема: Интеграция с 1С

[Up]

FCool

Зарегистрирован: 21/11/2017 16:50:37
Сообщений: 3

Оффлайн


RomanWBD wrote:Все делаете так, а вот шлюз API 2.0 с тестовым Меркурием явно работает не так. Сейчас по этому сервису в ответе всегда возвращается ошибка по любому сервису из ams-mercury-g2b.service_v2.0_pilot.wsdl.

Использовать API v1 ?


[Post New]21/11/2017 17:11:46

    

Тема: Re:Интеграция с 1С

[Up]

Андрей Любимов

Зарегистрирован: 17/10/2017 16:58:56
Сообщений: 12

Оффлайн


FCool wrote:

Добрый день.

Результат = ПодключениеОбмена.submitApplicationRequest(SubmitApplicationRequest.apiKey, SubmitApplicationRequest.application);

Вылезает такая ошибка:

Несоответствие типов XDTO:

Тип ‘{http://api.vetrf.ru/schema/cdm/mercury/g2b/applications/v2}ModifyEnterpriseRequest’ не найден

Тип принадлежит пакету, отсутствующему в фабрике типов XDTO

Здравствуй! Операцию не получится сделать через прокси. У них в WS определении нет типов, связанных с операциями. Запрос нужно делать через HTTP.

Тут примерно описано: http://vetrf.ru/vetrf-forum/posts/listByUser/9167.page


[Post New]21/11/2017 17:11:55

    

Тема: Интеграция с 1С

[Up]

RomanWBD

[Avatar]

Зарегистрирован: 12/05/2016 11:36:01
Сообщений: 23

Оффлайн



1.4 вроде работает, проверял как раз после того как 2.0 перестал отправлять нормальные результаты.


[Post New]21/11/2017 17:26:35

    

Тема: Интеграция с 1С

[Up]

GusVal

Зарегистрирован: 10/11/2017 12:14:53
Сообщений: 176

Оффлайн



А API 2.0 насколько тестовое?

RomanWBD wrote:Все делаете так, а вот шлюз API 2.0 с тестовым Меркурием явно работает не так. Сейчас по этому сервису в ответе всегда возвращается ошибка по любому сервису из ams-mercury-g2b.service_v2.0_pilot.wsdl.

Вообще-то им бы следовало об этом большими буквами да на главной странице форума…


 

Понравилась статья? Поделить с друзьями:
  • Ошибка разбора json ответа error while parsing text
  • Ошибка распаковки не совпадает контрольная сумма код 12
  • Ошибка разблокировки загрузчика xiaomi
  • Ошибка распаковки данных возможно поврежден дистрибутив
  • Ошибка разблокировки nox app player