|
Отличие отбора от параметра в СКД | ☑ | ||
---|---|---|---|---|
0
Очень Любознательная
09.08.18
✎
03:25
|
Здравствуйте. При создании отчёта в СКД есть 2 вкладки - "отборы" и "параметры". В чём их разница? Нагуглила только отличие на уровне реализации и выполнения запросов к SQL, а чисто в практическом плане? Когда нужно создавать отбор, а когда - задавать параметр?
|
|||
1
perester
09.08.18
✎
04:01
|
Ну дык отличие на уровне реализации и выполнения запросов к SQL, а в практическом плане - скорость
Нужно создавать отбор когда это ресурс, а когда это измерение - задавать параметр Это не только в отчетах СКД, но и во всех запросах, рекомендую найти обработку "Консоль запросов" |
|||
2
Галахад
гуру
09.08.18
✎
04:36
|
Гм. Если отбор нужен постоянно, то наверное его стоит вынести в параметры, что бы пользователю было удобно и понятно. Например период.
|
|||
3
FIXXXL
09.08.18
✎
09:39
|
(0)
отборы - можно включать-выключать по желанию, параметры - нет |
|||
4
Fragster
гуру
09.08.18
✎
09:53
|
(1)(2)(3) все неправильно :)
|
|||
5
Fragster
гуру
09.08.18
✎
09:53
|
отборы можно добавлять в пользовательском режиме, параметры - только включать и выключать.
|
|||
6
Fragster
гуру
09.08.18
✎
09:54
|
ещё отборы можно "прятать" под представление, оставив только галочку использования, но почему-то этим редко кто пользуется
|
|||
7
Fragster
гуру
09.08.18
✎
09:55
|
параметры есть только у наборов данных-запросов, отборы у всех
|
|||
8
Fragster
гуру
09.08.18
✎
09:57
|
параметры, соответственно, действуют на запросы, отборы могут относиться не только к запросам (уровень отчета), но и к конкретным группировкам
|
|||
9
Deon
09.08.18
✎
10:01
|
У отбора есть "Вид сравнения", который пользователь может сам менять, а у параметра нету. Пичаль.
|
|||
10
segn
09.08.18
✎
10:01
|
Добавлю свои 5 копеек. Параметры задает разработчик, а добавлением отбора управляет пользователь.
Параметром можно сделать такую вещь: например создать параметр "Ед. изм." и для него сделать доступный список "руб.", "тыс. руб.". Пользователь может выбирать нужное значение из списка, и данные в отчете будут выходить в рублях или в тыс. рублях (надо в тексте запроса анализировать значение параметра и делить на 1000). Так же параметром можно управлять периодичностью. В отборах нет такой возможности. |
|||
11
AlvlSpb
09.08.18
✎
10:30
|
И мои 5 коп.
Отбор - это определенный фильтр на полученный результат действия, Параметр - это условие получения результата |
|||
12
Birmingem
09.08.18
✎
10:42
|
Объясните пожалуйста, почему в отчете на СКД такое?
Если у параметра (например Организация) поставить галочку "Включать в доступные поля" он конечно появляется в списке доступных полей на вкладке Отбор. Но если добавить этот параметр в список отборов, то при формировании отчета выходит ошибка "Ошибка в элементе отбора: глобальные элементы отбора обязательно должны использовать поля "ПараметрыДанных.Организация Равно "" Т.е. параметр нельзя засунуть в отбор? |
|||
13
segn
09.08.18
✎
10:56
|
(12) Нельзя
|
|||
14
FIXXXL
09.08.18
✎
11:15
|
(5) ну и как ты "выключишь" отбор по параметру, не извращаясь в тексте запроса?
|
|||
15
Fragster
гуру
09.08.18
✎
11:20
|
(14) открой для себя вкладку "компоновка данных" в конструкторе запросов
|
|||
16
Fragster
гуру
09.08.18
✎
11:22
|
она, конечно, лепит чушь, но, например, необязательные параметры виртуальных таблиц прям мышкой задаются.
ну, а если написать {ГДЕ Таблица.Поле = &Параметр} то параметр в СКД будет не обязательным и условие, если снять галку использования, включаться в текст запроса не бедут |
|||
17
FIXXXL
09.08.18
✎
11:26
|
(15) я говорил за "жесткую" параметризацию, без {}
|
|||
18
Fragster
гуру
09.08.18
✎
11:50
|
(17) необязательные параметры в СКД указываются в выражениях с фигурными скобками. как и отборы (если выключить автозаполнение)
|
|||
19
FIXXXL
09.08.18
✎
12:09
|
(18) "Параметры" в понятиях СКД, это обязательные параметры и ничего более. Т.е. у нас с тобой просто путаница в терминах :)
|
|||
20
Вафель
09.08.18
✎
12:11
|
(19) а необязательные параметры тогда что такое?
|
|||
21
Fragster
гуру
09.08.18
✎
12:18
|
(19) ой, всё. https://i.imgur.com/nleY0f2.png
|
|||
22
FIXXXL
09.08.18
✎
12:43
|
(21) и?
со снятой галкой - "Ошибка исполнения отчета." |
|||
23
Fragster
гуру
09.08.18
✎
12:45
|
(22) правильно. это значит, что возможность выключить (использование = авто + {} в запросе) предоставляется и является штатной возможностью, а не извращшением.
|
|||
24
FIXXXL
09.08.18
✎
12:50
|
(20) >>>(использование = авто + {} в запросе)
ну то есть без {} не выключишь? |
|||
25
Fragster
гуру
09.08.18
✎
12:51
|
(24) без {} выключишь, но будет ошибка запроса при использовании "авто"
|
|||
26
FIXXXL
09.08.18
✎
12:52
|
(20) и чем они отличаются от Отбора?
я не спорю, мне интересно :) |
|||
27
Fragster
гуру
09.08.18
✎
12:54
|
(26) тем, что попадание отбора в запрос совсем не обязательно
|
|||
28
Fragster
гуру
09.08.18
✎
12:54
|
отбор можно добавить свой
|
|||
29
Fragster
гуру
09.08.18
✎
12:54
|
пользователь может
|
|||
30
FIXXXL
09.08.18
✎
12:55
|
(27) что значит "попадание"?
|
|||
31
Cyberhawk
09.08.18
✎
12:56
|
(11) В обоих случаях фильтр применяется до получения данных из БД
|
|||
32
Fragster
гуру
09.08.18
✎
12:58
|
(31) отбор не всегда так применяется, а во вторых - есть еще наборы данных не запросы
|
|||
33
Fragster
гуру
09.08.18
✎
13:02
|
хотя с другой стороны я и параметры использовал в качестве передаваемых от пользователя в ПриКомпоновкеРезультата, чтобы свою форму не рисовать
|
|||
34
FIXXXL
09.08.18
✎
13:02
|
(32) давайте пока ограничимся Запросами :)
насколько вижу, секция {ГДЕ...} играет видимую роль только при отключении Автозаполнения она в явном виде описывает поля, которые доступны к отбору |
|||
35
FIXXXL
09.08.18
✎
13:03
|
(33) кодом можно развернуться, не спорю )
|
|||
36
Fragster
гуру
09.08.18
✎
13:04
|
(34) -> (16) это будет ПАРАМЕТР, а не отбор
|
|||
37
Cyberhawk
09.08.18
✎
13:05
|
(34) Эта секция не только описаывает доступные поля, но и указывает, что отбор отчета будет обязательно добавлен в эту секцию запроса
|
|||
38
Fragster
гуру
09.08.18
✎
13:06
|
у которого можно выключить использование - и условие пропадет.
А еще условие может быть не =, а целым выражением, которое пропадет, если выключить использование у всех параметров внутри него. |
|||
39
Cyberhawk
09.08.18
✎
13:07
|
Вообще с отборами попадос, когда несколько наборов данных. Тогда если в отборе отчета добавлено условие с полем дочернего набора, то соединение будет внутренним, а не левым )
|
|||
40
FIXXXL
09.08.18
✎
13:09
|
(36) сделайте Отбор при снятом Автозаполнении по полю, которого нет в секции {ГДЕ...}
|
|||
41
Fragster
гуру
09.08.18
✎
13:10
|
(40) для использования (16) не надо снимать автозаполнение
|
|||
42
FIXXXL
09.08.18
✎
13:13
|
(41) чем (16) отличается от указания Отбора?
|
|||
43
FIXXXL
09.08.18
✎
13:13
|
(42) + при установленном Автозаполнении
|
|||
44
Fragster
гуру
09.08.18
✎
13:15
|
(42) тем, что можно указать, например,
Выбор Когда Таблица.Регистратор Ссылка Документ.Документ Тогда Таблица.Поле = &Параметр Иначе Истина Конец и весь этот кусок будет выключен при снятии использования у параметра |
|||
45
Fragster
гуру
09.08.18
✎
13:16
|
кстати, при автозаполнении 1с сама создает необязательные параметры для периода, которые можно переопределить, использовав {} в нужных местах, и которые работают точно так же - через использование
|
|||
46
Fragster
гуру
09.08.18
✎
13:19
|
в виртуальных таблицах
|
|||
47
Вафель
09.08.18
✎
13:21
|
у отбора есть вид сравнения. а у параметра нет
|
|||
48
FIXXXL
09.08.18
✎
13:41
|
(44) всё, понял
просто не пользовался таким, сколь извращенные отчеты не писал :) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |