Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
26 июн 2022, 08:31

Отчет по группировкам

Автор ls600, 21 ноя 2013, 08:43

0 Пользователей и 1 гость просматривают эту тему.

ls600

Доброго времени суток. Ситуация вот в чем создал отчет. При формировании отчета   появляются 2 пустые строки.  подскажите как их убрать?


Процедура КнопкаСформироватьНажатие(Кнопка)
Макет = ОтчетОбъект.ПолучитьМакет("Макет");
ТабДок = Новый ТабличныйДокумент;
    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ТабДок.Вывести(ОбластьЗаголовок);
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ТабДок.Вывести(ОбластьШапка);
ОбластьДетали = Макет.ПолучитьОбласть("Детали");
ТабДок.Вывести(ОбластьДетали);
ОбластьГруппа = Макет.ПолучитьОбласть("Группа");
ТабДок.Вывести(ОбластьГруппа);
ТабДок.НачатьАвтогруппировкуСтрок();

Запрос = Новый запрос;
Запрос.Текст= "ВЫБРАТЬ
              | ВнутренниеЗаказыОбороты.Номенклатура КАК Номенклатура,
              | ВнутренниеЗаказыОбороты.КоличествоПриход КАК Количество,
              | ВнутренниеЗаказыОбороты.ВнутреннийЗаказ.Дата КАК Дата,
              | ВнутренниеЗаказыОбороты.Заказчик КАК Заказчик
              |ИЗ
              | РегистрНакопления.ВнутренниеЗаказы.Обороты(, , , ) КАК ВнутренниеЗаказыОбороты
              |ГДЕ
              | ВнутренниеЗаказыОбороты.ВнутреннийЗаказ.Дата МЕЖДУ &ДатаН И &ДатаК
              | И ВЫБОР
              | КОГДА &Заказчик <> ЗНАЧЕНИЕ(Справочник.Подразделения.ПустаяСсылка)
              | ТОГДА ВнутренниеЗаказыОбороты.Заказчик = &Заказчик
              | ИНАЧЕ ИСТИНА
              | КОНЕЦ
              |
              |УПОРЯДОЧИТЬ ПО
              | Заказчик,
              | Дата
              |ИТОГИ
              | СУММА(Количество)
              |ПО
              | Заказчик";
 
Запрос.УстановитьПараметр("Заказчик",Подразделение);
Запрос.УстановитьПараметр("ДатаН",НачалоДня(ДатаН));
Запрос.УстановитьПараметр("ДатаК",КонецДня(ДатаК));

РезультатЗапроса = Запрос.Выполнить();

ВыборкаГруппа = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаГруппа.Следующий() Цикл
ОбластьГруппа.Параметры.Заполнить(ВыборкаГруппа);
ТабДок.Вывести(ОбластьГруппа,ВыборкаГруппа.Уровень());

ВыборкаДетальныеЗаписи = ВыборкаГруппа.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ОбластьДетали.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
ТабДок.Вывести(ОбластьДетали,ВыборкаДетальныеЗаписи.Уровень());
КонецЦикла;
КонецЦикла;


ТабДок.ОтображатьСетку = Ложь;
ТабДок.ТолькоПросмотр = Истина;
ТабДок.ЗакончитьАвтогруппировкуСтрок();
ТабДок.Показать();

КонецПроцедуры


andryscha92

Цитата: ls600 от 21 ноя 2013, 08:43
Доброго времени суток. Ситуация вот в чем создал отчет. При формировании отчета   появляются 2 пустые строки.  подскажите как их убрать?


Процедура КнопкаСформироватьНажатие(Кнопка)
Макет = ОтчетОбъект.ПолучитьМакет("Макет");
ТабДок = Новый ТабличныйДокумент;
    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ТабДок.Вывести(ОбластьЗаголовок);
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ТабДок.Вывести(ОбластьШапка);
ОбластьДетали = Макет.ПолучитьОбласть("Детали");
ТабДок.Вывести(ОбластьДетали);
ОбластьГруппа = Макет.ПолучитьОбласть("Группа");
ТабДок.Вывести(ОбластьГруппа);
ТабДок.НачатьАвтогруппировкуСтрок();

Запрос = Новый запрос;
Запрос.Текст= "ВЫБРАТЬ
              | ВнутренниеЗаказыОбороты.Номенклатура КАК Номенклатура,
              | ВнутренниеЗаказыОбороты.КоличествоПриход КАК Количество,
              | ВнутренниеЗаказыОбороты.ВнутреннийЗаказ.Дата КАК Дата,
              | ВнутренниеЗаказыОбороты.Заказчик КАК Заказчик
              |ИЗ
              | РегистрНакопления.ВнутренниеЗаказы.Обороты(, , , ) КАК ВнутренниеЗаказыОбороты
              |ГДЕ
              | ВнутренниеЗаказыОбороты.ВнутреннийЗаказ.Дата МЕЖДУ &ДатаН И &ДатаК
              | И ВЫБОР
              | КОГДА &Заказчик <> ЗНАЧЕНИЕ(Справочник.Подразделения.ПустаяСсылка)
              | ТОГДА ВнутренниеЗаказыОбороты.Заказчик = &Заказчик
              | ИНАЧЕ ИСТИНА
              | КОНЕЦ
              |
              |УПОРЯДОЧИТЬ ПО
              | Заказчик,
              | Дата
              |ИТОГИ
              | СУММА(Количество)
              |ПО
              | Заказчик";
 
Запрос.УстановитьПараметр("Заказчик",Подразделение);
Запрос.УстановитьПараметр("ДатаН",НачалоДня(ДатаН));
Запрос.УстановитьПараметр("ДатаК",КонецДня(ДатаК));

РезультатЗапроса = Запрос.Выполнить();

ВыборкаГруппа = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаГруппа.Следующий() Цикл
ОбластьГруппа.Параметры.Заполнить(ВыборкаГруппа);
ТабДок.Вывести(ОбластьГруппа,ВыборкаГруппа.Уровень());

ВыборкаДетальныеЗаписи = ВыборкаГруппа.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ОбластьДетали.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
ТабДок.Вывести(ОбластьДетали,ВыборкаДетальныеЗаписи.Уровень());
КонецЦикла;
КонецЦикла;


ТабДок.ОтображатьСетку = Ложь;
ТабДок.ТолькоПросмотр = Истина;
ТабДок.ЗакончитьАвтогруппировкуСтрок();
ТабДок.Показать();

КонецПроцедуры


в макете, когда задаешь имя для области(вероятно шапка или заголовок) удали пустые строки, либо когда задаешь имя для области не включай эти пустые строки в область.

ls600

пустых строк нету, вот сам макет
Добавлено: 21 ноя 2013, 10:30


разобрался, тема закрыта

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск