Есть мобильное приложение на android с одной стороны и веб-сервис от 1с с другой стороны. Уже реализована передача данных из 1с в приложение. Но теперь возник вопрос, нужно передавать данные из приложения в 1с, я могу передать число или какой-то другой примитивный тип данных, но в данном случае нужно передать XDTO пакет. Вот собственно процедура из 1с которая обработает переданный пакет:
Процедура getOrder(Order, Manager)
ТекстХМЛ = Новый ЧтениеXML;
ТекстХМЛ.УстановитьСтроку(Order.Получить());
ТипЗаказы= ФабрикаXDTO.Тип("http://www.livsig.org","Заказы");
Заказы = ФабрикаXDTO.ПрочитатьXML(ТекстХМЛ, ТипЗаказы);
ТекстХМЛ.Закрыть();
СоздатьПринятыеЗакаы(Заказы.СписокЗаказов,Manager);
КонецПроцедуры
Как мне на стороне android приложения получить нужный мне тип XDTO, с помощью него сформировать пакет и отдать его веб сервису? Это вообще реально? Вот пример того, как я передаю на сервер строку:
request = new SoapObject(StandartSetting.NAMESPACE_F2,StandartSetting.SEND_F2_ORDERS);
request.addProperty("Order",null);
request.addProperty("Manager", settingsHelper.getSettingsValue(StandartSetting.F2_MANAGER_NAME));
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
HttpTransportSE httpTransport = new HttpTransportBasicAuthSE("http://"+settingsHelper.getSettingsValue(StandartSetting.DB_ADRESS)+StandartSetting.URL_F2,settingsHelper.getSettingsValue(StandartSetting.F2_MANAGER_NAME),""); HttpTransport.call("http://"+settingsHelper.getSettingsValue(StandartSetting.DB_ADRESS)+StandartSetting.SOAP_ACTION_F2_ORDERS, envelope);
envelope.getResponse();
P.s с веб-сервисами работаю с помощью библиотеки ksoap2
Проще будет на стороне приложения собрать данные в JSON объект, потом его строкой передать в 1с. 1С хорошо работает с JSON, не нужно будет парсить строки и тп. В 1С это выглядит примерно так:
ТелоЗапроса = Запрос.ПолучитьТелоКакСтроку(КодировкаТекста.UTF8);
ЧтениеДанных = Новый ЧтениеJSON;
ЧтениеДанных.УстановитьСтроку(ТелоЗапроса);
ДанныеДокумента = ПрочитатьJSON(ЧтениеДанных);
ЧтениеДанных.Закрыть();
Теперь в переменной ДанныеДокумента будет Структура с полями из JSON-а, читаем свойства, пишем в базу. Как-то так.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Без Pattern данные выводятся такие: USD 27827 28
Для сравнения объектов в Java используется метод equals(), но что если сравниваются между собой два объекта-обертки для примитивных типов:
Нужно реализовать повтор строки в столбик 1 раз (если то условие выполняется)Ниже выделил где именно это происходит