Дата JSON в 1С

1. Asya.Ozerova 40 17.02.22 18:08 Сейчас в теме
Добрый день всем!
Не могу понять, почему:
ПрочитатьДатуJSON("new Date("+Формат(СтрокаРезультата.Значение, "ЧГ=")+")", ФорматДатыJSON.JavaScript)

где: СтрокаРезультата.Значение = 1 439 769 600 000;

выдает ошибку:
Представление даты имеет неверный формат ('new Date(1 439 769 600 000)')

СтрокаРезультата.Значение содержит строку ответа в JSON от Сервера
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1203706 15 17.02.22 18:12 Сейчас в теме
(1)
ПрочитатьДатуJSON(СтрокаРезультата.Значение, ФорматДатыJSON.JavaScript)
3. Asya.Ozerova 40 17.02.22 18:15 Сейчас в теме
(2)
ПрочитатьДатуJSON(СтрокаРезультата.Значение, ФорматДатыJSON.JavaScript)


Ошибка при вызове метода контекста (ПрочитатьДатуJSON)
СтрокаДатаФормат = ПрочитатьДатуJSON(СтрокаРезультата.Значение, ФорматДатыJSON.JavaScript);
по причине:
Представление даты имеет неверный формат ('1 439 769 600 000')
4. user1203706 15 17.02.22 18:19 Сейчас в теме
(3)
СтрокаРезультата.Значение = 1 439 769 600 000 //тут у тя что ? Число или строка ?

Если строка, то выкини пробелы из неё, в метод пихай строку.
5. Asya.Ozerova 40 17.02.22 18:20 Сейчас в теме
6. Asya.Ozerova 40 17.02.22 18:31 Сейчас в теме
(4)
СтрокаДатаФормат = ПрочитатьДатуJSON(СтрЗаменить(Строка(СтрокаРезультата.Значение), " ", ""), ФорматДатыJSON.JavaScript);

Так та-же ошибка(((
7. user1203706 15 17.02.22 18:32 Сейчас в теме
(5)

ПрочитатьДатуJSON("new Date("+Формат(1439769600000, "ЧГ=")+")",ФорматДатыJSON.JavaScript);
8. user1203706 15 17.02.22 18:35 Сейчас в теме
ПрочитатьДатуJSON("new Date("+"1439769600000"+")",ФорматДатыJSON.JavaScript)
deaddy64; +1 Ответить
10. Asya.Ozerova 40 17.02.22 18:53 Сейчас в теме
(8)
ПрочитатьДатуJSON("new Date("+Формат(СтрЗаменить(СтрокаРезультата.Значение, Символ(160), ""), "ЧГ=")+")",ФорматДатыJSON.JavaScript);

Вот иак получилось! Там не Пробел был, а символ с ASCII-кодом 160!

Большое Спасибо!!!
deaddy64; +1 Ответить
14. -AI- 17.02.22 23:07 Сейчас в теме
(10)
символ с ASCII-кодом 160

в терминологии 1С:
СтрЗаменить(стр,Символы.НПП,"")
9. user1203706 15 17.02.22 18:35 Сейчас в теме
Извращение, конечно....
11. user1203706 15 17.02.22 18:58 Сейчас в теме
(10) да не за что. Просто работа метода не соответствует доке в сп, в котором просто нужно передать строку "12364560000000" типа число милисекунд с начала бла бла бла.

А тут через шаблон пихаем дату, причем, если писать Новый Дата то будет ошибка.
Не знаю, как откопали, что работает new Date, но это явный баг, который товарищам с Селезнёвки нужно исправить, чем городить такие недокумментированные костыли
12. Asya.Ozerova 40 17.02.22 19:16 Сейчас в теме
(11)
var date = new Date(ticks);

Это JavaScript
13. user1203706 15 17.02.22 20:33 Сейчас в теме
(12) ага, только в доке написано, что ожидается строка , а никак не функция с jscript

ФорматДатыJSON (JSONDateFormat)
JavaScript (JavaScript)
Описание:
Формат даты JavaScript вида: "1234656000000".
Указывается количество миллисекунд, прошедших с начала эры Unix (Unix Epoch)
©СП
.
15. Letos 268 20.02.22 13:22 Сейчас в теме
А из БСП вы пробовали?

ЧтениеJSON = Новый ЧтениеJSON();
ЧтениеJSON.УстановитьСтроку(СтрокаJSON);
СтруктураJSON =  ПрочитатьJSON(ЧтениеJSON,, МассивИменДат, ФорматДатыJSON.ISO);

Где "СтрокаJSON" - это ваши джисно данные.
16. dimasts 22 14.02.24 14:03 Сейчас в теме
Как всегда 1С сама очевидность!
Каждый дурак может догадаться, что если в справке написано:
«•Строка Строка(Обязательный) Строка, которую требуется преобразовать в дату.»
то надо подставлять строку «new Date(1707905895000)»
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот