|
v7: Преобразование таблицы из линейной в прямоугольную | ☑ | ||
---|---|---|---|---|
0
brenli
16.02.20
✎
01:07
|
ВСем привет.
Есть таблица в которой 2 колонки: 1)Параметр 2)Значение И пример ёё заполнения Параметр Значение ААА 12 АВА 13 ССС 16 ААА 83 АВА 99 ССС 61 Нужно привести к виду чтобы получилось 3 колонки ААА АВА ССС 12 13 16 83 99 61 Подскажите максимально быстрый способ создания такой таблицы |
|||
1
Ненавижу 1С
гуру
16.02.20
✎
01:16
|
вопрос, а почему новая таблица как у вас, а не:
ААА АВА ССС 83 13 61 12 99 16 |
|||
2
brenli
16.02.20
✎
01:19
|
(1) потому что это распарсенный json
|
|||
3
Ненавижу 1С
гуру
16.02.20
✎
01:22
|
(2) распарсенный JSON он какой-то особенный, на вопрос есть что ответить?
|
|||
4
brenli
16.02.20
✎
01:28
|
(3) Особенный.
Парсим перечень товаров ответ такой "cis": "0000000000000000000000000000000", "gtin": "04059155704529", "tnVedEaes": "6401990000", "tnVedEaesGroup": "6405", "productName": "string", "emissionDate": "2019-01-23T08:24:21.048Z", "ownerInn": "583713710002", "ownerName": "string", "participantName": "string", "participantInn": "0000000000", "status": "INTRODUCED", "lastDocId": "string", "emissionType": "LOCAL" "cis": "0000000000000000000000000000000", "gtin": "04059155704529", "tnVedEaes": "6401990000", "tnVedEaesGroup": "6405", "productName": "string", "emissionDate": "2019-01-23T08:24:21.048Z", "ownerInn": "583713710002", "ownerName": "string", "participantName": "string", "participantInn": "0000000000", "status": "INTRODUCED", "lastDocId": "string", "emissionType": "LOCAL" "cis": "0000000000000000000000000000000", "gtin": "04059155704529", "tnVedEaes": "6401990000", "tnVedEaesGroup": "6405", "productName": "string", "emissionDate": "2019-01-23T08:24:21.048Z", "ownerInn": "583713710002", "ownerName": "string", "participantName": "string", "participantInn": "0000000000", "status": "INTRODUCED", "lastDocId": "string", "emissionType": "LOCAL" |
|||
5
МихаилМ
16.02.20
✎
01:29
|
(0) все зависит от разряженности матрицы.
если матрица заполнена и колонок больше 4 - то самый быстрый способ поколоночный, но сложно программируемый. иначе - построчный в, обернутый в исключения. |
|||
6
МихаилМ
16.02.20
✎
01:30
|
+(5)
построчный метод - проверка на проф пригодность. |
|||
7
Ненавижу 1С
гуру
16.02.20
✎
01:38
|
кстати в (4) кривой JSON - там поля повторяются
наверняка это был массив объектов, тогда вообще проблем не вижу сразу нужную таблицу рисовать |
|||
8
brenli
16.02.20
✎
01:43
|
(7) Поля и повторяются. json не кривой - конечно я привел пример не из запроса, а из документации, но запрос выводит именно списком.
И поля повторяются. Поэтому я и спросил про преобразование. |
|||
9
brenli
16.02.20
✎
01:43
|
(7) скрин сделать ответа?
|
|||
10
brenli
16.02.20
✎
01:55
|
(7) у вас есть парсер json?
|
|||
11
Ненавижу 1С
гуру
16.02.20
✎
02:14
|
(10) он встроен в 8.3, но у 7.7 я так понял
возьми любой онлайн парсер и проверьте на валидность откуда я решил про кривой? - поля повторяются - после значения нет запятой: "emissionType": "LOCAL" "cis": "0000000000000000000000000000000", |
|||
12
NorthWind
16.02.20
✎
08:31
|
Скопируем исходную таблицу, пусть это будет таблица1. Значение забьем единицей. Свернем по значению. Отсортируем по параметру. Получим параметр - это будет список всех полей результирующей таблицы, Макс (значение) - количество строк которые надо вставить в нее. Можно сразу наставлять пустых строк чтобы потом с этим не париться. Получили пустую таблицу. Дальше берём исходную таблицу (до копирования), идём по не в цикле и помещаем значения в соотв ячейку результата. Возможно понадобится ещё служебный список, где будем хранить для каждой колонки, сколько строк уже занято... Ничего сложного не вижу.
|
|||
13
SleepyHead
гуру
16.02.20
✎
08:36
|
(0) А что, свертку и траспонирование уже не изучают в школе юных программистов ?
|
|||
14
trdm
16.02.20
✎
08:45
|
||||
15
Злопчинский
16.02.20
✎
12:37
|
а не проще получить таблицу с треия строчками, в которых вложенные таблицы..? на 77 в ИТЗ такое одной строкой делается, что-то подобное м.б. и 8-ке есть..?
|
|||
16
ДедМорроз
16.02.20
✎
13:05
|
Так это,читая json,просто пишите по столбцам
Я не очень понимаю,зачем из предложенного файла вообще делать линейную таблицу. |
|||
17
brenli
16.02.20
✎
14:15
|
(16) Для работы. Насколько я знаю json в 7.7 просто текст
|
|||
18
brenli
16.02.20
✎
14:23
|
(13) нет ). Я программист самоучка. Матрицы когда то давно пробегал для самообразования
|
|||
19
Злопчинский
16.02.20
✎
14:38
|
(17) ээээ? а в других местах json - это не текст?!
|
|||
20
Провинциальный 1сник
16.02.20
✎
14:44
|
(0) Не надо так делать. Самое правильное - использовать индексированную таблицу из 1с++, и не хранить физически двумерную таблицу, а хранить в виде кортежа (ключ строки,ключ колонки,значение). По ключам строятся индексы, и далее легко программно сэмулировать двумерную таблицу. При этом не придется хранить воздух и быстродействие будет на порядок выше.
|
|||
21
brenli
16.02.20
✎
14:50
|
(19) я имею ввиду что в 1с его надо разбирать и анализировать посимвольно.
По индексам к массивам обращаться нельзя и т.д |
|||
22
brenli
16.02.20
✎
14:52
|
(20) спасибо попробую.
|
|||
23
brenli
16.02.20
✎
16:44
|
(15) можно подробнее что имеется ввиду?
|
|||
24
NorthWind
16.02.20
✎
16:46
|
(23) можно из таблицы сослаться на таблицу, т.е. в таблице может быть колонка типа "ТаблицаЗначений".
Допустим, строка таблицы Параметр ААА, Значения типа ТаблицаЗначений и в ней строки 12 и 83. |
|||
25
NorthWind
16.02.20
✎
16:49
|
а имеется в виду скорее всего вот это http://www.1cpp.ru/docum/html/IndexedTable.html#group
|
|||
26
NorthWind
16.02.20
✎
16:50
|
кстати, да, если можно юзать в проекте 1С++, то вариант идеальный, наверно
|
|||
27
brenli
16.02.20
✎
16:54
|
(19) (25) спасибо. Идея годная
|
|||
28
brenli
16.02.20
✎
16:55
|
(27) + (14)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |