|
Передача текста заявки через http сервис в 1с | ☑ | ||
---|---|---|---|---|
0
kIR
25.04.16
✎
16:56
|
Доброго дня!
Есть желание через вебморду стороннюю получать заявки из колл-центра, принимать их в 1с,обрабатывать и выдавать сотрудникам Вроде все более менее ясно,но непонятно,как будет выглядеть передача собтственно текста заявки? Почти все материалы в Интернете говорят об отчетности или передаче/получении информации о товаре Но ка же будет тогда выглядеть текст заявки,когда его будут передавать? Неужели что то типа "http://localhost:8090/Platform8Demo/text=ХренПоймиКакойОгромныйТекстНаСтоТыщЗнаков"? Или как то по другому передать это все можно? Спасибо |
|||
1
Fragster
гуру
25.04.16
✎
16:58
|
используй webсервисы, а не http-
|
|||
2
Fragster
гуру
25.04.16
✎
16:59
|
ну, или http://v8.1c.ru/o7/201312rest/index.htm
Создание нового элемента данных выполняется POST-запросом. В качестве значения ссылки передается нулевой GUID. При создании и модификации объектов значения свойств передаются в теле запроса в формате XML (здесь текст запроса приведён полностью): POST /OData_Tests_Infobase/odata/standard.odata/Catalog_Goods HTTP/1.1 Content-Type: application/atom+xml DataServiceVersion: 3.0;NetFx MaxDataServiceVersion: 3.0;NetFx Accept: application/atom+xml,application/xml Accept-Charset: UTF-8 User-Agent: 1C-Enterprise Host: test-host:8090 Content-Length: 1610 <?xml version="1.0" encoding="utf-8"?> <entry xmlns=http://www.w3.org/2005/Atom xmlns:d=http://schemas.microsoft.com/ado/2007/08/dataservices xmlns:m=http://schemas.microsoft.com/ado/2007/08/dataservices/metadata xmlns:georss=http://www.georss.org/georss xmlns:gml=http://www.opengis.net/gml> <category term="EnterpriseV8.CatalogGoods" scheme=http://schemas.microsoft.com/ado/2007/08/dataservices/scheme /> <id /> <title /> <updated>2013-08-12T11:48:25Z</updated> <author> <name /> </author> <content type="application/xml"> <m:properties> <d:Code>157</d:Code> <d:DeletionMark>false</d:DeletionMark> <d:Description>Майка синяя</d:Description> <d:IsFolder>false</d:IsFolder> <d:Parent_Key m:null="true" /> <d:Ref_Key m:type="Edm.Guid">00000000-0000-0000-0000-000000000000</d:Ref_Key> <d:Артикул m:null="true" /> <d:Поставщик_Key>F400322D-7AE8-4803-A7BE-0D80E525E8C2</d:Поставщик_Key> </m:properties> </content> </entry> |
|||
3
kIR
25.04.16
✎
17:01
|
(1) не,мне ж потом нужно пользователю отправить ответ с принятой заявкой и ее номером - это как минимум
|
|||
4
Fragster
гуру
25.04.16
✎
17:02
|
(3) ну так отправляй
|
|||
5
kIR
25.04.16
✎
17:04
|
(4) ну вот поэтому и http
|
|||
6
kIR
25.04.16
✎
17:04
|
Но с сутью задачи так и не разобрался
|
|||
7
Fragster
гуру
25.04.16
✎
17:04
|
(5) не, я понял, почему не подходит (2). но почему не подходит (1)?
|
|||
8
YAGolova
25.04.16
✎
17:05
|
(5) web сервисы так же прекрасно увеют возвращать значения)
|
|||
9
YAGolova
25.04.16
✎
17:06
|
(5) и http сервис тоже можешь сам написать, который будет выполняться методом POST и возвращать то что тебе нужно
|
|||
10
kIR
25.04.16
✎
17:10
|
(7)(8) ага,ну тогда и веб подойдет,эт я просто не разобрался,значит)
Но все таки - как будет выглядеть строка, в которой будут передаваться данные с текстом заявки? не допру - вот хоть убейте |
|||
11
YAGolova
25.04.16
✎
17:13
|
если запрос методом POST, то в строке вызова можешь ваще ничего не передавать, а в теле запроса передать что нужно в каком тебе удобно виде
|
|||
12
kIR
25.04.16
✎
17:14
|
(11) а есть ссылочка какая нибудь на пример?) для полноты восприяти?
|
|||
13
YAGolova
25.04.16
✎
17:16
|
(12) http://catalog.mista.ru/public/516810/ там про POST мельком, но все-таки есть чуток
|
|||
14
kIR
25.04.16
✎
17:21
|
(13) ага!
То есть через тело post запроса я получаю данные заявки, как мне нужно ее обрабатываю, а потом post/get(?) запросом возвращаю данные о состоянии этой заявки юзверю. так? |
|||
15
YAGolova
25.04.16
✎
17:24
|
(14) зачем тебе еще раз какой то запрос? у тебя 1 http сервис, который работает через метод post и возвращает то, что тебе надо
|
|||
16
kIR
25.04.16
✎
17:30
|
(15) значит,я еще не совсем все понял)
Ладно,буду реализовывать - там уже буду распрашивать дотошнее)пока просто в голове соберу все) |
|||
17
kIR
25.04.16
✎
17:31
|
спасибо!
|
|||
18
4St
25.04.16
✎
23:35
|
(14) https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo
Им можно отправлять POST-запросы, например. POST-запросы ничего интересного в строке адреса не содержат. Все содержимое лежит именно в теле ответа, которое так просто браузером не посмотреть. По сути там лежит просто какой-то произвольный текст. Далее, обработчик данного запроса в http-сервисе будет примерно такой: Функция rootPOST(Запрос) ТелоЗапроса = Запрос.ПолучитьТелоКакСтроку();//это и есть "невидимое" содержимое POST запроса //что-то делаем с ТелоЗапроса: валидируем, заявку создаем и т.д. Ответ = Новый HTTPСервисОтвет(200); Ответ.УстановитьТелоИзСтроки("заявка успешно создана"); Возврат Ответ; КонецФункции |
|||
19
H A D G E H O G s
26.04.16
✎
01:25
|
все же держат в уме шифрование?
|
|||
20
Fragster
гуру
26.04.16
✎
09:22
|
(19) а? ты про то, что то, что выставлено наружу должно быть через https?
|
|||
21
oleg_km
26.04.16
✎
09:51
|
(20) логично
|
|||
22
kIR
26.04.16
✎
11:29
|
(19) вот теперь все)
(18) да,я как то так себе и стал потом это представлять))спасибо за ссылку) |
|||
23
kIR
27.04.16
✎
11:26
|
А что с аутентификацией делать? как то при запросе передавать логин/пароль? или в настройках сервиса можно указать использование без аутентификации?
|
|||
24
4St
27.04.16
✎
14:25
|
А ты откуда в этот сервис стучаться будешь?
Если из 1С, то надо указывать логин/пароль тут: "Соединение = Новый HTTPСоединение(<порядок параметров не помню>). Если из другого места, то используй basic схему авторизации. Т.е. в заголовках запроса должен быть такой: Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== Где абракадабра - это на самом деле base64(user:pass). (ЕМНИП) |
|||
25
kIR
28.04.16
✎
09:14
|
(24) а пример ссылки с абракадаброй есть? для общего понимания?
|
|||
26
4St
28.04.16
✎
09:29
|
(25) она не в ссылке передаётся. В синтаксис помощнике ищи "httpсоединение.установитьзаголовки()". А про заголовки в общем - на вики есть, загугли " заголовки http запросов".
|
|||
27
kIR
28.04.16
✎
09:30
|
(26) спасибо)
|
|||
28
oleg_km
28.04.16
✎
09:54
|
(26) По-моему просто в HTTPСоединение указываешь пользователя и пароль, а он уже сам использует или Basic-авторизацию или Digest какую сервер запросит.
|
|||
29
4St
28.04.16
✎
10:02
|
(28) да,так и есть. Но ТС, судя по (0), будет отправлять запросы не через 1с.
|
|||
30
oleg_km
28.04.16
✎
10:07
|
(29) Ну практически во всех языках API для работы с HTTP имеет средства для стандартных способов авторизации, так чтобы не надо было испекать заголовки.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |