Имя: Пароль:
1C
1С v8
Можно ли на СКД сделать такое ?
0 onx1
 
04.09.17
13:50
Начальный запрос возвращает таблицу вида:
Организация, ЦеннаяБумага, Котировка (число или ноль).

Надо вывести его в отчет на СКД в виде таблицы, где колонки - группировка по Организации, строки - группировка по ЦеннойБумаге, ресурс - Котировка,
НО ТАК чтобы, если по конретной паре "Организация1, ЦеннаяБумага1" нет записи - в таблице бы выводилось "нет".

То есть проблема в том, чтобы как-то отличить наличие в изначальной таблице записи с нулевой котировкой от полного отсутствия такой записи.
1 1dvd
 
04.09.17
13:54
Можно
2 aka MIK
 
04.09.17
13:55
Нельзя
3 aka MIK
 
04.09.17
13:55
Без правки первоначального запроса разумеется )
4 Сильф
 
04.09.17
13:55
(0) Через условное оформление группировки попробуйте, с условием "Заполнено".
5 Вафель
 
04.09.17
14:01
У поля поставить флажок NULL
6 onx1
 
04.09.17
14:04
(4) Попробовал: заполнено выделяет только где есть конкретные цифры (0 и NULL - оно считает пустым)
(5) "Ингорировать значения NULL" ставил и так и так - не помогает.
(1) Как?
7 1dvd
 
04.09.17
14:05
(6) Запрос править
8 ELEA26
 
04.09.17
14:08
Если запрос править - то IsNull, если не править - то не знаю. Тоже послежу за темой :)
9 onx1
 
04.09.17
14:09
(7) Это то понятно.
Просто неужели СКД с такой понятной и довольно распространенной задачей справиться не в состоянии ?
10 Fragster
 
гуру
04.09.17
14:10
Прописать выражение ресурса Вида ЕстьNULL(Сумма(Ресурс),"Это NULL")
11 Fragster
 
гуру
04.09.17
14:10
результат: https://i.imgur.com/wfDVkz8.png
12 ELEA26
 
04.09.17
14:11
Сумма(Ресурс) null не выдаст же....
13 Fragster
 
гуру
04.09.17
14:12
еще формат у поля для нуля если задать, то вообще норм получается: https://i.imgur.com/gNyfyK4.png
14 Fragster
 
гуру
04.09.17
14:12
(12) ну долби дальше
15 Вафель
 
04.09.17
14:15
Чтобы отличить - нужно левое соединение делать: возможные пары и реальные количества
16 Fragster
 
гуру
04.09.17
14:16
(15) не нужно
17 Fragster
 
гуру
04.09.17
14:17
у меня текст запроса такой:
ВЫБРАТЬ
    "А1" КАК Строка,
    "Б1" КАК Колонка,
    0 КАК Ресурс

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

ВЫБРАТЬ
    "А2",
    "Б1",
    1

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

ВЫБРАТЬ
    "А1",
    "Б2",
    1
18 ELEA26
 
04.09.17
14:21
А где
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
    "А2",
    "Б2",
    NULL

Тоже выходит правильно?
Не на чем сейчас проверить.
19 Fragster
 
гуру
04.09.17
14:25
(18) да
20 ELEA26
 
04.09.17
14:34
А не. Виноват. Сумма null не считает, если хоть что-то есть. Если все измерение null - то да, будет null.
Виноват.
Щас на MS SQL затестил и понял где не понял :)
21 onx1
 
04.09.17
15:17
(10) за идею спасибо, но имелось ввиду что если "если по конретной паре нет записи - в таблице бы выводилось "нет".
То есть в начальной таблице нет записи: "А2", "Б2", NULL

Видимо в такой постановке задачу только на СКД не решить.
22 mistеr
 
04.09.17
15:26
(21) В выражении ресурса пропиши: если Количество(Котировка) = 0 то "нет" иначе Максимум(Котировка)
23 Fragster
 
гуру
04.09.17
15:26
(21) прочитай, что я пишу, еще раз. посмотри тексты запроса, картинки, которые получаются...
24 Вафель
 
04.09.17
15:27
(17) Оно конечно в запросе "гораздо лучше" текстом все создать )))
25 Fragster
 
гуру
04.09.17
15:33
(24) не понимаю, в чем претензия?
26 Вафель
 
04.09.17
15:41
Похоже на то как во времена 8.0 делали псевдо временные таблицы
27 onx1
 
04.09.17
15:55
(23) сорри, думал что (18) - это часть запроса

В вычисляемые поля я добавил поле Ресурс2=ЕстьNULL(Сумма(Ресурс),"Это NULL")
но когда добавляю это поле на закладку "Ресурсы" при запуске отчета возникает ошибка "Использование вложенных агрегатных функций не допускается"
28 onx1
 
04.09.17
16:05
Подскажи плиз, что ещё докрутить забыл?
29 Вафель
 
04.09.17
16:08
в вычисляемых полях нельзя использовать агрегатные функции типа СУММА.
пиши выражение прямо в ресурсах
30 onx1
 
04.09.17
16:19
(29) Блин, все время забываю, что выражение в ресурсе можно не только из списка выбирать, но и самому писать.
Fragster, Вафель спасибо Вам за помощь.
31 Хрыч
 
04.09.17
16:49
(21) зато легко можно сделать наоборот: условным оформлением проставлять 0, когда Котировка=0. А в случае NULL поле останется пустым
32 Хрыч
 
04.09.17
16:56
(29) Можно, только тогда в ресурсах в выражении надо указывать само вычисляемое поле, а не агрегатную функцию от него
33 onx1
 
04.09.17
17:24
(32) Полезное замечение, спасибо