Нет такой больше страницы
Он не умер, просто формат поменял и стал платным )))
А когда он стал платным ?
Боюсь даже представить в скольких договорах сейчас неправильное склонение.
Сфигали он умер? Работает. Только WSDL у него оторвали
ну наверно в трех договорах.
Типовой механизм 1С ники получается не поменяли ? Как можно исправить данную проблему? Кто нибудь использует веб-сервис ?
Я думаю, что исправят в обновлениях. А так просто через HTTPСоединение можно дёргать.
Привет! Столкнулся с проблемой.
Задача: организовать обмен через веб сервис exchange или exchange_2_0_1_1_6, как получится, между базой ерп и базой БП КОРП.
Завел новый план обмена, настроил регистрацию итд.
В общий модуль ОбменДаннымиПереопределяемый в процедуру ПолучитьПланыОбмена добавил строку ПланыОбменаПодсистемы. Добавить(Метаданные. ПланыОбмена.мм_ОбменБУХ); чтоб мой план обмена виднелся при настройке обмена. Это сработало! Его видно. Но в обработке по настройке соединения никак не получается настроить соединение.
Что пишу: Выбираю «настройки вручную», «прямое подключение через интернет»
Адрес программы:
http://scorp1100/uatTest/WS/Exchange.1cws?wsdl
{ОбщийМодуль. ОбщегоНазначения. Модуль(5469)}: Ошибка при вызове конструктора (WSОпределения)
Определения = Новый WSОпределения(ОписаниеФайла. Путь, ИмяПользователя, Пароль, ИнтернетПрокси, Таймаут);
по причине:
WSDL должен содержать элемент definitions
по причине:
Неверный формат.
Причем, если открыть
http://scorp1100/uatTest/WS/exchange.1cws?wsdl
в браузере дефенишинс там есть, подскажите чего не хватает, что я делаю не так.
Помогите, пожалуйста, разобраться в подключении к веб-сервису.
Сторонней организацией отправлена ссылка для подключения к веб-сервису (не 1с) и wsdl-описание отдельным файлом BC_SYS_CLNT_si_DataLoad_outb_syncService.wsdl
https://piservice.severstal.com:7000/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_1C_NEFZ&receiverParty=&receive
rService=&interface=si_DataLoad_outb_sync&interfaceNamespace
=http://severstal.com/pi/O2C/1C
Из браузера ссылка открывается, но при добавлении в WSСсылки в конфигураторе выдает ошибку:
WSDL должен содержать элемент definitions
по причине:
Неверный формат.
С этой же ссылкой пытаюсь подключиться в коде:
Определение = Новый WSОпределения("https://piservice.severstal.com:7000/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_1C_NEFZ&receiverParty=&receive
rService=&interface=si_DataLoad_outb_sync&interfaceNamespace
=http://severstal.com/pi/O2C/1C?wsdl", Пользователь, Пароль,,, Новый ЗащищенноеСоединениеOpenSSL());
https://piservice.severstal.com:7000/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_1C_NEFZ&receiverParty=&receive
rService=&interface=si_DataLoad_outb_sync&interfaceNamespace
=http://severstal.com/pi/O2C/1C?wsdl
Код ответа сервера: 403
https://piservice.severstal.com:7000/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_1C_NEFZ&receiverParty=&receive
rService=&interface=si_DataLoad_outb_sync&interfaceNamespace
=http://severstal.com/pi/O2C/1C/BC_SYS_CLNT_si_DataLoad_outb_syncService?wsdl
Код ответа сервера: 403
https://piservice.severstal.com:7000/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_1C_NEFZ&receiverParty=&receive
rService=&interface=si_DataLoad_outb_sync&interfaceNamespace
=http://severstal.com/pi/O2C/1C/BC_SYS_CLNT_si_DataLoad_outb_syncService.1cws?wsdl
Код ответа сервера: 403
Или всетаки нет доступа?
ВебСервис. Есть адрес, по которому он должен обратиться. Где место этого адреса?
↓ (aka AMIGO 15.06.2017 11:14)
☑
0
aka AMIGO
✎
Конструкция адреса примерно такая: http://АдресВебСервиса/ИмяБазыДанных/ws/
НазваниеВебСервиса
Это — не WS-Ссылка, ибо при попытке засунуть этот адрес в строку ввода новой WS-ссылки, сообщает: _WSDL должен содержать элемент definitions_
Пока мои знания в вебсервисах ограничиваются начальными «как», но вот «почему» — пока недоступно
ЗЫ. может быть есть какое-то петушиное слово, поняв которое, я пойму и концепт вебсервиса?
Вопрос: как таки использовать имеющийся адрес?
1
FIXXXL
✎
если сунуть ссылку в браузер, что пишет?
2
aka AMIGO
✎
В Хроме — выводит страницу в формате xml
3
FIXXXL
✎
уже хорошо 🙂
что там в этом xml? знакомые названия команд своего вебсервиса видишь?
4
aka AMIGO
✎
ну да, встретил несколько слов знакомых, но команды-ли это — увы, не знаю.
5
aka AMIGO
✎
+4 молчит для меня веб-сервис. Вроде-б что-то знакомо, но упирается в моё «почему так?» -и это без ответов
ЗЫ. кто-б ткнул меня носом в нужное. 🙂
6
FIXXXL
✎
это веб-сервис на 1С? или сторонний и ты к нему из 1С подключаешься?
8
aka AMIGO
✎
я должен подключиться к нему из своей 1с, а вот эта часть xml-страницы в хроме — мне до кома в горле знакома:
<types>
<xs:schema xmlns:xs=» http://www.w32.org/2001/XMLSchema"
; xmlns:xs1=» http://www.corp.imjaBD.ru/onec"
; targetNamespace=» http://www.corp.imjaBD.ru/onec"
; attributeFormDefault=»unqualified» elementFormDefault=»qualified»>
<xs:complexType name=»Elements»>
<xs:sequence>
<xs:element name=»Name» type=»xs:string»/>
<xs:element name=»Description» type=»xs:string»/>
<xs:element name=»Code» type=»xs:string»/>
<xs:element name=»GUID» type=»xs:string»/>
Именно это я и должен получить: БД-источник, к которой я обращаюсь, должна вернуть мне файл xml
9
aka AMIGO
✎
+8 и — да! это сторонний веб-сервис, на 1с
10
FIXXXL
✎
ты наверно гуглил, но все же
v8: Помощь с Web сервисом
не любой вебсервис 1Ска способна проживать
с такими тонкостями не сталкивался, сорри 🙁
11
FIXXXL
✎
12
aka AMIGO
✎
Спасибо, любая помощь мне в строку.
2.
ixijixi
Сейчас в теме
Обратиться к поставщику?
3.
dadel
Сейчас в теме
( 2
)Ну скажем так, уже после Вашего ответа таки прислали схему. Но как её в WS-ссылку загрузить?
Видел писали из файла можно. Но не дает.
WSDL должен содержать элемент definitions
Такую ошибку пишет
4.
dadel
Сейчас в теме
5.
dadel
Сейчас в теме
Так, вот надо было спустя пару дней боёв написать вопрос и таки добил поставщика вебсервиса дать в файле схему WSDL.
Несколько разных присылали и то, что я сам через СоапУИ себе выгружал. Всё не то сначала было. Потом таки прислали файл wsdl и папку с описанием типов.
Получилось в фале заменить дату на строку, после обеда вернусь — буду тестить.
Пока вопрос снят!)
6.
uno-c
Сейчас в теме
7.
uno-c
Сейчас в теме
9.
dadel
Сейчас в теме
( 7
)Там далеко не всё открывается по ссылке.
Сама схема очень большая, 21 процедура с описанием структуры различных документов.
По ссылке на WSDL открывается только описание самих методов без описаний типов. Там дальше копать надо ещё.
В приложенном скрине видно, что помимо файла с WSDL есть ещё папка XSD и на скрине на первом плане содержание этой папки, там два файлика. Вот для создания WS-ссылки нужно всё это получить в таком вот виде. Только получив архивчик с этой схемой уже понял как достать по ссылкам недостающие части с описанием Свойств и Типов. В Вашем случае схема простая, у меня обмен с ЭТП и сложная схема.
По основной ссылке в первых строках вижу ссылку на продолжение схемы: schemaLocation=»xsd/Procurement.xsd»/>
И там же файлик ещё с типами лежит. Вот в первом вижу путь к второму: <xsd:import namespace=»http://etpgpb.ru/223fz/types/1″
schemaLocation=»DataTypes.xsd» />
В итоге в этом вот я изменил нужные мне типы дат на строку и всё у меня взлетело!
Может кому пригодится данное описание сберечь время.
8.
uno-c
Сейчас в теме
Мобильный клиент ведет себя еще более странно и отловить реальную ошибку очень тяжело, особенно когда переделывает чужие формы под мобильный клиент.
1С:Эксперт по технологическим вопросам
Задавайте мне вопросы, и я помогу разобраться!
Причина была в отсутствии атрибута targetNamespace у тега , соответственно 1С не знала, в какой пакет помещать схему, но ошибок не выдавала. 1C Веб Сервис Ошибка При Вызове Метода Контекста Обращайтесь в форму связи
Обмен данными обычно организовывается с помощью выгрузки файла из одной программы и загрузки в другую. Некоторые программисты предоставляют сторонним программам доступ в SQL базу 1С (что вроде как сильно не рекомендуется).
Термин «обмен данными» не всегда подходит к задаче, иногда более корректно сказать – предоставление данных. Например, внешней программе требуется идентифицировать – существует ли такой клиент в 1С и его баланс.
Предоставление доступа к данным 1С – некорректно по причинам безопасности данных. Необходим скорее механизм проверки по имени и паролю с дальнейшим возвратом баланса.
Этот подход называют – сервисным, когда программа предоставляет не данные, а сервис, который позволяет идентифицировать клиента и узнать его баланс.
SOA – «сервис ориентированная архитектура» – означает, что программы для обмена данными друг с другом используют «сервисы».
Веб сервис – это набор функций (процедур), которые могут быть вызваны извне программы и базы данных.
Для того, чтобы другая программа знала, что такой «сервис» есть у этой программы, первая на веб сайте выкладывает сведения о своих сервисах. Формат такого описания – файл WSDL.
Функции извне вызываются (запускаются) запросом по протоколу SOAP.
Для передачи параметров и результатов используется XML. Для работы с веб-сервисами Вы должны иметь базовое понимание про XML и XDTO.
Web сервис 1С это способ, с помощью которого можно разрешить запускать некоторые функции 1С снаружи базы 1С, в том числе из других программ или других баз 1С.
Это лучше, чем предоставление прямого доступа к данным 1С, так как при вызове метода (функции) web сервиса 1С, доступ к данным внешняя программа не имеет. Функция на языке 1С самостоятельно определяет право внешней программы получить конкретную толику данных по переданным параметрам (например, имени и паролю).
Web сервис 1С это объект 1С, который находится в конфигурации, в ветке Общие/Web-сервисы.
Так как функционирует web сервис 1С с помощью XML пространство имен и пакет XDTO. X DTO пакеты 1С мы обсуждали ранее.
Во многих случаях, можно не создавать свой пакет XDTO, а использовать по умолчанию – выбрав из списка пакет www.sample-package.org
После этого нужно добавить список функций (методов веб сервиса 1С) – которые будут предоставляться наружу. Называть их лучше англоязычно. Функция может иметь параметры.
Для каждой добавленной функции веб сервиса 1С, в свойствах нужно создать обработчик, так же, как мы это делали в командах 1С, подписках на событиях 1С и так далее.
Именно эта функция 1С будет выполняться при вызове метода веб сервиса 1С. Не забывайте, что выполняться она будет на сервере 1С. Файловый режим работы 1С с веб-сервисами не рекомендуется.
Функция обычно возвращает какие-либо данные. Обычно указывают тип string и возвращают строку XML.
Строку XML можно сформировать с помощью объектов языка 1С для работы с XML – ДокументDOM и ФабрикаXDTO, а можно просто составить текстовую строку, в которой хранится текст XML.
Ошибка модуля в 1С: причины и способы исправления
- Иметь веб сайт
- В свойствах web сервиса 1С указать имя файла с расширением 1cws, который является ссылкой на WSDL описание
- Выложить этот файл на веб сайт в конфигураторе с помощью пункта меню Администрирование/Публикация на веб-сервере.
Для того, чтобы выполнить публикацию Web -сервисов, следует выполнить команду меню Администрирование Публикация Web-сервисов.
1С:Эксперт по технологическим вопросам
Задавайте мне вопросы, и я помогу разобраться!
Выделить отдельный сертификат ЭЦП, который не подписывает ЭД, для проведения сеансов связи с Такском в клиент-серверном варианте. При создании описания сервиса произошла ошибка: новый wsопределения 1С Обращайтесь в форму связи
1C Веб Сервис Ошибка При Вызове Метода Контекста
Рассмотрим основные ошибки, которые могут возникать при проведении различных документов в программе 1С-Рарус: Ломбард 4.
Промокоды на Займер на скидки
Займы для физических лиц под низкий процент
- 💲Сумма: от 2 000 до 30 000 рублей
- 🕑Срок: от 7 до 30 дней
- 👍Первый заём для новых клиентов — 0%, повторный — скидка 500 руб
1. Ошибка при вызове метода контекста (Записать): Запись не верна! Не заполнен счет дебета
Данное сообщение может возникать при проведении кассовых документов на закладке «Документы»:
Сообщение возникает в том случае, если в регистре сведений «Счета учета расчетов с контрагентами» не заполнен счет расчетов с покупателем (пункт меню «Справочники – Контрагенты – Счета расчетов с контрагентами»):
Счета учета расчетов можно указать для определенной организации, контрагента или группы контрагентов, для отдельного договора или вида расчетов. Для этого необходимо создать соответствующее число записей в регистре сведений:
Можно разделить счета учета расчетов с контрагентами по типу контрагентов, например, для залогодателей и прочих контрагентов. Для этого необходимо заполнить поле «Контрагент» (при этом можно указать как конкретное юридическое или физическое лицо, так и группу контрагентов):
2. Поле «Счета учета расчетов за хранение»/«Счет учета расчетов за кредит»/«Счет учета расчетов за просрочку» не заполнено
Сообщения могут возникать при проведении документа «Начисление процентов»:
При возникновении подобных сообщений можно указать необходимые счета непосредственно в каждом документе «Начисление процентов» на закладке «Счета учета расчетов».
Для того, чтобы счета учета расчетов за каждый вид процентов заполнялись автоматически, в Учетной политике по Ломбарду (меню «Главное – Настройки по Ломбарду – Учетная политика») на закладке «Регламентированный учет – Счета учета расчетов») необходимо заполнить счета учета расчетов:
Сообщение может возникать при проведении документа «Начисление процентов»:
Данное сообщение говорит о том, что в документе «Начисление процентов» на закладке «Счета учета расчетов» не заполнены значения Счетов доходов от кредита, хранения и просрочки. Их можно заполнить непосредственно при проведении документа.
Для того, чтобы указанные счета заполнялись автоматически, необходимо заполнить соответствующие данные в специальном разделе «Счета расчетов по залоговому билету» (меню «Ломбард – См.также – Счета расчетов по залоговому билету»):
Счета учета доходов при необходимости можно разделить по организациям и контрагентам/группам контрагентов.
Сообщение может возникать при проведении документа «Операция по залогу»:
Данное сообщение возникает тогда, когда в настройках Схемы кредитования выбран вариант момента получения процентов «Взимать сразу», а на закладке «Счета учета» не заполнены данные о счетах учета доходов и расчетов по каждому виду начислений:
Для автоматического заполнения данных счетов необходимо настроить счета учета расчетов в Учетной политике по ломбарду и счета расчетов по залоговому билету, описанные в п. 2 и 3.
Web сервисы 1С
Для того, чтобы выполнить публикацию Web -сервисов, следует выполнить команду меню Администрирование Публикация Web-сервисов.
1С:Эксперт по технологическим вопросам
Задавайте мне вопросы, и я помогу разобраться!
Можно разделить счета учета расчетов с контрагентами по типу контрагентов, например, для залогодателей и прочих контрагентов. 1С ошибка при вызове метода контекста Обращайтесь в форму связи
Пример использования динамической WS-ссылки
// Создать WS-прокси на основании WS-определения
Определение = Новый WSОпределения (“http://www. MyCompany.ru/shipment/ws/Shipment.1cws?wsdl”);
Прокси = Новый WSПрокси ( Определение , “http://www. MyCompany.ru/shipment”, “ДанныеРасходнойНакладной”, “ДанныеРасходнойНакладнойSoap”);
В то время как создание WS-прокси на основе статической ссылки выглядит следующим образом:
Помимо общих свойств объектов конфигурации операция Web-сервиса содержит следующие свойства:
1С-Рарус: Ломбард – основные ошибки при проведении документов в программе и как с ними работать
Пример использования динамической WS-ссылки
// Создать WS-прокси на основании WS-определения
Определение = Новый WSОпределения (“http://www. MyCompany.ru/shipment/ws/Shipment.1cws?wsdl”);
Прокси = Новый WSПрокси ( Определение , “http://www. MyCompany.ru/shipment”, “ДанныеРасходнойНакладной”, “ДанныеРасходнойНакладнойSoap”);
В то время как создание WS-прокси на основе статической ссылки выглядит следующим образом:
Помимо общих свойств объектов конфигурации операция Web-сервиса содержит следующие свойства:
💥Принимайте участие в опросе и получайте бесплатную консультацию
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
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
Прошу прощения. Это к 1С. Для сторонних может быть не так. Хотя кроме АдресВэбСервиса должно быть одинаково. Смотри в отладчике
В отладчике у меня есть только одна точка подключения, ее я и прописываю в Новый WSПрокси, если вызываю с окончанием soap, она ругается что порт не найден
Пробовала и «ПутьКМоемуСервису?wsdl» и «ПутьКМоемуСервису разницы нет
Проверь имя метода по wsdl
создай в пустой конфе WSСсылку, закинь в нее свой wsdl и посмотри, какие методы 1Ска распознает
web-сервисы чувствительны к регистру букв.
создай в пустой конфе WSСсылку, закинь в нее свой wsdl и посмотри, какие методы 1Ска распознает Она ругается, что формат неверен, в каком формате нужно указывать url
а в браузере открывается?
Путь у меня ПутьКМоемуСервису.xml?wsdl
открывается в xml формате
Пишет что неверный формат, может нужно каку-нибудь библитеку подгрузить?
адрес сервера секретный такой что ли?
значит не судьба с этим сервисом из 1Ски поработать. S OAP он такой SOAP, слишком вольно местами трактуемый
Адрес стороннего web-сервиса какой?
Да не нужен мне твой сервант, сама проверь, открывается ли в браузере wsdl-ка
Если там еще и https то вообще песня
открывая ПутьКМоемуСервису.xml?wsdl я получаю тоже что и когда пишу ПутьКМоемуСервису.xml
использовать платформу 8.3 в качестве ws2ws-proxy :)))
ТС, у меня была схожая ситуация, вот статья с моими изысканиями:
И что получаешь? *уже просто интересно*
В моем случае это не помогло(сторонний веб сервис был на Oracle Fusion Middlewere)
без разницы. Можно использовать любое MQ с поддержкой SOAP в качестве ws2ws-proxy
Ну не можешь и не можешь. Короче, ты описание сервиса через обычный браузер видишь?
Ищи метод addComment и смотри что он должен получить.
MQ = Message Queue, например, RabbitMQ
это параметры метода addcomment
Метод в том пространстве имен?
>>Из других систем этот метод работает Из каких других, 1С или что-то иное?
на той же машине, что и сервер 1С?
ты с регистром имя метода точно не путаешься, дело в том, что метод addcomment из и addComment из с точки зрения SOAP — разные
на perl имя метода как звучит?
у сервиса есть эхо-метод?
в скорее всего ошибка. в perl пространство имен и прочее статично или дергает из определения?
Можешь создать класс на Net для подключения вэб сервиса а затем через вот этот прокиси подключить его как ком
+ в передача параметров неправильная согласно : и. т. п.
Да там в создании WSProxy косяк, ИМХО
1ска же нормально преобразует в xml примитивные типы, мне кажется, это излишество
с фабрикой я тоже пробовала, но проблема именно в том что 1с-ка не видит этот метод
Проблема в создании WSProxy
Причина? Ты не знаешь статично оно в perl или динамично?
проблема в том, что wsdl скорее всего не соответствует спецификации. из-за чего 1Ска не может преобразовать его в XTDO.
ИМХО, там она просто из другого пространства имен цепляет.
Для сложных и included type есть такая фича
URIПространстваИмен и прочее точно соответсвует определению?
сервис на закрытом порту?
Для anyType нужно явное создание типа. Но в данном случае ругается на метод. Если же в она WS ссылку не может загрузить, то возможно, что 1С не понимает. Если бы была ссыдка можно было бы проверить
и закрывается все
Я давно разочаровался в 1с-овском SOAP. Сплошь и рядом продвинутые веб-сервисы юзают SOAP шире, чем его поддерживает 1С. В итоге 1С их «не понимает».
Вы статью читали, ссылку на которую я давал в самом начале? Делайте как там.
Сохрани WSDL-описание в xml-файл, и загрузи WSссылку, если будет ошибка «неверный формат», значит надо редактировать xml. Я так раздел за разделом отлаживал. Еще проверь веб-сервис на валидность, можно через сайт
Хорошая идея. Я тоже как-то было так отлаживал. Избавлял от циклических ссылок в пространствах имен (1С этого не переваривает). Думал, что победа близка. wsdl успешно загрузился. А потом выяснилось, что сервис использует хитрый способ авторизации через установку каких-то заголовков (подробности уже плохо помню), а 1С эту фигню не поддерживает. Было очень обидно.
файл сохранила, пишет что неверный формат, можно ли какой-нибудь прогой его проверить. Сайт не подходит
Может кто знает, что может не нравиться в wsdl 1с, почему она может писать неверный формат?
и что такое циклические ссылки в пространствах имен
SoapUI тебе в помощь. невалидный wsdl
wsdl валидный, я отправляла запрос с помощью soap-клиента, все нормально отрабатывает
дело именно в 1с, ей что-то не нравиться(
Нашла))))) Может кому поможет: ошибка была в том что в узле яяя не было выходного и в самом начале было просто , я поставила
Тэги: 1С 8