|
как преобразовать таблицу значенйи в 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)
//Разбор
СтруктураПередачиДанных = Новый Структура();
МассивШапка = Новый Массив();
Для каждого СТрКолонка Из ТЗ.Колонки Цикл
МассивШапка.Добавить(СТрКолонка.Имя);
КонецЦикла;
СтруктураПередачиДанных.Вставить("Шапка", МассивШапка);
МассивСтрок = Новый Массив();
Для каждого Стр Из ТЗ Цикл
СтруктураСтроки = Новый Структура();
Для каждого СТрКолонка Из ТЗ.Колонки Цикл
СтруктураСтроки.Вставить(СТрКолонка.Имя,Стр[СТрКолонка.Имя]);
КонецЦикла;
МассивСтрок.Добавить(СтруктураСтроки);
КонецЦикла;
СтруктураПередачиДанных.Вставить("СтрокаТЧ", МассивСтрок);
//Сбор
МассивШапка = СтруктураПередачиДанных["Шапка"];
МассивСтрок = СтруктураПередачиДанных["СтрокаТЧ"];
ТЗсбор = Новый ТаблицаЗначений;
Для каждого Колонка Из МассивШапка Цикл
ТЗсбор.Колонки.Добавить(Колонка);
КонецЦикла;
Для каждого ТекСтрока Из МассивСтрок Цикл
новСтр = ТЗсбор.Добавить();
Для каждого СТрКолонка Из ТЗсбор.Колонки Цикл
новСтр[СТрКолонка.Имя] = ТекСтрока[СТрКолонка.Имя];
КонецЦикла;
КонецЦикла;
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший