Имя: Пароль:
1C
1С v8
Помощь в запросе. Количество(Различные())
🠗 (Волшебник 20.10.2017 10:54)
,
0 DmitryNN
 
20.10.17
10:46
Добрый день, коллеги.
Никак не могу решить задачу, нужно в итогах запроса прописать условие КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Регистратор), но при этом чтобы он посчитал только документы РТУ, т.е. отбор по типу. В Выборке много документов РТУ, которые могут дублироваться и документы Возврата.
Как это сделать?
1 perester
 
20.10.17
10:48
текст запроса?)
2 DrShad
 
20.10.17
10:49
(1) +1
начать с написания текста запроса
3 azernot
 
20.10.17
10:50
Как вариант

Само поле
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Выбор когда Регистратор Ссылка Документ.РТУ тогда Регистратор иначе Неопределено конец) -1

В подзапросе нужно объединение, в котором обязательнос присутствует Неопределено в поле Регистратор
4 DmitryNN
 
20.10.17
10:51
Это УПП 1.3, Универсальный отчет, который строится на основании регистра, текста запроса нет. Прописываю ресурс через строку итогов, например, вот так:
УниверсальныйОтчет.ДобавитьПолеРесурс("КоличествоОтгрузок", "ВЫБОР КОГДА ИсточникДанных.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг Тогда ИсточникДанных.Регистратор Иначе Значение(Документ.РЕализацияТоваровУслуг.ПустаяСсылка) Конец", "Кол-во отгрузок", "Количество(РАЗЛИЧНЫЕ(КоличествоОтгрузок))");
5 DrShad
 
20.10.17
10:53
(4) [текста запроса нет.]  да неужели!?
6 DmitryNN
 
20.10.17
10:54
(3) Вот я примерно так и пытаюсь, но всегда может быть так что Возврата нет, тогда может быть - 1 лишний
7 azernot
 
20.10.17
10:54
(4) Если в регистраторах есть не РТУ, то на 1 врать будет.
8 DmitryNN
 
20.10.17
10:57
(7) Но если нет возврата, тогда вместо 5 РТУ (допустим их там столько) он покажет 4
9 azernot
 
20.10.17
10:57
(6) Без переделывания запроса "ИсточникДанных" не взлетит. Нужно там принудительно добавлять ПустуюСсылку с нулевыми ресурсами и вычитать 1, или подзапрос с внутренним соединением с Документ.РТУ, где считать количество различных..
10 DmitryNN
 
20.10.17
11:00
(9) Ммм...Может быть так?...
Выбор когда МАКСИМУМ(ЧТОТО ГДЕ ТОЛЬКО ВОЗВРАТЫ) <> 0 Тогда -1 Иначе 0 Конец + Количество(РАЗЛИЧНЫЕ(КоличествоОтгрузок))
11 patria0muerte
 
20.10.17
11:00
А если например вот так:

УниверсальныйОтчет.ДобавитьПолеРесурс("КоличествоОтгрузок", "ВЫБОР КОГДА ИсточникДанных.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг Тогда ИсточникДанных.Регистратор Иначе NULL Конец", "Кол-во отгрузок", "Количество(РАЗЛИЧНЫЕ(КоличествоОтгрузок))");

?
12 patria0muerte
 
20.10.17
11:00
Вроде как NULL в расчет агрегатных функций не включается.
13 DmitryNN
 
20.10.17
11:03
(12) Красавчик)
ВЫБРАТЬ
    NULL КАК Поле1
ПОМЕСТИТЬ ВТ

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    "patria0muerte был прав"
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВТ.Поле1) КАК Поле1
ИЗ
    ВТ КАК ВТ

Результат 1