Интергация через веб-сервисы

1. Mister_1C 04.03.20 14:35 Сейчас в теме
Здравствуйте, пытаюсь интегрироваться с одним сервисом. У них есть пример:
Процедура ИнициализироватьВебСервисМаршрутов(Сервис, Пользователь = Неопределено, Пароль = Неопределено)
	
	Если Сервис <> Неопределено Тогда
		Возврат;
	КонецЕсли;	
	
	Сервис = WSСсылки.инМаршрутыБТС.СоздатьWSПрокси("http://ws.vrptwserver.beltranssat.by/", "VrpWebServiceService", "VrpWebServicePort", , 300);													
	Сервис.Пользователь = ?(Пользователь <> Неопределено, Пользователь,	Константы.инИмяПользователяДляБелтрансспутника.Получить());
	Сервис.Пароль 	  = ?(Пароль <> Неопределено, Пароль, Константы.инПарольПользователяДляБелтрансспутника.Получить());	
		
КонецПроцедуры



Процедура ДобавитьИзменитьГеографическиеТочки(МассивЗаказов, Сервис = Неопределено, Отказ = Ложь) Экспорт
	
	Пользователь = ПараметрыСеанса.ТекущийПользователь.векКодБТС;
	
	ИнициализироватьВебСервисМаршрутов(Сервис, Пользователь);
	
	Если Сервис = Неопределено Тогда
		Возврат;
	КонецЕсли;	
	
	ТаблицаДанных = ПолучитьДанныеГеографическихТочек(МассивЗаказов);  // таблица, содержащая данные точек, переданных в параметре МасиивЗаказов для передачи в БТС
	
	Для каждого СтрокаДанных Из ТаблицаДанных Цикл
		ДобавитьИзменитьГеографическуюТочку(СтрокаДанных, Сервис, Отказ);
	КонецЦикла; 
	
КонецПроцедуры


Процедура ДобавитьИзменитьГеографическуюТочку(СтрокаДанных, Сервис = Неопределено, Отказ = Ложь)
	
	ОбъектСервисаГеоТочка = инВебСервисы.ПолучитьОбъектВебСервиса(Сервис, "customerDataJaxb");
	ЗаполнитьЗначенияСвойств(ОбъектСервисаГеоТочка, СтрокаДанных);
	
	ОбъектСервисаГеоТочка.readyTime    = СтрокаДанных.ВремяДоставкиС;
	ОбъектСервисаГеоТочка.dueTime        = СтрокаДанных.ВремяДоставкиПо;
		
	ОбъектСервисаСписокТоваров = инВебСервисы.ПолучитьСписокОбъектовВебСервиса(Сервис, "customerDataJaxb", "goods");
	Для Каждого СтрокаТовар Из СтрокаДанных.Товары Цикл
		ОбъектСервисаТовар = инВебСервисы.ПолучитьОбъектВебСервиса(Сервис, "good");
		ЗаполнитьЗначенияСвойств(ОбъектСервисаТовар, СтрокаТовар);
		ОбъектСервисаСписокТоваров.good.Добавить(ОбъектСервисаТовар);		
	КонецЦикла;
	
	Попытка
		Сервис.addPoint(ОбъектСервисаГеоТочка);
	Исключение
		Попытка
		     Сервис.updatePoint(ОбъектСервисаГеоТочка);
		Исключение
		    Сообщить(ОписаниеОшибки());
		КонецПопытки; 
	КонецПопытки;

КонецПроцедуры


Функция ПолучитьДанныеГеографическихТочек(МассивЗаказов)
	
	Запрос = Новый Запрос;

	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ЗаказКлиента.Ссылка КАК Ссылка,
		|	""ЗК_"" + ЗаказКлиента.Номер КАК Номер,
		|	ЗаказКлиента.Дата КАК Дата,
		|	ЕСТЬNULL(ЗаказКлиента.инАдресДоставкиГеографический.Широта, 0) КАК latitude,
		|	ЕСТЬNULL(ЗаказКлиента.инАдресДоставкиГеографический.Долгота, 0) КАК longitude,
		|	0 КАК weight,
		|	0 КАК volume,
		|	0 КАК readyTime,
		|	86400 КАК dueTime,
		|	ЗаказКлиента.ВремяДоставкиС,
		|	ЗаказКлиента.ВремяДоставкиПо,
		|	//600 КАК serviceTime,
		|	""ЗК_"" + ЗаказКлиента.Номер КАК id,
		|	ЗаказКлиента.Партнер.Наименование КАК name,
		|	ЕСТЬNULL(ЗаказКлиента.инАдресДоставкиГеографический.КраткийАдрес, """") КАК address,
		|	""ЗК_"" + ЗаказКлиента.Номер КАК label,
		|	"""" КАК text1,
		|	"""" КАК text2,
		|	"""" КАК text3,
		|	""ЗК_"" + ЗаказКлиента.Номер КАК orderNumber,
		|	ЗаказКлиента.инТелефон КАК phoneNumbers,
		|	ЕСТЬNULL(ЗаказКлиента.инАдресДоставкиГеографический.ГеографическаяЗона.КодБТС, 0) КАК zoneId,
		|	100 КАК radius,
		|	ЗаказКлиента.ДатаОтгрузки КАК deliveryDate,
		|	5 КАК priority,
		|	5 КАК insertionPriority,
		|	ЗаказКлиента.Товары.(
		|		Номенклатура.Артикул КАК goodsId,
		|		Номенклатура.Наименование КАК name,
		|		Количество КАК amount,
		|		Ссылка.Склад.Наименование КАК warehouse,
		|		0 КАК cost,
		|		ЗаказКлиента.Товары.ПроцентРучнойСкидки + ЗаказКлиента.Товары.ПроцентАвтоматическойСкидки КАК discount,
		|		ВЫБОР
		|			КОГДА ЗаказКлиента.Товары.Отменено
		|				ТОГДА 1
		|			ИНАЧЕ 0
		|		КОНЕЦ КАК status,
		|		ЕСТЬNULL(ЗаказКлиента.Товары.ПричинаОтмены.Наименование, """") КАК comment,
		|		ЛОЖЬ КАК hasDebt
		|	)
		|ИЗ
		|	Документ.ЗаказКлиента КАК ЗаказКлиента
		|ГДЕ
		|	ЗаказКлиента.Ссылка В(&МассивЗаказов)
		|	И ЗаказКлиента.Проведен = ИСТИНА; 

	Возврат Запрос.Выполнить().Выгрузить();

КонецФункции
Показать

Как бы все понятно. Кроме одного.
инВебСервисы.ПолучитьОбъектВебСервиса(Сервис, "customerDataJaxb");

Что это за переменная такая "инВебСервисы"?
Заранее спасибо)
Найденные решения
12. Zab 04.03.20 16:06 Сейчас в теме
(11) WSDL ссылка?

Посмотрите тут есть пример.

Скорее всего в ПолучитьОбъектВебСервиса(Прокси, Имя) будет что-то типа

ТипПараметра = Прокси.ФабрикаXDTO.Тип("http://.....",Имя);
Возврат Прокси.ФабрикаXDTO.Создать(ТипПараметра);
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user705522_constantin_h 35 04.03.20 14:50 Сейчас в теме
(1)
Что это за переменная такая "инВебСервисы"?

Может быть общий модуль?
3. Mister_1C 04.03.20 14:57 Сейчас в теме
(2) и что я должен написать в процедуре "ПолучитьОбъектВебСервиса"? как мне получить объекты WSСсылки?
Я сделал вот так:
ОбъектСервисаГеоТочка = Сервис.ФабрикаXDTO.Пакеты[2][9];//инВебСервисы.ПолучитьОбъектВебСервиса(Сервис, "customerDataJaxb");
	ЗаполнитьЗначенияСвойств(ОбъектСервисаГеоТочка, СтрокаДанных);

        Попытка
		Сервис.addPoint(ОбъектСервисаГеоТочка);
	Исключение
		Попытка
		     Сервис.addPoint(ОбъектСервисаГеоТочка);
		Исключение
		    Сообщить(ОписаниеОшибки());
		КонецПопытки; 
	КонецПопытки;
Показать

он выдает такую ошибку.
Прикрепленные файлы:
4. Zab 04.03.20 14:58 Сейчас в теме
(1) скорее всего, это имя общего модуля, формы или обработки в котором реализованы вызываемые методы. Они не предлагают скачать ничего?
5. Mister_1C 04.03.20 14:59 Сейчас в теме
(4) Нет, они говорят что и пример этот не их. А одного из их клиента.
8. Zab 04.03.20 15:14 Сейчас в теме
(5) пример явно не полный. Вам придется еще реализовать инВебСервисы.ПолучитьСписокОбъектовВебСервиса() и WSСсылки.инМаршрутыБТС. И для этого надо иметь документацию для системы с которой интеграцию делаете.
10. Mister_1C 04.03.20 15:38 Сейчас в теме
(8) WSСсылки.инМаршрутыБТС. - это я создал. это WsСсылка
Прикрепленные файлы:
11. Mister_1C 04.03.20 15:39 Сейчас в теме
(8) Какую конкретно документацию надо узнать?
12. Zab 04.03.20 16:06 Сейчас в теме
(11) WSDL ссылка?

Посмотрите тут есть пример.

Скорее всего в ПолучитьОбъектВебСервиса(Прокси, Имя) будет что-то типа

ТипПараметра = Прокси.ФабрикаXDTO.Тип("http://.....",Имя);
Возврат Прокси.ФабрикаXDTO.Создать(ТипПараметра);
9. user705522_constantin_h 35 04.03.20 15:15 Сейчас в теме
(1)
ОбъектСервисаГеоТочка = инВебСервисы.ПолучитьОбъектВебСервиса(Сервис, "customerDataJaxb");

У ДиаДока похожее есть: это может быть макет, в котором бинарный модуль. Тогда ПолучитьОбъектВебСервиса— это процедура бинарного модуля.
6. Mister_1C 04.03.20 15:01 Сейчас в теме
Вот что показывает служебное сообщение.
{Документ.ЗаявкаНаПеревозку.Форма.ФормаСписка.Форма(181)}: Ошибка при вызове метода контекста (addPoint): Несоответствие типов (параметр номер '1')
7. Mister_1C 04.03.20 15:05 Сейчас в теме
Вот
Прикрепленные файлы:
13. piton66 2 02.12.20 18:41 Сейчас в теме
Привет. Тоже сейчас с этим мучаюсь. Получилось что с интеграцией?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот