Имя: Пароль:
1C
 
Изменение WSDL после обновления 1С.
0 San335
 
10.02.20
12:17
Доброго времени суток!
Может кто-нибудь сталкивался с подобной проблемой и сможет подсказать/посоветовать?
При редактировании кода веб-сервиса, после обновления изменяется текст ВСДЛьки, причем другого веб-сервиса. Хотя даже сама перепубликация сервиса не происходила.
1 Галахад
 
гуру
10.02.20
12:21
Гм. Вроде так и должно быть. А в чем проблема?
2 San335
 
10.02.20
12:33
(1) Меняются пространства имен переменных в самой ВСДЛ. Например сначала было type="xs3:name_parametr"/>, а стало type="xs1:name_parametr"/>. Некоторые сервисы потом падать начинают.
3 trad
 
10.02.20
12:38
(2) вообще, в приведенном примере не показано, что меняются пространства имен, показано что меняются псевдонимы пространств имен
4 San335
 
10.02.20
12:45
(3) Не спорю.Мог не корректно выразиться.  Просто суть в том, что веб-сервис не переопубликовывался, а просто код в модуле поменялся. В результате у редактируемого сервиса текст ВСДЛ остался прежним, а у другого поменялся.
5 Fragster
 
гуру
10.02.20
12:53
(4) если состав/порядок импортируемых пакетов поменять, то такое будет. может при смене платформы тоже. изменение текста модулей не влияет. ищите "забывчивого".
6 Fragster
 
гуру
10.02.20
12:53
хорошо помогает git или хранилище
7 Fragster
 
гуру
10.02.20
12:54
(2) так это те сервисы прям кривые
8 trad
 
10.02.20
13:08
(4) не совсем понял "кто на ком стоял", но могу только добавить, что при написании кода не нужно закладываться на псевдонимы
9 San335
 
10.02.20
13:47
(8) Сторонний сервис, который стучится в 1С так устроен. В самом веб-сервисе 1С используется несколько пакетов ХДТО. Сравнив тексты ВСДЛ до и после обновления конфы заметил,что описание схем этих пакетов ХДТО меняется просто местами. Но почему так происходит, не понятно. Пробовал на другой конфигурации аналогичный сервис собирать и изменять, текст ВСДЛ оставался не изменным.
10 Fragster
 
гуру
10.02.20
13:54
для нормально написанного сервиса псевдонимы пространств имен не должны никак влиять на его работу. Соответствие псевдонимов и пространств имен описано в атрибутах корневого узла. Также на каждом уровне может быть описание псевдонимов для вложенных элементов.
11 trad
 
10.02.20
14:01
(9) нужно переделать внешний сервис.
Пытаться что-то предпринимать, для восстановления порядка NS - плохой путь
12 San335
 
10.02.20
19:48
(11) А восстановить порядок реально?Внешний сервис(не 1Совский) переделать можно сказать не реально. На ИТС поддержку есть смысл с такой проблемой обращаться?
13 catena
 
11.02.20
07:07
(12)Сомнительно, так как это не нарушает валидность. Все равно, что тебе запретить менять имена локальных переменных в коде.
14 trad
 
11.02.20
09:40
(12) Можно сделать статический wsdl (просто сохранить тот, который выдается веб-сервис в другое место как файл), в нем сделать нужные правки и натравить внешний сервис на этот статический wsdl.
Но это придется проделывать каждый раз, когда будут вноситься изменения в 1совский веб-сервис.
15 San335
 
11.02.20
10:09
(14) Со стороны внешнего сервиса примерно так и получают WSDL. В итоге при каждой перетасовки псевдонимов пространств имен, приходится вносить корректировки на стороне внешнего сервиса.
16 pechkin
 
11.02.20
10:14
может на той стороне взять готову библиотеку работы с SOAP ?
Основная теорема систематики: Новые системы плодят новые проблемы.