Помогите подправить простенький отчет с колонками
☑
0
ytex
01.11.16
✎
13:52
Добрый день.
Есть простенький отчет:
&НаКлиенте
Процедура Сформировать(Команда)
СформироватьНаСервере();
КонецПроцедуры
&НаСервере
Процедура СформироватьНаСервере()
ТабДок = ЭтотОбъект.ТабДок;
ТабДок.Очистить();
Макет = РеквизитФормыВЗначение("Отчет").ПолучитьМакет("Макет");
ОбластьШапки = Макет.ПолучитьОбласть("Шапка");
ТабДок.Вывести(ОбластьШапки);
ОбластьСтроки = Макет.ПолучитьОбласть("Строка");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СчетНаОплатуПокупателю.Ссылка,
| СчетНаОплатуПокупателю.СтатусОплаты
|ИЗ
| Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
|ГДЕ
| СчетНаОплатуПокупателю.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
| И СчетНаОплатуПокупателю.СтатусОплаты <> ЗНАЧЕНИЕ(Перечисление.СтатусОплатыСчетаПокупателю.ПустаяСсылка)";
Запрос.УстановитьПараметр("ДатаНачала", ЭтотОбъект.ПериодОтчета.ДатаНачала);
Запрос.УстановитьПараметр("ДатаОкончания", ЭтотОбъект.ПериодОтчета.ДатаОкончания);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
СтатусОплаты = ВыборкаДетальныеЗаписи.СтатусОплаты;
Если СтатусОплаты = Перечисления.СтатусОплатыСчетаПокупателю.Оплачен Тогда
ОбластьСтроки.Параметры.СсылкаОпл = ВыборкаДетальныеЗаписи.Ссылка;
ИначеЕсли СтатусОплаты = Перечисления.СтатусОплатыСчетаПокупателю.ОплаченЧастично Тогда
ОбластьСтроки.Параметры.СсылкаЧастОпл = ВыборкаДетальныеЗаписи.Ссылка;
ИначеЕсли СтатусОплаты = Перечисления.СтатусОплатыСчетаПокупателю.НеОплачен Тогда
ОбластьСтроки.Параметры.СсылкаНеОпл = ВыборкаДетальныеЗаписи.Ссылка;
ИначеЕсли СтатусОплаты = Перечисления.СтатусОплатыСчетаПокупателю.Отменен Тогда
ОбластьСтроки.Параметры.СсылкаОтм = ВыборкаДетальныеЗаписи.Ссылка;
КонецЕсли;
ТабДок.Вывести(ОбластьСтроки);
КонецЦикла;
КонецПроцедуры
скрин отчета:
Подскажите пожалуйста, как решить проблему с задвоением результата и с пустыми строчками в областях колонок?
1
Wirtuozzz
01.11.16
✎
13:56
Самый простой способ - сделать отчет на СКД.
2
ytex
01.11.16
✎
14:06
(1) СКД пока не вариант. Хотелось бы поправить данный отчет.
3
DrShad
01.11.16
✎
14:18
а если область строки получать из макета в цикле по выборке?
4
catena
01.11.16
✎
14:30
Очистка незаполненяемых реквизитов избавит от повторений. Но вообще бред.
5
youalex
01.11.16
✎
14:33
Как вариант - в запросе ИТОГИ ПО СтатусОплаты
При обходе группировки СтатусОплаты - создаешь новый табдок, заполняешь его строками, пришпандориваешь к результирующему табдоку (через ВставитьОбласть())
Или делаешь ТЗ. При обходе группировки СтатусОплаты - создаешь колонку, которая будет идентифицировать этот статус, далее заполняешь (новый статус - соответственно с 0-й строки) Потом ТЗ выливаешь в Табдок
6
ytex
02.11.16
✎
13:05
(5) спасибо.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший