Имя: Пароль:
1C
1C 7.7
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)
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший