Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Получение даты по API

Получение даты по API
Я
   miv
 
27.10.20 - 11:23
Столкнулся с такой проблемой, получаю ответ от api с нужной инфой из офд. всё бы ничего, но даты чеков вообще не те что нужны, к примеру по кассе дата 09.10.2020 , а в ответе приходит 19.01.1970. Как быть ? 1с почему то неверно десериализует именно дату, с остальными данными проблем нет.
   acht
 
1 - 27.10.20 - 11:26
(0) > Как быть ?
Что-то сделать. Например, показать код и почитать СП по поводу десериализации дат из JSON, функций восстановления и т.д.
   miv
 
2 - 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);
    
    КонецЦикла;
   miv
 
3 - 27.10.20 - 11:33
в 3 сточке с конца пытался в ручную подогнать нужную дату ))
   acht
 
4 - 27.10.20 - 11:34
UnJSON что делает?
   acht
 
5 - 27.10.20 - 11:36
ОтправкаИПолучение что возвращает?
   miv
 
6 - 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;
   acht
 
7 - 27.10.20 - 11:52
(6) Глобальный контекст (Global context)
ПрочитатьJSON (ReadJSON)
Синтаксис:
ПрочитатьJSON(<ЧтениеJSON>, <ПрочитатьВСоответствие>, <ИменаСвойствСоЗначениямиДата>, <ОжидаемыйФорматДаты>, <ИмяФункцииВосстановления>, <МодульФункцииВосстановления>, <ДополнительныеПараметрыФункцииВосстановления>, <ИменаСвойствДляОбработкиВосстановления>, <МаксимальнаяВложенность>)
   miv
 
8 - 27.10.20 - 11:52
(4) получаем таблицу значений с десериализованными данными
   rozer76
 
9 - 27.10.20 - 13:05
(0) тебе в (1) намекают почитать в методе ПрочитатьJSON сначала поглядеть про <ОжидаемыйФорматДаты> а потом если не поможет в <ИмяФункцииВосстановления>

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.