Написал отчет, с таким запросом:
"//{{ЗАПРОС(Сформировать)
|Период С НачДата По КонДата;
|ОбрабатыватьДокументы Все;
|Обрабатывать НеПомеченныеНаУдаление;
|ДокГ = Документ.ГашениеКупона.ТекущийДокумент;
|ДокН = Документ.РасходнаяРозничная.ТекущийДокумент;
|ИДСделки = Документ.ГашениеКупона.Купон.ИДСделки, Документ.РасходнаяРозничная.ИД;
|Сум = Документ.РасходнаяРозничная.Сумма;
|Возврат = Документ.РасходнаяРозничная.ЧекНаВозврат;
|Функция СуммаДок = Сумма(Сум) Когда (Возврат = 0);
|Функция СуммаВозврат = Сумма(Сум) Когда (Возврат = 1);
|Группировка ИДСделки Без упорядочивания Все;
|Группировка ДокН Без упорядочивания Все;
|";//}}ЗАПРОС
Запрос = СоздатьОбъект("Запрос");
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
Пока Запрос.Группировка(1) = 1 Цикл
Если (ПустоеЗначение(Запрос.ДокГ) = 1) Тогда
Продолжить;
КонецЕсли;
СуммаОбщая = Запрос.СуммаДок - Запрос.СуммаВозврат;
Таб.ВывестиСекцию("ИДСделки");
Пока Запрос.Группировка(2) = 1 Цикл
СуммаНакладной = Запрос.СуммаДок - Запрос.СуммаВозврат;
Таб.ВывестиСекцию("Накладные");
КонецЦикла;
КонецЦикла;
Проблема в следующем:
В таком варианте в отчет включаются непроведенные и непомеченные на удаление документы РасходнаяРозничная.
Документы ГашениеКупона вообще не проводятся, поэтому если в запросе поставить "ОбрабатыватьДокументы Проведенные", то отчет станет вообще пустой.
Как исключить из запроса непроведенные РасходныеРозничные?
И еще мне не нравится проверка
Если (ПустоеЗначение(Запрос.ДокГ) = 1) Тогда
Продолжить;
КонецЕсли;
при обходе результатов запроса.
Можно ли заменить эту проверку чем то в тексте запроса?