|
Получение даты по API | ☑ | ||
---|---|---|---|---|
0
miv
27.10.20
✎
11:23
|
Столкнулся с такой проблемой, получаю ответ от api с нужной инфой из офд. всё бы ничего, но даты чеков вообще не те что нужны, к примеру по кассе дата 09.10.2020 , а в ответе приходит 19.01.1970. Как быть ? 1с почему то неверно десериализует именно дату, с остальными данными проблем нет.
|
|||
1
acht
27.10.20
✎
11:26
|
(0) > Как быть ?
Что-то сделать. Например, показать код и почитать СП по поводу десериализации дат из JSON, функций восстановления и т.д. |
|||
2
miv
27.10.20
✎
11:32
|
(1) СП = ЗаполнитьПараметры("POST","/ofdapi/v1/documents");
дата = "2020-10-09"; Body = "{ ""fiscalDriveNumber"":""9287440300813581"", ""date"" :" + символ(34) + дата + символ(34) + "}"; Ответ = ОтправкаИПолучение(СП,Body); ЗаполнениеЛога(Ответ); Уровень = 0; Если Ответ.StatusCode = 200 Тогда ЗаписьJSON = Новый ЗаписьJSON; ЗаписьJSON.УстановитьСтроку(); ЗаписатьJSON(ЗаписьJSON, Ответ); СтрJSON = ЗаписьJSON.Закрыть(); ОтветТаблица = UnJSON(СтрJSON); Для Каждого Данные из ОтветТаблица.body.items Цикл Данные.dateTime = ПрочитатьДатуJSON("new Date("+Формат(Данные.dateTime, "ЧГ=")+")", ФорматДатыJSON.JavaScript) + (18526 * 60 * 60 * 24) - (6 * 60 * 60) - (14 * 60) ; Данные.receivingDate = ПрочитатьДатуJSON("new Date("+Формат(Данные.receivingDate, "ЧГ=")+")", ФорматДатыJSON.JavaScript); КонецЦикла; |
|||
3
miv
27.10.20
✎
11:33
|
в 3 сточке с конца пытался в ручную подогнать нужную дату ))
|
|||
4
acht
27.10.20
✎
11:34
|
UnJSON что делает?
|
|||
5
acht
27.10.20
✎
11:36
|
ОтправкаИПолучение что возвращает?
|
|||
6
miv
27.10.20
✎
11:47
|
(5) //Параметры соединения
Таймаут = 120; //ssl = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows(), Новый СертификатыУдостоверяющихЦентровWindows()); ssl = Новый ЗащищенноеСоединениеOpenSSL(); //Устанавливаем соединение и передаем запрос НТТР = Новый HTTPСоединение(СтруктураПараметров.Сервис, , , , , Таймаут,ssl ); ЗапросHTTP = Новый HTTPЗапрос(СтруктураПараметров.Запрос,СтруктураПараметров.Заголовки); Response = Новый Структура; Если НЕ Body = Неопределено Тогда ЗапросHTTP.УстановитьТелоИзСтроки(Body); КонецЕсли; Попытка ОтветHTTP = НТТР.ВызватьHTTPМетод(СтруктураПараметров.Метод,ЗапросHTTP); //ОтветHTTP = НТТР.Получить(ЗапросHTTP); ЧтениеJSON = Новый ЧтениеJSON; ЧтениеJSON.УстановитьСтроку(ОтветHTTP.ПолучитьТелоКакСтроку()); BodyResponse = ПрочитатьJSON(ЧтениеJSON,Истина); Response.Вставить("StatusCode", ОтветHTTP.КодСостояния); Response.Вставить("Headers", ОтветHTTP.Заголовки); Если ТипЗнч(BodyResponse) = Тип("Соответствие") Тогда Response.Вставить("Body", BodyResponse); ИначеЕсли ТипЗнч(BodyResponse) = Тип("Массив") Тогда Response.Вставить("Body", BodyResponse); Иначе Response.Вставить("Body", Неопределено); КонецЕсли; Исключение Response.Вставить("StatusCode", ОписаниеОшибки()); Response.Вставить("Headers", Неопределено); Response.Вставить("Body", Неопределено); КонецПопытки; Response.Вставить("Отказ", Ложь); Возврат Response; |
|||
7
acht
27.10.20
✎
11:52
|
(6) Глобальный контекст (Global context)
ПрочитатьJSON (ReadJSON) Синтаксис: ПрочитатьJSON(<ЧтениеJSON>, <ПрочитатьВСоответствие>, <ИменаСвойствСоЗначениямиДата>, <ОжидаемыйФорматДаты>, <ИмяФункцииВосстановления>, <МодульФункцииВосстановления>, <ДополнительныеПараметрыФункцииВосстановления>, <ИменаСвойствДляОбработкиВосстановления>, <МаксимальнаяВложенность>) |
|||
8
miv
27.10.20
✎
11:52
|
(4) получаем таблицу значений с десериализованными данными
|
|||
9
rozer76
27.10.20
✎
13:05
|
(0) тебе в (1) намекают почитать в методе ПрочитатьJSON сначала поглядеть про <ОжидаемыйФорматДаты> а потом если не поможет в <ИмяФункцииВосстановления>
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |