|
Работа одата - HTTPЗапрос. Работа с реквизитами как? | ☑ | ||
---|---|---|---|---|
0
Обработка
26.01.22
✎
08:59
|
У меня была обработка сравнения УТ и Розница через Одата и HTTPЗапрос. Все норм работает.
Взял за основу этот механизм хотел сверить данные между Розницей и КА. Но вот как в запросе вытащить кроме ссылки и названия еще реквизит номенклатуры? Вот пример запроса ниже: DateTime = Формат(ДатаОстатков,"ДФ=yyyy-MM-ddTHH:mm:ss"); ИмяРегистра = "ТоварыНаСкладах"; ТекстЗапроса = "/БАЗА/odata/standard.odata/AccumulationRegister_"+ ИмяРегистра+"/Balance(Period=datetime'" +DateTime+")?&$select=Номенклатура_Key,ВНаличииBalance,Номенклатура____Presentation,Номенклатура_Артикул,&$format=json;odata=nometadata"; ПользовательСервера = "Пользак"; ПарольСервера = "Пароль"; HTTPСоединение = Новый HTTPСоединение("ххх.ххх.ххх.х",,ПользовательСервера,ПарольСервера); HTTPЗапрос = Новый HTTPЗапрос(ТекстЗапроса); HTTPОтвет = HTTPСоединение.Получить(HTTPЗапрос); Ответ = HTTPОтвет.ПолучитьТелоКакСтроку("UTF-8"); ЧтениеJSON = Новый ЧтениеJSON; ЧтениеJSON.УстановитьСтроку(Ответ); СоответствиеJSON = ПрочитатьJSON(ЧтениеJSON, Истина); Если HTTPОтвет.КодСостояния <> 200 тогда OdataError = СоответствиеJSON["odata.error"]; Message = OdataError["message"]; Сообщить(Message["value"]); Возврат; КонецЕсли; Выходит ошибка что "Номенклатура_Артикул" не подходит... |
|||
1
Обработка
26.01.22
✎
09:00
|
Прошу сильно не пинать. С этим механизмом я почти и не работал.
Мануалы почитал не все так прозрачно и без примера. |
|||
2
Kassern
26.01.22
✎
09:04
|
(0) вы же в соответствие читаете json, а не в структуру. Через точку в соответствии нельзя обращаться. В КА Одата с нужным справочником опубликовано? Вы можете без 1ски, просто браузером перейти по строке и посмотреть что возвращает Одата.
|
|||
3
Обработка
26.01.22
✎
09:29
|
тут как раз ошибка 200
HTTPОтвет.КодСостояния = 200.. |
|||
4
ДенисЧ
26.01.22
✎
09:32
|
(3) 200 это не ошибка.
|
|||
5
Kassern
26.01.22
✎
09:53
|
||||
6
Обработка
26.01.22
✎
09:56
|
ой пардон как раз не 200 а наоборот
|
|||
7
Обработка
26.01.22
✎
09:56
|
Сегмент пути Номенклатура_Артикул не найден! Пишет
|
|||
8
Kassern
26.01.22
✎
09:56
|
(6) вы в браузере пытались глянуть?
|
|||
9
Обработка
26.01.22
✎
10:04
|
(8) Паврдон за тупость а какую строку мне набрать в браузере?
|
|||
10
Kassern
26.01.22
✎
10:24
|
(9) "ххх.ххх.ххх.х"+ТекстЗапроса
|
|||
11
mistеr
26.01.22
✎
10:36
|
(1) Пора почитать про основы HTTP. И освоить инструменты разработчика в браузере.
|
|||
12
Обработка
26.01.22
✎
11:16
|
Получил это
{ "odata.error": { "code": "6", "message": { "lang": "ru", "value": "Сегмент пути Номенклатура_Артикул не найден!" } } } |
|||
13
Kassern
26.01.22
✎
11:18
|
(12) ну так в вы структуру КА смотрели, регистр там такой же? Может там вместо номенклатуры какая нибудь аналитика номенклатуры в измерениях?
|
|||
14
Kassern
26.01.22
✎
11:19
|
Данный регистр вообще опубликован в КА?
|
|||
15
Обработка
26.01.22
✎
11:20
|
а без него работает
{ "odata.metadata": "http://ххххххххххх/KA/odata/standard.odata/$metadata#Collection(StandardODATA.AccumulationRegister_ТоварыНаСкладах_Balance)", "value": [ { "Номенклатура_Key": "7a8f4016-e580-11df-a18a-959bba206076", "ВНаличииBalance": 1, "Номенклатура____Presentation": "#W14334 LORI Легинсы для девочек нарядные" }, { "Номенклатура_Key": "7a8f4018-e580-11df-a18a-959bba206076", "ВНаличииBalance": 6, "Номенклатура____Presentation": "#W14335 MILA Легинсы для девочек нарядные" }, { "Номенклатура_Key": "7a8f4022-e580-11df-a18a-959bba206076", "ВНаличииBalance": 1, "Номенклатура____Presentation": "#W14728 Носки дет. TIP-TOP 5С-11" }, { "Номенклатура_Key": "7a8f4030-e580-11df-a18a-959bba206076", "ВНаличииBalance": 3, "Номенклатура____Presentation": "#W14736 Гольфы дет. праздничные" }, ....... |
|||
16
Обработка
26.01.22
✎
11:22
|
(14) ДА по складам по номенклатуре и по харакетеристикам брали и сравнивали. се норм работает.
Но как в запрос вытащить реквизиты измерений то есть справочников не знаю. там пишут что-то типа TYPE но не осилил пока. |
|||
17
Kassern
26.01.22
✎
16:59
|
(16) (15) С одата толком не работал, но вижу тут есть гуид, а что мешает по нему получить реквизиты? Вот статья вроде не плохая по одата https://infostart.ru/1c/articles/1570140/
|
|||
18
Kassern
26.01.22
✎
16:59
|
если в текущей таблице только гуид и представление, может надо еще запрос сделать уже с этим гуидом к нужной таблице, чтобы получить реквизиты?
|
|||
19
Обработка
26.01.22
✎
17:49
|
(18) Дело в том что при обмене между Ка и Розница приходят в розницу битые ссылки по номенклатуре.
Хотел быстро сверить и понять по каким позициям нет стыковки. В правилах обмена по номенклатуре поиск ведется по гуиду если нет то по наименованию если и наименование не совпадает то по Артикулу. Вот и мучаюсь. Пока написал обработку который сверяет по наименованию и по артикулу через обычную таблицу 1С но результат такой что все совпадает. |
|||
20
BaZZiL
26.01.22
✎
20:44
|
Запросить в справочнике Номенклатура, ваш Кэп)
http://ххххххххххх/KA/odata/standard.odata/Catalog_Номенклатура?&$select(нужные поля или *) &$filter=eq'guid'[нужный гуид] По вкусу добавить or eq Синтаксис мог переврать) Но лучше все же свой хттп сервис, который выдаст всё и сразу. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |