Имя: Пароль:
1C
1С v8
v8: Программно добавляемые колонки в табличном поле
0 ХочуСпец
 
03.04.12
09:32
Есть табличное поле
К табличному полю добавляются N*2 колонок:
Колонка11, Колонка12, .... ,КолонкаN1, КолонкаN2

Можно ли как то табличное для пользователя представить в виде:

Группа1                | ... | ГруппаN
Колонка11 | Колонка12  | ... | КолонкаN1 | КолонкаN2

Колонки сгруппировать
1 Fish
 
03.04.12
09:33
(0) Можно
2 ХочуСпец
 
03.04.12
09:34
(1) каким образом
3 Fish
 
03.04.12
09:36
(2) Через положение колонки
4 ХочуСпец
 
03.04.12
09:40
(3) я тоже думал так сделать:
но как создать группу?
Н-Р,

01.01.12              | ...
Колонка11 | Колонка12 | ...

Т.е. н-р, группа - это некоторая дата
5 ХочуСпец
 
03.04.12
09:42
Да, можно создать колонку Группа, без данных и поле ввода, настроить положение
но это через одно место наз-ся
6 ХочуСпец
 
03.04.12
09:55
Кому интересно:
При выводе строки для группировочной колонки ппоставил ВысотаЯчейки = 0
вроде нормально, хотя не знаю правильно ли
7 ХочуСпец
 
03.04.12
09:59
но есть одна проблемка:
заранее неизвестно сколько именно будет групп колонок
8 n koretsky
 
03.04.12
10:32
(7)
ниразу не проблема:
Выполнить("Текст");
сам не раз делал такое, когда наперед не известно сколько будет колонок, таблиц значений, массивов и тд.
9 ХочуСпец
 
06.04.12
16:00
(7) Хотел бы поднять тему, т.к. формирование дерева с группировочными колонками происходит очень криво

Для группировочной колонки ВысотаЯчейки = 0 (установил программно)

Но все группировочной колонки высота все равно <> 0
10 ХочуСпец
 
09.04.12
11:08
вверх
11 nuctoh
 
09.04.12
11:14
Дак а в чем проблема-то?

Колонки = ЭлементыФормы.ТабПоле.Колонки;
Колонки.Колонка11.Положение = ПоложениеКолонки.НаСледующейСтроке;
Колонки.Колонка12.Положение = ПоложениеКолонки.ВТойЖеКолонке;
//....
Колонки.Колонка1N.Положение = ПоложениеКолонки.ВТойЖеКолонке;

Колонки.Колонка21.Положение = ПоложениеКолонки.НаСледующейСтроке;
Колонки.Колонка22.Положение = ПоложениеКолонки.ВТойЖеКолонке;
//....
Колонки.Колонка2N.Положение = ПоложениеКолонки.ВТойЖеКолонке;
12 nuctoh
 
09.04.12
11:19
А чтобы скрыть группировочные ячейки, юзаешь событие ПриПолученииДанных() или ПриВыводеСтроки()

Для Каждого ТекКолонка Из ЭлементыФормы.ПодпискаНаОшибки.Колонки Цикл
   Если Лев(ТекКолонка.Имя, 6) = "Группа" Тогда
       ОформлениеСтроки.Ячейки[ТекКолонка.Имя].Видимость = Ложь;
   КонецЕсли;
КонецЦикла;
13 ХочуСпец
 
09.04.12
13:02
(11)
Именно так и сделал

(12) видимость колонки оставлять надо
14 ХочуСпец
 
09.04.12
13:03
(11) если есть время попробуй сделать что то подобное, увидишь в чем зихер
15 nuctoh
 
09.04.12
13:06
Расскажи, а то у меня именно так и сделано в одной обработке
16 ХочуСпец
 
09.04.12
13:11
Выглядит так:

Группировочная колонка
----------------------
Количество1  |  Количество2
----------------------------
ВОТ ЗДЕСТЬ ЕСТЬ НЕБОЛЬШАЯ ПОЛОСКА (мм = 2, хотя Высота ячейки колонки "Группировочная колонка") = 0 !!!

20 шт        | 30 шт
17 nuctoh
 
09.04.12
13:13
Дак вообще не надо играть высотой ячейки группировочной колонки - тупо скрой ее, зачем тебе надо оставлять видимость этой колонки, если ты все равно пытаешься свести ее высоту в ноль?
18 ХочуСпец
 
09.04.12
13:16
(17) Эта колонка - день недели
как я ее скрою от пользователя
19 nuctoh
 
09.04.12
13:19
Блин, ты похоже не читал то, что я написал. Или читал, но тяп-ляп. Скрыть нужно не КОЛОНКУ, а ЯЧЕЙКУ. Тогда в шапке останется нужный юзеру день недели, а саму таблицу паразитные пустые ячейки засорять не будут. Как скрыть ЯЧЕЙКУ я писал в посте (12)
20 ХочуСпец
 
09.04.12
13:20
(19) млин точно
спасибо, щас поюзаю
21 ХочуСпец
 
09.04.12
13:23
(19) получилось
еще раз спасибо
22 nuctoh
 
09.04.12
13:23
gl
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn