Почему не работает автогруппировка колонок?
☑
0
BlackJack
12.02.13
✎
22:20
Вот такой простейший код:
&НаКлиенте
Процедура Сделать(Команда)
ТабДок=СделатьЭто();
ТабДок.Показать();
КонецПроцедуры
Функция СделатьЭто()
ОбъектОтчет = РеквизитФормыВЗначение("Отчет");
Макет = ОбъектОтчет.ПолучитьМакет("Макет");
ТабДок = Новый ТабличныйДокумент;
ТабДок.Очистить();
ТабДок.НачатьАвтогруппировкуКолонок();
Обл = Макет.ПолучитьОбласть("Строка|ВертШапка");
ТабДок.Вывести(Обл,1);
Для й=1 По 3 Цикл
Обл = Макет.ПолучитьОбласть("Строка|Подразделение");
ТабДок.Присоединить(Обл,2);
КонецЦикла;
Обл = Макет.ПолучитьОбласть("Строка|Продажа");
ТабДок.Присоединить(Обл,2);
Для й=1 По 3 Цикл
Обл = Макет.ПолучитьОбласть("Строка|Склад");
ТабДок.Присоединить(Обл,2);
КонецЦикла;
Обл = Макет.ПолучитьОбласть("Строка|Остаток");
ТабДок.Присоединить(Обл,2);
ТабДок.ЗакончитьАвтогруппировкуКолонок();
Возврат ТабДок;
КонецФункции
Макет тоже примитивный - одна горизонтальная секция и 5 вертикальных. Всё пустое. Не понимаю...
1
BlackJack
13.02.13
✎
10:12
Даже ещё проще
&НаКлиенте
Процедура Сделать(Команда)
ТабДок=СделатьЭто();
ТабДок.Показать();
КонецПроцедуры
Функция СделатьЭто()
ОбъектОтчет = РеквизитФормыВЗначение("Отчет");
Макет = ОбъектОтчет.ПолучитьМакет("Макет");
ТабДок = Новый ТабличныйДокумент;
Обл = Макет.ПолучитьОбласть("Строка|Колонка");
ТабДок.НачатьАвтогруппировкуКолонок();
ТабДок.Вывести(Обл,1);
ТабДок.Присоединить(Обл,2);
ТабДок.Присоединить(Обл,2);
ТабДок.ЗакончитьАвтогруппировкуКолонок();
Возврат ТабДок;
КонецФункции
И макет из одной строки и колонки.
2
НЕА123
13.02.13
✎
10:14
НачатьГруппуКолонок
?
3
BlackJack
13.02.13
✎
10:21
(2) Ну вообще-то есть в строке 14:
ТабДок.НачатьАвтогруппировкуКолонок();
4
Wobland
13.02.13
✎
10:22
а попробуй забабашить тупой копи-паст из СП
5
НЕА123
13.02.13
✎
10:24
(3)
хз. у меня с автогруппировкой не пошло, а явно - нормально.
6
Wobland
13.02.13
✎
10:28
Строки с минимальным уровнем в группу не объединяются.
ТабДок.Вывести(Обл,1);
ТабДок.Присоединить(Обл,2);
ТабДок.Присоединить(Обл,3);
так взлетело
7
BlackJack
13.02.13
✎
10:48
(6) Так работает, хоть и странно.
Ещё страньше, что я до этого другой пример делал, работало корректно с двумя уровнями.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший