Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Помогите подправить простенький отчет с колонками

Помогите подправить простенький отчет с колонками
Я
   ytex
 
01.11.16 - 13:52
Добрый день.

Есть простенький отчет:

&НаКлиенте
Процедура Сформировать(Команда)
    СформироватьНаСервере();
КонецПроцедуры

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

скрин отчета: http://s8.hostingkartinok.com/uploads/images/2016/11/ba25ca92397bb7af725e2d2bc0ccc23c.png

Подскажите пожалуйста, как решить проблему с задвоением результата и с пустыми строчками в областях колонок?
 
 
   Wirtuozzz
 
1 - 01.11.16 - 13:56
Самый простой способ - сделать отчет на СКД.
   ytex
 
2 - 01.11.16 - 14:06
(1) СКД пока не вариант. Хотелось бы поправить данный отчет.
   DrShad
 
3 - 01.11.16 - 14:18
а если область строки получать из макета в цикле по выборке?
   catena
 
4 - 01.11.16 - 14:30
Очистка незаполненяемых реквизитов избавит от повторений. Но вообще бред.
   youalex
 
5 - 01.11.16 - 14:33
Как вариант - в запросе ИТОГИ ПО СтатусОплаты 
При обходе группировки СтатусОплаты  - создаешь новый табдок, заполняешь его строками, пришпандориваешь к результирующему табдоку (через ВставитьОбласть())

Или делаешь ТЗ. При обходе группировки СтатусОплаты - создаешь колонку, которая будет идентифицировать этот статус, далее заполняешь (новый статус - соответственно с 0-й строки) Потом ТЗ выливаешь в Табдок
   ytex
 
6 - 02.11.16 - 13:05
(5) спасибо.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует