Имя: Пароль:
1C
1С v8
Как передать таблицу значений в XDTO в параметр веб-сервиса!
0 Skazy
 
03.07.15
13:37
Есть XDTO схема - TestVS (http://www.site.ru/test) В нем два типа объектов - ArraySpisok и StrokaSpiska. ArraySpisok содержит одно свойство - Spisok, имеющее тип - StrokaSpiska, максимальное кол-во = -1. StrokaSpiska имеет свойства - Articul, Razmer, Kol. Есть веб-сервис TestWork, в нем операция - TestArray, возвращает тип булево, имеет параметр - Test c типом значения ArraySpisok.
Задача - передать из 1С в это ВС список товара. Это тест вызова из 1С своего же веб-сервиса.
В этой же конфе создаю обработку с кодом:
Подключение = определяю WSОпределения, создаю WSПрокси. Здесь все нормально. Вижу точки подключения, операции, параметры операций...
XDTOТипГлавный = ФабрикаXDTO.Тип("http://www.site.ru/test","ArraySpisok ");
XDTOТипСтрока = ФабрикаXDTO.Тип("http://www.site.ru/test","StrokaSpiska";);
XDTOГлавный = ФабрикаXDTO.Создать(XDTOТипГлавный);
СтрокаТовара = ФабрикаXDTO.Создать(XDTOТипСтрока);
СтрокаТовара.Articul = "000001";
СтрокаТовара.Razmer  = "1";
СтрокаТовара.Kol   = 2;
XDTOГлавный.Spisok.Добавить(СтрокаТовара);
РезультатВызова = Подключение .TestArray(XDTOГлавный);    

При запуске 1С выдает такую ошибку -
{Форма.Форма.Форма(68)}: Ошибка при вызове метода контекста (TestArray): Ошибка вызова операции сервиса:  {http://www.site.ru/test}:test:TestArray(): Неизвестная ошибка. Несоответствие типов XDTO:
Тип '{http://www.site.ru/test}ArraySpisok ' не найден
Тип принадлежит пакету, входящему в состав другой фабрики типов XDTO: Несоответствие типов XDTO:
Тип '{http://www.site.ru/test}ArraySpisok ' не найден
Тип принадлежит пакету, входящему в состав другой фабрики типов XDTO

Самое смешное, что мои веб-сервисы прекрасно работают при вызове с php или C#, а из 1С смоделировать вызов не могу.
1 DmitrO
 
03.07.15
14:09
везде вместо ФабрикаXDTO пиши Подключение.ФабрикаXDTO
2 Мигрень
 
03.07.15
14:12
Фабрику-то нужно использовать полученную через Веб-сервис, а не локальную.
3 DmitrO
 
03.07.15
14:12
Т.е. при получении WS определений ты должен использовать фабрику из этих определений, а не ту которая у тебя в конфигурации.
4 DmitrO
 
03.07.15
14:15
Вот если бы ты создавал прокси из WS ссылки добавленной в конфигурацию (без создания определений, определния бы хранились в конфигурации), то тогда использовал бы глобальную фабрику конфигурации.
5 Skazy
 
03.07.15
14:18
Господа СПАСИБО БОЛЬШОЕ! Ларчик просо открывался!
6 Skazy
 
03.07.15
14:19
*просто
тьфу...
(4) Это для отладки своих же веб-сервисов ;)