|   |   | 
| 
 | Работа одата - 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 Синтаксис мог переврать) Но лучше все же свой хттп сервис, который выдаст всё и сразу. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |