Имя: Пароль:
1C
1С v8
Макет отчета группировка колонок
,
0 ХочуСпец
 
27.07.12
14:07
Есть макет. В макете есть часть колонок которые должны быть свернуты. Для этого выделил часть колонок, которые должны быть объединены в группу, в конфигураторе Таблицы - Группы - Объединить группы - Вертикальная. В пользовательском режиме этой группировки нет.
Хотя если все тоже самое проделать в пользовательском режиме, то все отлично. В чем проблема может быть?
1 ХочуСпец
 
27.07.12
14:21
Может какое то свойство табличного документа?
Хотя отображать группы = Истина
2 ChAlex
 
27.07.12
14:32
Сделать то же самое при выводе макета. Как по-мне - это косяк 1С, но кто-может сказать что это фича, аналогично не выводился разделитель страниц. То бишь группировку, разделители и аналогичные вещи не переносятся с макета напряму в табличный документ, их нужно устанавливать именно в выводимом табличном документе
3 ХочуСпец
 
27.07.12
14:36
(2) что именно сделать программно?
ТабДок.ОтображатьГруппировки = Истина;
4 ChAlex
 
27.07.12
14:37
(3) - ну и не только. Еще указать что группировать
5 ХочуСпец
 
27.07.12
14:38
(4) НачатьАвтоГруппировкуКолонок()?
6 Oleg_Kag
 
27.07.12
14:43
Я так понял из вопроса надо это:

ТабДок.НачатьГруппуКолонок("На складе", Истина);
// ...
ТабДок.ЗакончитьГруппуКолонок(); // окончить группу "На складе"
7 ХочуСпец
 
27.07.12
14:46
(6) не сработало тоже
8 ChAlex
 
27.07.12
14:49
(5) ну вообще-то 2 пути, либо начатьавтогруппировку, либо для области ячеек метод Сгруппировать()
9 ChAlex
 
27.07.12
14:53
(7) - я предпочитаю автогруппировку - не нужно заморачиваться с уровнями. Но если у вас не работает, то скорее всего проблемы с параметрами
10 ХочуСпец
 
27.07.12
14:57
а если макет формирую средствами СКД?
11 ХочуСпец
 
27.07.12
15:08
(9) а можно маленький примерчик. Не выходит никак аленький цветочек
12 ХочуСпец
 
27.07.12
16:54
Макет = ПолучитьМакет("Макет");
   
   ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
   
//R1C2:R1C3 - диапозон двух колонок, которые надо сгруппировать
   ЭлементыФормы.ПолеТабличногоДокумента1.Область("R1C2:R1C3").Сгруппировать();
   
   ЭлементыФормы.ПолеТабличногоДокумента1.Вывести(ОбластьШапка);

Ошибка: Неприемлемая для операции область.

что не так?
13 ChAlex
 
27.07.12
17:04
(10) вот как раз если средствами СКД косяк и проявляется, ибо в обычных формах и обычных отчетах такого не замечал (хотя может просто только не попадал). В СКД все несколько сложнее. Приблизительный шаблон действий:

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

       СтандартнаяОбработка=Ложь;
       
       КомпановщикМакета=Новый КомпоновщикМакетаКомпоновкиДанных;
            МакетКомпановки=КомпановщикМакета.Выполнить(ЭтотОбъект.СхемаКомпоновкиДанных,КомпоновщикНастроек.Настройки);
       
       ПроцессорКомпоновки=Новый ПроцессорКомпоновкиДанных;
       ПроцессорКомпоновки.Инициализировать(МакетКомпановки);
       
       ПроцессорВывода=Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
       ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
       
       ПроцессорВывода.НачатьВывод();
       ЭлементРезультата=ПроцессорКомпоновки.Следующий();
       ПервыйЛистВыведен=Ложь;
       Пока ЭлементРезультата<>Неопределено Цикл
           Если ЭлементРезультата.ЗначенияПараметров.Количество()>0 Тогда
               Если  ПервыйЛистВыведен Тогда
                   ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
               Иначе
                   ПервыйЛистВыведен=Истина;
               КонецЕсли;
               
           КонецЕсли;
           ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
           ЭлементРезультата=ПроцессорКомпоновки.Следующий();
       КонецЦикла;
       ПроцессорВывода.ЗакончитьВывод();

Так например я выводил печать группировки на отдельном листе. В цикле вывода необходимо анализировать что когда делать. Да геморно. Скорее всего после вывода всего отчета нужно искать нужные области и группировать
14 ХочуСпец
 
27.07.12
17:06
(13) за скд отдельное спасибо, но вопрос пока не по скд (12)
15 ChAlex
 
27.07.12
17:39
(14) Ну тогда все гораздо проще. Сгруппировать можно либо строки, либо колонки. Поэтому для области нужно задавать .Область(,1,,3) - Формат RC - не совсем удобен
16 ChAlex
 
27.07.12
17:41
И опять же, сначала лучше сформировать документ, а потом задать область группировки
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс