Имя: Пароль:
1C
1С v8
Запись строки JSON в файл
,
0 mua thu
 
26.10.16
19:21
Добрый день! Версия 1С:Предприятие 8.2 (8.2.19.83)
Пожалуйста подскажите:
выгружаю ТЗ в строку JSON - получаю строку вида (СтрокаJSON):
"[
    {
        "Client": "Андрей",
        "City": "Москва",
        "Street": "Чертановская",
        "House": "1"
    }
]"  
Потом пытаюсь записать эту строку в файл .json таким образом:
пФайлИмя =  "D:\Addresses.json";
ЗначениеВФайл(пФайлИмя, СтрокаJSON);
Файл формируется но при этом нарушается формат строки:

{"S","[
    {
        ""Client"": ""Светлана Водопьянова"",
        ""City"": ""Киев"",
        ""Street"": ""СЕРПОВА"",
        ""House"": "" 11""
    }]"} Добавляются левые кавычки, запятая в первом ключе вместо двоеточия..)

Как правильно записать строку в файл json? Платформа не поддерживает ЗаписьJSON.   Заранее благодарю!)
1 Cyberhawk
 
26.10.16
19:38
А где ты смотришь эту строку из первого листинга?
2 mua thu
 
26.10.16
19:39
Имею ввиду на выходе {"S","[
    {
        ""Client"": ""Андрей"",
        ""City"": ""Москва"",
        ""Street"": ""Чертановская"",
        ""House"": "" 1""
    }]"}
3 mua thu
 
26.10.16
19:39
(1) В отладчике
4 mua thu
 
26.10.16
19:40
(1)СтрокаJSON =  JSON.ЗаписатьJSON(ТЗ.Выгрузить());
    пФайлИмя =  "D:\Addresses.json";
    ЗначениеВФайл(пФайлИмя, СтрокаJSON);
5 Cyberhawk
 
26.10.16
19:41
(3) Так отладчик тебе показывает нормально ее, без экранирующих кавычек
6 Cyberhawk
 
26.10.16
19:42
Ну и пиши в файл через УстановитьТекст, а не сериализацию
7 zmaximka
 
26.10.16
19:44
Если не ошибаюсь то у ЗаписатьJSON есть еще второй параметр
8 mua thu
 
26.10.16
19:46
(5) Да. В строку записалось нормально, а именно при записи в файл все меняется.
(6,7) Спасибо! Попробую.
9 zmaximka
 
26.10.16
19:48
Json это ЗаписьJson?
10 Живой Ископаемый
 
27.10.16
05:17
фигня в этом методе:
ЗначениеВФайл(пФайлИмя, СтрокаJSON); //<===
11 anatoly
 
27.10.16
05:23
(0) чем выгружаешь ТЗ в строку json?
поддержка в платформе только в 8.3.6 появилась, емнип, значит что то сторонее используешь - или сам написал?

и пиши как в простой текст.файл!
12 ЧеловекДуши
 
27.10.16
08:16
(0) Как понял, что нарушается формат?
13 ЧеловекДуши
 
27.10.16
08:22
+ ЗначениеВФайл, так то отрабатывает в штатном режиме :)
Вы пишите файл, другими методами.

А так, 8.3 уже погет работать без посредника в виде файла.
Так же 1с криво воспринимает формат "json"... Сами 1С-ники накрутили лажу.

Лучше пользуйтесь старым методом от 8.2
ДО платформы версии 8.3.6, т.е. 8.3.5 и ниже:
https://helpf.pro/faq82/view/1664.html
14 ЧеловекДуши
 
27.10.16
08:25
(11) >>> поддержка в платформе только в 8.3.6

Я бы не делал ставку на эту поддержку.
Если json прилетит из вне, то 1С может не обработать строку "json", как надо :)
  ...подарок от 1С разрабов... ;)
15 don_Rumata
 
27.10.16
10:38
(13) если объем большой, то "старый метод" очень, просто очень сильно проигрывает в скорости.
16 anatoly
 
27.10.16
10:47
(13) что то я этот "старый метод" еще год назад где-то в интернетах видел, код почти идентичный.

(14) а вот это верно - как раз год назад в 8.2 писал поддержку, используя "старый метод" и пришлось допиливать т.к. некоторые ответы от сайтов он вообще криво распарсивал...
17 mua thu
 
27.10.16
10:52
Спасибо! Попробую.)
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn