Имя: Пароль:
1C
 
как преобразовать таблицу значенйи в json на платформе 8.3.6
0 Sova112
 
18.02.16
21:43
ТЗСтрока = setRulesParam.Добавить();
    
пишу вот так вот, говорит неврный тип    
ТЗСтрока.module    ="invoices";
ТЗСтрока.subject   =  2;
ТЗСтрока.unit      =  35;
ТЗСтрока.right     =  "sign";
ТЗСтрока.value     =  1;

      
      Запись = Новый ЗаписьJSON;

ЗаписатьJSON(Запись, setRulesParam, Новый НастройкиСериализацииJSON);
Запись.Закрыть();
1 mikeA
 
18.02.16
23:37
тз в json не сериализуется
сделай из неё массив тогда пролезет
типы там вроде все примитивные у тебя

если разбирать на том конце будет тоже 1С, можно запихнуть тз в хранилище значений с максимальным сжатием и передавать хранилище через xml. json тут не нужен - и так всё ужато. и ограничений на передаваемые типы гораздо меньше.
2 Ma3eIIa
 
19.02.16
01:41
(1) можно массив со соответствием или структурой. вот тебе и тз
3 mikeA
 
19.02.16
12:47
(2) так будут названия колонок в каждой строке. лучше двухмерный массив
4 Славен
 
19.02.16
13:14
(3) структуру , ключи названия колонок, значение массив = получаем тз
5 Sova112
 
19.02.16
23:50
а как сделать такую структуру на основе ТЗ?
6 Ma3eIIa
 
19.02.16
23:57
(3) почему же ? делаем структуру (шапка,строкиТЧ) где в шапке массив колонок. в строки тч массив структур с ключем имя реквизита. а значение значение колонки
7 Lexey_
 
19.02.16
23:58
(5) если (4), то обойти все колонки, выгружая каждую в массив и вставляя массив в структуру
8 Ma3eIIa
 
19.02.16
23:59
Типа так
МассивКолонок = Новый массив();
МассивКолонок.Добавить("Колонка1");

МассивСтроТЧ = Новый массив();
МассивСтроТЧ.Добавить(Новый Структура("Колонка1, ЗначениеКолонки", 123));

Структура("Шапка,СтрокиТЧ",МассивКолонок, МассивСтроТЧ);

Как то так
9 Ma3eIIa
 
20.02.16
00:13
(5)
//Разбор
    СтруктураПередачиДанных = Новый Структура();
    
    МассивШапка = Новый Массив();
    
    Для каждого СТрКолонка Из ТЗ.Колонки Цикл
    
        МассивШапка.Добавить(СТрКолонка.Имя);
    
    КонецЦикла;
    
    СтруктураПередачиДанных.Вставить("Шапка", МассивШапка);
    
    МассивСтрок = Новый Массив();
    Для каждого Стр Из ТЗ Цикл
        
        СтруктураСтроки = Новый Структура();
        
         Для каждого СТрКолонка Из ТЗ.Колонки Цикл
    
            СтруктураСтроки.Вставить(СТрКолонка.Имя,Стр[СТрКолонка.Имя]);
    
        КонецЦикла;
        
        МассивСтрок.Добавить(СтруктураСтроки);
        
    КонецЦикла;
    
    СтруктураПередачиДанных.Вставить("СтрокаТЧ", МассивСтрок);
    
    
    //Сбор
    МассивШапка =  СтруктураПередачиДанных["Шапка"];
    МассивСтрок =  СтруктураПередачиДанных["СтрокаТЧ"];
    
    ТЗсбор = Новый ТаблицаЗначений;
    
    Для каждого Колонка Из МассивШапка Цикл
    
           ТЗсбор.Колонки.Добавить(Колонка);
                     
    КонецЦикла;
    
    
    
    Для каждого ТекСтрока Из МассивСтрок Цикл
              новСтр = ТЗсбор.Добавить();
              Для каждого СТрКолонка Из ТЗсбор.Колонки Цикл
                     новСтр[СТрКолонка.Имя] = ТекСтрока[СТрКолонка.Имя];
              КонецЦикла;
    КонецЦикла;
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn