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

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) спасибо.

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