Имя: Пароль:
1C
1С v8
Почему не работает автогруппировка колонок?
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) Так работает, хоть и странно.

Ещё страньше, что я до этого другой пример делал, работало корректно с двумя уровнями.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.