Имя: Пароль:
1C
1С v8
Парсим Структуру или что-то вроде этого
,
0 Sergio447
 
13.07.23
22:06
Доброго вечера. Пытаюсь достать из структуры значение, чтобы передать его в табличную часть, вот запрос

Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Услуги.Ссылка КАК Документ,
        |    СписокЗапросов.Данные КАК Количество
        |ИЗ
        |    РегистрСведений.СписокЗапросов КАК СписокЗапросов
        |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.Услуги КАК Услуги
        |        ПО СписокЗапросов.Документ = Услуги.Ссылка
        |ГДЕ
        |    Услуги.Ссылка = &Ссылка";
    
    Запрос.УстановитьПараметр("Ссылка",Объект.Документ);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ТЗХранилище = РезультатЗапроса.Выгрузить();
    СтрХранилище = ТЗХранилище;

    Для Каждого Стр Из СтрХранилище Цикл
        
        ПолучаемоеХранилище = Стр.Количество.Получить().Тело;    
        ЗаписьJSON = Новый ЗаписьJSON;            
        ЗаписьJSON.УстановитьСтроку();
        ЗаписатьJSON(ЗаписьJSON,ПолучаемоеХранилище);            
        ЗаписьJSON.Закрыть();
        Строка = Объект.ТЧ.Добавить();
        Строка.Документ = Стр.Документ;
        Строка.Количество = ?;

    КонецЦикла;

В отладчике вижу, что переменная ПолучаемоеХранилище содержит Тело, с типом Структура
в которой есть данный текст:

{"id":"112","count":10,"name":"\u0411\u0535\u033b\u0430\u0420\u0423\u0141\u024c"}

Вопрос как мне достать "count"?
Т.е мне нужно передать количество в табличную часть, как-то так Строка.Количество = "count"
2 Tatitutu
 
13.07.23
22:35
(1) Кто последний?
3 Asmody
 
13.07.23
23:01
(0) код сам писал или чатГПТ помог?
4 ass1c
 
13.07.23
23:39
Если "ПолучаемоеХранилище" действительно равно "{"id":"112","count":10,"name":"\u0411\u0535\u033b\u0430\u0420\u0423\u0141\u024c"}"

ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(ПолучаемоеХранилище);
Результат = ПрочитатьJSON(ЧтениеJSON);
    
Сообщить(Результат.count);
5 Sergio447
 
14.07.23
02:29
(4) Недопустимое имя свойства: '08234546547474757' для чтения json в объект структура
6 Гипервизор
 
14.07.23
05:25
(5) Тогда выполняйте чтение в соответствие.
7 Гипервизор
 
14.07.23
05:29
(5) Т.е. это ПрочитатьJSON(ЧтениеJSON, Истина);
8 Sergio447
 
14.07.23
07:13
(7) Прописал в соотсвествие, в итоге в Сообщить(Результат) получаю Соответствие. А нужно достать количество count
9 Гипервизор
 
14.07.23
07:23
(8) Глядя на сообщения (5) и (8) мне сложно поверить, что код в (0) писали вы. Вы серьёзно? Вам объяснить как обратиться к элементу коллекции?
10 Sergio447
 
14.07.23
08:08
(9) да
11 Гипервизор
 
14.07.23
08:11
(10) Ёжики зелёные.. Потрудитесь совместить (4) и (7).
12 Sergio447
 
14.07.23
12:33
(11) это я сделал, мне в сообщить как вывести count?
13 Мультук
 
гуру
14.07.23
12:38
14 Sergio447
 
14.07.23
12:44
(13) спасибо! Получилось, циклом разобрал)
15 Sergio447
 
14.07.23
16:23
Получилось да не до конца) Почему пишет значение не является значением объектного типа (Тело) ?
16 ass1c
 
14.07.23
16:39
В этом основная проблема "СписокЗапросов.Данные КАК Количество", .Данные КАК Количество. ...КАК Количество. Если бы здесь было написано по другому, то и остальных бы вопросов и проблем не возникло. Уловил?
17 Sergio447
 
14.07.23
16:54
(16) теперь недопустимое состояние потока записи Json
18 lubitelxml
 
14.07.23
17:11
(17) какой тип значения в СписокЗапросов.Данные КАК Количество?
19 Sergio447
 
14.07.23
17:17
(18) строка
20 lubitelxml
 
14.07.23
17:19
(19) перечитай и сделай как написали в (4) и (7)
21 Sergio447
 
14.07.23
18:49
(20) так и сделал, количество то получаю, но ошибка не проподает по потоку записи json
22 lubitelxml
 
14.07.23
18:55
(21) значит у тебя там json не в том формате, попробуй этот json проверить через любой ресурс в интернете - он тебе покажет валидность
23 lubitelxml
 
14.07.23
18:57
(21) можно конечно ЗаписатьБезОбработки(), но это не очень вариант, потом не распарсишь его. Ну и попробуй экранировать символы, чтобы "\u0411\u0535\u033b\u0430\u0420\u0423\u0141\u024c" превратилось в читаемые символы
24 lubitelxml
 
14.07.23
18:59
AdBlock убивает бесплатный контент. 1Сергей