Имя: Пароль:
1C
1С v8
Использование http сервисов
,
0 KB 1C
 
06.03.17
13:32
Приветствую всех, добрые люди, помогите разобраться с http сервисом и xml, задача состоит в том, что бы передавать данные по документам из одной базы в другие. Я для этого формирую xml и пытаюсь передать методом get, но при передаче xml формирует всего 1 строку. Если я тот же код использую в обработке xml формируется полностью. В чем беда подскажите???
1 arsik
 
гуру
06.03.17
13:39
(0) Для начала, у GET есть ограничение на длину. В твоем случае POST нужно использовать
2 Юрий Лазаренко
 
06.03.17
13:40
(0) Беда в двух моментах:
1. XML
2 GET-запрос

Использовать надо не XML, а JSON. Он легче и быстрее обрабатывается.
При использовании GET-запросов данные передаются в параметрах, а параметры GET-запроса - это всегда строка. Используйте POST-запрос - в нем данные передаются в теле запроса. Тем более, если вы передаете большие объемы данных - длина GET-запроса обычно ограничена 4 килобайтами.
3 Юрий Лазаренко
 
06.03.17
13:46
+(2) Я бы посоветовал еще перед отправкой данных пропускать их через КодироватьСтроку(), а в базе получателе через РаскодироватьСтроку() - заранее решите кучу вопрос со спесцимволами и кириллицей.
4 KB 1C
 
06.03.17
13:54
(1) заказчик сказал мне хватит get
5 KB 1C
 
06.03.17
13:55
(2) У меня передаваться будет инфа по доку - дата,номер,сумма,клиент больше ничего
6 KB 1C
 
06.03.17
13:56
Я не могу понять почему формируется одним и тем же кодом разное содержание в XML, вот сейчас сформировал отдельно файл и потом передал его, всё получилось как надо
7 eklmn
 
гуру
06.03.17
13:59
(4) ну так и скажи ему если он такой умный, пусть сам делает
8 KB 1C
 
06.03.17
14:01
(7) ну заказчиков не выбирают))
9 vde69
 
06.03.17
14:02
для сабжа REST - лучше чем POST ????
10 KB 1C
 
06.03.17
14:04
формирую файл обработкой, сохраняю его, затем вызываю из браузера - получаю
11 KB 1C
 
06.03.17
14:05
<Реализации> <СтрокаРеализации Сумма="1 440 000" Контрагент="Тиара" Номер="000000276"/> <СтрокаРеализации Сумма="1 206 345,6" Контрагент="Иванов" Номер="000000277"/> <СтрокаРеализации Сумма="2 107 500" Контрагент="Тиара" Номер="000000278"/>
12 Юрий Лазаренко
 
06.03.17
14:06
(5) Ну если там только 3 параметра, то зачем там xml? Достаточно просто эти три параметра передавать в тексте get-запроса
13 KB 1C
 
06.03.17
14:06
если делаю то же, но в модуле http сервиса - получаю просто <Реализации/>
14 Юрий Лазаренко
 
06.03.17
14:07
(11) А, в одном запросе несколько реализаций. Тогда параметрами не обойдешься.
Ну так зашей это в json, закодируй и передай полученный текст в виде одного параметра get-запроса. В базе-получателе раскодируй и разбери json.
15 KB 1C
 
06.03.17
14:07
(12) документов может быть больше чем 1, и тогда не обойдешься параметрами
16 Юрий Лазаренко
 
06.03.17
14:08
(13) Еще раз: "перед отправкой данных пропускать их через КодироватьСтроку(), а в базе получателе через РаскодироватьСтроку() - заранее решите кучу вопрос со спесцимволами и кириллицей"
17 KB 1C
 
06.03.17
14:25
(16) Спасибо, буду кодировку использовать
18 Юрий Лазаренко
 
06.03.17
14:30
(17) Взлетело?
19 KB 1C
 
06.03.17
15:52
(18) да, спасибо, заработало
20 Юрий Лазаренко
 
06.03.17
15:59
(19) Отлично. Обращайтесь, если что.
21 Звездочёт
 
06.03.17
16:35
Кстати, тут тоже используется метод РаскодироватьСтроку():
Интернет-магазин на 1С — webstore-on-1c.ru :)
В других проектах и КодироватьСтроку() встречалось.