Имя: Пароль:
1C
1C 7.7
v7: Как сделать двумерную группировку в индексированной таблице с иерархией?
, ,
0 Chai Nic
 
21.07.22
09:07
Есть индексированная таблица из 1с++, с колонками "ГруппаНоменклатуры","ВидКонтрагента","Период","Сумма".
Нужно развернуть её в таком виде, чтобы по строкам была иерархия групп номенклатуры, следующим уровням - виды контрагента. А в колонках чтобы были периоды. Соответственно на пересечении - сумма.

В восьмерочном СКД это делается элементарно. У индексированной таблицы тоже есть возможность группировки, в том числе и по иерархии справочника. Это работает. Но непонятно в этом случае, как привязать второе измерение - колонки "Период". То есть если периоды включены в группировки строк - то всё элементарно, а вот как сделать группировку по периоду, чтобы потом её вывести в колонках?

Кто-нибудь подобное делал, подскажите элегантное решение?!
1 Chai Nic
 
21.07.22
09:25
В голову приходит только разбивать исходную таблицу на несколько таблиц по числу периодов и группировать каждую по отдельности, затем разворачивать их, убирая тзПотомки, и при рекурсивном выводе основной сгруппированной таблицы вытаскивать значения из таблиц по периодам. Но это как-то коряво и костыльно..(
2 Злопчинский
 
21.07.22
09:43
не надо морочиться. Подсунь !!плоскую!! ТЗ без всяких группировок в универсальный отчет по ТЗ и выводи шахматкой или обычным образом: https://infostart.ru/public/14794/
только не помню - выложенная версия у меня с поддержкой передачи параметров группировок для вывода (чтобы не задавать их интерактивно) или без. если без - то после обеда вернусь, вылоожу/пришль тебе обновленную. а пока отработай интерактивно
3 Злопчинский
 
21.07.22
09:43
Пустые периоды в ТЗ не обязательны, при построении шахматки отчет сам все выведет где надо пусто.
4 Ёпрст
 
21.07.22
10:07
(0)
https://www.1cpp.ru/docum/html/IndexedTable.html#group

а так, используй класс от A'Dirks ИтогиПоГруппировкам, там гораздо проще и оно само тебе шахматку лепит какую угодно.
5 Ёпрст
 
21.07.22
10:07
6 АгентБезопасной Нацио
 
21.07.22
10:11
(5) Только все ссылки на Р(ога)иК(опыта) теперь ведут на садовниковский магазин "Зверушка"
7 Ёпрст
 
21.07.22
10:13
(6) там есть и ert от класса в последнем посте
8 Ёпрст
 
21.07.22
10:13
ну и вэбархив помнит всё, в том числе, все архивы.
9 Ёпрст
 
21.07.22
10:15
10 Chai Nic
 
21.07.22
10:16
(4) Это я читал. Проблема в том, что если в Группировать указано "ГруппаНоменклатуры&,Период", то ",Период" игнорируется. Если же без иерархии справочника, то есть без "&" - то работает. То есть, если в строке группировки указано хоть одно поле с иерархией справочника - другие поля этого выражения не учитываются при построении индекса группировки.
А надо именно с иерархией. Причем, внутри неё чтобы была вторая группировка "ВидКонтрагента".
11 Ёпрст
 
21.07.22
10:17
(10) иерархия да, не благодарное дело.
12 Злопчинский
 
21.07.22
10:18
В (3) самый простой вариант. Затраты на получение готового результата 15 мин
Но нам надо помучиться?
13 Ёпрст
 
21.07.22
10:19
(12) там есть иерархия групп справочника?
14 Chai Nic
 
21.07.22
10:20
(12) Там не так просто, я для локализации вопроса сильно упростил задачу в (0).
15 Chai Nic
 
21.07.22
10:21
(11) Зато заказчики её очень любят( Говорят "сделай как в восьмерке"
16 Ёпрст
 
21.07.22
10:40
(10) точно не помню за модификаторы, там еще и * была..И на счет иерархии, тоже не помню, как оно там было :)
17 Chai Nic
 
21.07.22
10:43
(16) * это если не требуется учитывать представление при сортировке, используется голый идентификатор, для ускорения. На логику не влияет.
18 Ёпрст
 
21.07.22
10:48
(17) ну короче, тебе придётся при выводе по группировке бегать не по ИТЗ, а по списку второй группировке (периодам) ..если не нашел - пустышка.

Вот еще, из древнего
вывод ИТЗ с иерархией по Номенклатуре и шахматкой по Складам в mxl

там предлагается 2 итз лепить
19 Chai Nic
 
21.07.22
14:03
(18) Всё сделал как написал в (1). Но жаль конечно, что функциональность группировок недоработана в ИТЗ. Это бы многое упрощало. Спасибо за помощь, особенно за (2) - пригодится.
20 Злопчинский
 
21.07.22
14:20
(13) иерархии групп на полную вложенность - нет. Автор в (0) полную иерархию вроде и не требует. Там упоминается только одна группа номенклатуры
Если нужно вывести с полной иерархией - в плоской тз прописывается кол-во колонок по уровню вложенности групп. Мне этого хватало.
21 Chai Nic
 
21.07.22
14:25
(20) Не, как раз и надо группы вывести в полной иерархии, с итогами до корня. Ну в общем сделал.
22 Злопчинский
 
21.07.22
14:29
(21) я в (20) делал.
Смысл того что по ссылке - быстро наваять вменяемый вывод без геморроя. А потом, если отчёт утрясется и покажет свою живучесть - переписываем с бриджем и леди...
23 Dolly_EV
 
04.08.22
14:44
(0)(18) А вот окончательный вариант того древнего))
Помнится, допилил до идеального состояния

https://disk.yandex.ru/d/F5_zDu0p62PdDA
24 Злопчинский
 
04.08.22
18:25
(23) и что со всем этим делать?
25 trad
 
04.08.22
21:44
(15) ну так если есть восьмерка, сделай отчет на восмерке
Донные тащи из семерки через ВИД
26 trad
 
04.08.22
21:45
*данные
27 Chai Nic
 
04.08.22
22:07
(25) Ну нет, внешние источники для задачи это гемор. Структура базы меняется, вручную парсить dds?
Да и данные могут быть не в готовых таблицах, а предварительно рассчитываться по определенному семерка-специфичному алгоритму, который переписывать ещё больший гемор.
Единственное, что напрашивается - это через OLE из восьмерки подключаться к семерочной базе, и получать некую сериализованную таблицу, которую уже в восьмерке через СКД можно крутить всяко. Но OLE штука нестабильная и капризная.
28 Ёпрст
 
04.08.22
22:14
(27) подымаешь в снеговике примитивный вэбсервер, который по запросу получает плоскую табличку, пихает её в скд, на выходе табличный док записывай в моксель\xls с группировками и отдавай взад.. в клюшках обращайся к этому вэбсервису, это если не ком.
29 Ёпрст
 
04.08.22
22:15
Ну или кристал репорт юзать  - там любые кубики сразу
30 Chai Nic
 
04.08.22
22:43
(28) Плоская табличка это хорошо, но где тут иерархия? Придется ещё и справочники синхронизировать для этого, с иерархией.
31 Ёпрст
 
04.08.22
22:58
(30) точна, всё время забываю про твою иерархию..
:)

в общем, бросай клюшки