Имя: Пароль:
1C
 
Как в ручном макете сделать так чтобы появились плюсики у сгруппированных данных
0 mirvel
 
22.12.10
13:21
Если воспользоваться конструктором компановки данных то без проблем у группировок появляются плюсики (свернуть, развернуть группу)....а как сделать так чтобы при ручном выводе получались плюсики у группировки?
1 Wobland
 
22.12.10
13:22
НачатьАвтогруппировкуСтрок()
2 Wobland
 
22.12.10
13:27
Пример:
см. примеры метода Вывести объекта Табличный Документ и пример в описании объекта РезультатЗапроса.
(с) Сп
3 mirvel
 
22.12.10
13:33
(1)..я пробывал..но точно не уверен в каком месте добавлять ее! до вывода области или до формирования значений....одним словом не знаю куда вставить область.начать.......
вот мой код...

Процедура КнопкаСформироватьНажатие(Кнопка)
   запрос1 = Новый Запрос;
   запрос1.Текст = "ВЫБРАТЬ
   |Номенклатура2.Родитель как Родитель,
   |Номенклатура2.ссылка как ссылка
   |ИЗ
   |Справочник.Номенклатура КАК Номенклатура2
   |ГДЕ
   |Номенклатура2.ЭтоГруппа <> истина
   |СГРУППИРОВАТЬ ПО
   |родитель,
   |ссылка
   |";
   
   Результат = запрос1.Выполнить().Выбрать();
   
   //спр = Справочники.Номенклатура;
   //Результат = спр.Выбрать();
   ТабДок = Новый ТабличныйДОкумент;
   Макет = Отчеты.ОтчетПример.ПолучитьМакет("Макет");
   
   // Заголовок
   Область = Макет.ПолучитьОбласть("Заголовок");
   ТабДок.Вывести(Область);
   
   //Шапка
   Область = Макет.ПолучитьОбласть("Шапка");
   ТабДок.Вывести(Область);
   предыдущийродитель="";
   

   Пока Результат.Следующий() Цикл
       Область = Макет.ПолучитьОбласть("Строка");
       Область.Параметры.Родитель = Результат.Родитель;
       Область.Параметры.наименование = Результат.ссылка.наименование;
       Область.Параметры.цена =Результат.ссылка.цена;
       Область.Параметры.примечание =Результат.ссылка.примечание;
       ТабДок.Вывести(Область);
       предыдущийродитель=Результат.Родитель;
       
   КонецЦикла;
   
   ТабДок.ОтображатьСетку = Ложь;
   ТабДок.Защита = Ложь;
   ТабДок.ТолькоПросмотр = Ложь;
   ТабДок.ОтображатьЗаголовки = Ложь;
   ТабДок.Показать();
   
КонецПроцедуры
4 Wobland
 
22.12.10
13:35
пример хорошо читал (я, правда, не знаю, что там написано)?
ТабДок.НачатьАвтогруппировкуСтрок();
//в цикле
ТабДок.Вывести(Область, Выборка.Уровень());
ТабДок.ЗакончитьАвтогруппировкуСтрок();

принцип примерно таков
5 Wobland
 
22.12.10
13:37
и выборку делай примерно так:
ВыборкаПоРодителю=Запрос.Выполнить.Выбрать(ОбходРеузльтатаЗапроса.ПоГруппировкам);
и т.д.
6 mirvel
 
22.12.10
13:51
Чтото не получается....а в каком типе макета работает автогруппировка? в табличномдокументе или схема компановки или в другом?.....
или если не трудно можете линк дать на какой обработки или отчете (ручного типа) есть автогруппировка..
7 Wobland
 
22.12.10
13:52
(6) в ТД работает, в СКД нет
8 Wobland
 
22.12.10
13:54
вот тебе мой личный пример:


   Результат=Запрос.Выполнить();
   ТабДок=ЭлементыФормы.Вывод;
   ТабДок.НачатьАвтогруппировкуСтрок();
   ТабДок.Очистить();
   Макет=ПолучитьМакет("Печать");
   Область=Макет.ПолучитьОбласть("Заголовок");
   Область.Параметры.Заполнить(ЭтотОбъект);
   ТабДок.Вывести(Область);
   Область=Макет.ПолучитьОбласть("Строка");
   ВыборкаОбщийИтог=Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
   ВыборкаОбщийИтог.Следующий();
   ВыборкаПоКлиенту=ВыборкаОбщийИтог.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
   Номер=0;
   Пока ВыборкаПоКлиенту.Следующий() Цикл
       Если ВыборкаПоКлиенту.СуммаДолга<=0 Тогда
           Продолжить;
       КонецЕсли;
       Область=Макет.ПолучитьОбласть("СтрокаГруппировки");
       Область.Параметры.Заполнить(ВыборкаПоКлиенту);
       ТабДок.Вывести(Область, ВыборкаПоКлиенту.Уровень());
       Выборка=ВыборкаПоКлиенту.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
       Пока Выборка.Следующий() Цикл
           Если Выборка.СуммаДолга>0 Тогда
               Номер=Номер+1;
               Область=Макет.ПолучитьОбласть("Строка");
               Область.Параметры.Заполнить(Выборка);
               Область.Параметры.Номер=Номер;
               Область.Параметры.КонтактнаяИнформация=ПолучитьКонтактнуюИнформацию(Выборка.Клиент.ВладелецКарты);
               ТабДок.Вывести(Область, Выборка.Уровень());
           КонецЕсли;
       КонецЦикла;
   КонецЦикла;
   ТабДок.ЗакончитьАвтогруппировкуСтрок();
   ТабДок.Защита=Истина;
   ТабДок.Показать();
9 mirvel
 
22.12.10
14:12
(8) спасибо...протестим....
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс