Имя: Пароль:
1C
1C 7.7
v7: Как решить вопрос с запросом.
0 zenon46
 
10.07.19
21:10
Доброго вечера, есть запрос, который выбирает документы ПКО и РКО по дням и выводит суммы на каждый день. Но есть одно НО, если в какой-то день, в выбранном периоде нет документов, то в результате запроса этой даты нет, а хотелось бы видеть эту дату с 0. Но я так понимаю, что с помощью запроса такое не реализовать?
PS как я вижу, придется совершить страшный грех и крутить запрос в цикле по каждому дню выборки.

    |Период с НачДата по КонДата;
    |Обрабатывать НеПомеченныеНаУдаление;
    |ОбрабатыватьДокументы Проведенные;
    |ДатаДокумента    = Документ.ПКО.ДатаДок,    
    |            Документ.РКО.ДатаДок;
    |Касса            = Документ.ПКО.Касса,
    |            Документ.РКО.Касса;
    |СуммаДокументаПКО= Документ.ПКО.СуммаВзаиморасчетов;
    |СуммаДокументаРКО= Документ.РКО.СуммаВзаиморасчетов;
    |ФирмаДокумента   = Документ.ПКО.Фирма,
    |            Документ.РКО.Фирма;
    |КонтрДокумента  =  Документ.ПКО.Контрагент,
    |            Документ.РКО.Контрагент;    
    |Группировка День;
    |Функция СуммаДокументаПК=Сумма(СуммаДокументаПКО);
    |Функция СуммаДокументаРК=Сумма(СуммаДокументаРКО);
    |Условие(ФирмаДокумента = ВбрФирма);
    |Условие(Касса = ВбрКасса);
    |Без Итогов;
1 Злопчинский
 
10.07.19
21:24
имхо нет, только на уровне обработки результатов запроса.
2 vcv
 
10.07.19
21:52
А для группировки День разве не работает модификатор Все ВходящиеВЗапрос. Или как оно там. Смотрите синтакс-помошник по Группировка.
3 MWWRuza
 
гуру
10.07.19
22:12
+(1)В принципе, не сложно реализовать при желании.
4 HawkEye
 
11.07.19
00:02
(0) ты же результат будешь выводить куда-то (в печатную форму, в ТЗ, в таб.часть документа), все равно будет цикл перебора?
запоминай день который вывел, как только в следующей строке появляется новый день - сравнивай с предыдущим значением, если разница больше 1, значит есть дни без документов...  - добавляй их...
5 Злопчинский
 
11.07.19
00:10
(2) очень сомневаюсь
6 АгентБезопасной Нацио
 
11.07.19
05:06
(0)
1.уложить в сз все даты за период.
2.уложить сз во временную таблицу
3.прямым запросом достать необходимый результат.
7 Bigbro
 
11.07.19
05:11
выводишь же наверняка в отчет какой то. храни предыдущую дату в переменной в цикле по группировке День проверяй, если перескочил больше чем на 1 - выводи нужное количество пустых строчек с нулем и дальше едем.
если из запроса выгружается ТЗ и дальше куда то едет в обработку - то наверное лучше (6).
8 vcv
 
11.07.19
05:41
(5) Работает. Достаточно |Группировка День Все; и в запросе будут все даты, каждый день в периоде запроса.
9 vcv
 
11.07.19
05:43
По крайней мере у меня на sql работает, за файловые не скажу.
10 zenon46
 
11.07.19
09:06
(8) блин, работает! Спасибо!
11 zenon46
 
11.07.19
09:07
"Все" - в запрос выводятся все значения, и нулевые тоже (используется для группировок по справочникам и временных группировок).
12 Злопчинский
 
11.07.19
11:10
(8) спсб, учту
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.