Имя: Пароль:
1C
1C 7.7
v7: Динамически добавить секцию в таблицу.
0 ermak0ff
 
07.10.20
10:19
Всем привет.

Подскажите, а можно ли добавить секцию в таблицу динамически?
Т.е. после того как таблица была отображена.

Ловлю клик пользователя в процедуре "ОбработкаЯчейкиТаблицы(Значение, Флаг, Таблица, Адрес)", и хочу добавить секцию, посредством "Таблица.ВывестиСекцию("НазваниеСекции")", однако получаю ошибку что "Секция не найдена".

Задумка вообще такая - хочу динамечески, по клику пользователя, менять график.
Такое вообще возможно без перерисовки всей таблицы?
1 ДенисЧ
 
07.10.20
10:20
Я боюсь тебя огорчить...
2 ermak0ff
 
07.10.20
10:23
(1) продолжай, мне уже ничего не страшно))
3 ДенисЧ
 
07.10.20
10:26
(2) Тогда перерисовывай таблицу ))
4 ermak0ff
 
07.10.20
10:29
(3) ну чтож, значит придется костылить))
5 Ёпрст
 
07.10.20
10:34
(0) штатно - нет, йоксель умеет, tabledoc - не помню
6 Злопчинский
 
08.10.20
00:18
(0) как ты себе представляешь? если таблица была отображена - то добавить - это всегда В КОНЕЦ - добавить - да, можно.
а вот ВСТАВИТЬ то есть между... ну в принципе можно... но очень геморно.. типа пробегаешься по всем ячейкам мокселя, от строки перед которой вставить и до конца - переносишь их в промежуточную таблицу.
выводишь секцию в другую промежуточную таблицу - считываешь ее ячейки все и переносишь во "вставку". потом из первой промежуточной доставляешь вниз все что надо.... - это я тупо не думая. насколько это будет кузяво и быстро - ХЗ. юзай йоксель.

а вообще - нахрена вставлять/добавлять? сформируй полностью всю таблицу со всеми выводами как надо.
потом ее йокселем сгруппируй с "плюсиками" как эксель - надо детализировать - развернуть плюсик...
7 Cthulhu
 
08.10.20
01:48
перерисовать и показать. покажет в том же месте.
8 Cthulhu
 
08.10.20
01:48
(7)+: ну т.е. визуально - обновит.
9 ermak0ff
 
08.10.20
12:01
(6) представлял так:
1. Выводим таблицу.
2. Пользователь кликает по некой группе.
3. В методе "ОбработкаЯчейкиТаблицы" ловлю это действие и добавляю секцию с графиком, с инфой по данной группе.
4. Пользователь кликает по некой группе.
5. В методе "ОбработкаЯчейкиТаблицы" ловлю это действие и обновляю секцию с графиком, т.е. перерисовываю только график.
и.т.д. с повторением шагов №4-5.

но на шаге №3 при вызове "Таблица.ВывестиСекцию("СекцияСГрафиком")" ловлю ошибку "Секция не найдена"

пришлось реализовать так:
1. Выводим таблицу.
2. Проверяем есть ли данные для построения графика:
   - если ДА, то выводим секцию с графиком и строим его;
   - если НЕТ, тогда не выводим секцию с графиком.
3. Пользователь кликает по некой группе.
4. В методе "ОбработкаЯчейкиТаблицы" ловлю это действие, вношу в таблицу значений информацию для построения графика.
5. Вызываю метод перерисовки таблицы, т.е. переходим к шагу №1.
и.т.д. с повторением шагов №1-5.
10 Злопчинский
 
08.10.20
13:32
(9) "В методе "ОбработкаЯчейкиТаблицы" ловлю это действие и добавляю секцию с графиком, с инфой по данной группе."
открывай тупо в новой таблице и все...
11 ermak0ff
 
08.10.20
13:45
(10) как вариант, но тогда будет хреновый UX, постоянное открытие нового окна таблицы, не есть гуд.
12 HawkEye
 
08.10.20
14:21
(9) проще обновить отчет целиком )))
13 tgu82
 
08.10.20
18:16
(11) Слушай (10), он в этом большой опыт имеет
14 Злопчинский
 
08.10.20
19:14
(11) зачем? если график нужен юзверю - жмакнул - увидел в отдельном окошеке/печформе график. с заголовками, нужнйо хренью прочей всякой. надо - напечатл его...
15 Злопчинский
 
08.10.20
19:15
выводить в простыную из 100 например номенклатур сразу 100 графиков - сымсла в этом нет.
а если единовременно пользователем осматиривается один график - то и выводить его КОГДА ОН НУЖЕН в отдельном окне.
16 Builder
 
08.10.20
22:59
А посмотри еще таблицу в режиме ввода данных, там несколько своих методов есть, может они помогут сделать красиво.
17 Ёпрст
 
08.10.20
23:09
(11) давно бы уже написал с помощью йокселя, хоть во фрейме, хоть в таблице на форме
18 Ёпрст
 
08.10.20
23:10
там есть и вставка секции и управление видимостью, можно скрывать/показывать
19 Bigbro
 
09.10.20
06:46
(9)
я бы ожидал другого поведения отчета.
либо отдельная область в отчете для графика текущей выбранной позиции - которая перерисовывается по обработкеячейкитаблицы
либо "проваливаемся" в обработке ячейки и выводим отдельное окно с подробной расшифровкой, графиком и прочая.
ломать макет каждый раз - не круто.
20 ermak0ff
 
09.10.20
09:00
(19) "ломать макет каждый раз - не круто."
так макет не ломается, график всегда под таблицей с данными.
т.е. сценарий такой:
1. Открывается таблица с данными.
2. Пользователь ее скролит и "натыкивает" данных для графика.
3. В самом конце, под таблицей с данными, его ждет график.

все вроде бы логично и прямолинейно.
21 Bigbro
 
09.10.20
09:41
не понимаю все равно.
вот ты вывел исходный график пусть он пустой.
потом натыкиваются цифры в таблице.
но график то у тебя уже выведен.
если надо чтобы обновлялся - так используй Обновление(1) для диаграммы и все?
22 ermak0ff
 
09.10.20
09:57
(21) "вот ты вывел исходный график пусть он пустой."
пустой график я не вывожу, график выводиться только тогда, когда есть данные.

допустим я его всегда вывожу.
"если надо чтобы обновлялся - так используй Обновление(1) для диаграммы и все?"
что есть "Обновление(1)"?
это какой то метод?
если да, как и на чем его дергать?
23 Ёпрст
 
09.10.20
10:51
(22) еще постов 100 и будешь йоксель изучать
24 Duke1C
 
20.10.20
21:17
+(23) Ну или OLAP)
25 trdm
 
20.10.20
21:27
(0) > Подскажите, а можно ли добавить секцию в таблицу динамически?
> Т.е. после того как таблица была отображена.

Если там просто текст и рамки можно просто нарисовать и подствить текст.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан