Вход | Регистрация


1С:Предприятие ::

Метки: 

Отличие отбора от параметра в СКД

Я
   Очень Любознательная
 
09.08.18 - 03:25
Здравствуйте. При создании отчёта в СКД есть 2 вкладки - "отборы" и "параметры". В чём их разница? Нагуглила только отличие на уровне реализации и выполнения запросов к SQL, а чисто в практическом плане? Когда нужно создавать отбор, а когда - задавать параметр?
 
 
   perester
 
1 - 09.08.18 - 04:01
Ну дык отличие на уровне реализации и выполнения запросов к SQL, а в практическом плане - скорость
Нужно создавать отбор когда это ресурс, а когда это измерение - задавать параметр
Это не только в отчетах СКД, но и во всех запросах, рекомендую найти обработку "Консоль запросов"
   Галахад
 
2 - 09.08.18 - 04:36
Гм. Если отбор нужен постоянно, то наверное его стоит вынести в параметры, что бы пользователю было удобно и понятно. Например период.
   FIXXXL
 
3 - 09.08.18 - 09:39
(0)
отборы - можно включать-выключать по желанию, параметры - нет
   Fragster
 
4 - 09.08.18 - 09:53
(1)(2)(3) все неправильно :)
   Fragster
 
5 - 09.08.18 - 09:53
отборы можно добавлять в пользовательском режиме, параметры - только включать и выключать.
   Fragster
 
6 - 09.08.18 - 09:54
ещё отборы можно "прятать" под представление, оставив только галочку использования, но почему-то этим редко кто пользуется
   Fragster
 
7 - 09.08.18 - 09:55
параметры есть только у наборов данных-запросов, отборы у всех
   Fragster
 
8 - 09.08.18 - 09:57
параметры, соответственно, действуют на запросы, отборы могут относиться не только к запросам (уровень отчета), но и к конкретным группировкам
   Deon
 
9 - 09.08.18 - 10:01
У отбора есть "Вид сравнения", который пользователь может сам менять, а у параметра нету. Пичаль.
   segn
 
10 - 09.08.18 - 10:01
Добавлю свои 5 копеек. Параметры задает разработчик, а добавлением отбора управляет пользователь.
Параметром можно сделать такую вещь: например создать параметр "Ед. изм." и для него сделать доступный список "руб.", "тыс. руб.". Пользователь может выбирать нужное значение из списка, и данные в отчете будут выходить в рублях или в тыс. рублях (надо в тексте запроса анализировать значение параметра и делить на 1000). Так же параметром можно управлять периодичностью. В отборах нет такой возможности.
 
  Рекламное место пустует
   AlvlSpb
 
11 - 09.08.18 - 10:30
И мои 5 коп.
Отбор - это определенный фильтр на полученный результат действия, Параметр - это условие получения результата
   Birmingem
 
12 - 09.08.18 - 10:42
Объясните пожалуйста, почему в отчете на СКД такое?
Если у параметра (например Организация) поставить галочку "Включать в доступные поля" он конечно появляется в списке доступных полей на вкладке Отбор.
Но если добавить этот параметр в список отборов, то при формировании отчета выходит ошибка "Ошибка в элементе отбора: глобальные элементы отбора обязательно должны использовать поля "ПараметрыДанных.Организация Равно ""
Т.е. параметр нельзя засунуть в отбор?
   segn
 
13 - 09.08.18 - 10:56
(12) Нельзя
   FIXXXL
 
14 - 09.08.18 - 11:15
(5) ну и как ты "выключишь" отбор по параметру, не извращаясь в тексте запроса?
   Fragster
 
15 - 09.08.18 - 11:20
(14) открой для себя вкладку "компоновка данных" в конструкторе запросов
   Fragster
 
16 - 09.08.18 - 11:22
она, конечно, лепит чушь, но, например, необязательные параметры виртуальных таблиц прям мышкой задаются.
ну, а если написать
{ГДЕ
 Таблица.Поле = &Параметр}
то параметр в СКД будет не обязательным и условие, если снять галку использования, включаться в текст запроса не бедут
   FIXXXL
 
17 - 09.08.18 - 11:26
(15) я говорил за "жесткую" параметризацию, без {}
   Fragster
 
18 - 09.08.18 - 11:50
(17) необязательные параметры в СКД указываются в выражениях с фигурными скобками. как и отборы (если выключить автозаполнение)
   FIXXXL
 
19 - 09.08.18 - 12:09
(18) "Параметры" в понятиях СКД, это обязательные параметры и ничего более. Т.е. у нас с тобой просто путаница в терминах :)
   Вафель
 
20 - 09.08.18 - 12:11
(19) а необязательные параметры тогда что такое?
   Fragster
 
21 - 09.08.18 - 12:18
   FIXXXL
 
22 - 09.08.18 - 12:43
(21) и?
со снятой галкой - "Ошибка исполнения отчета."
   Fragster
 
23 - 09.08.18 - 12:45
(22) правильно. это значит, что возможность выключить (использование = авто + {} в запросе) предоставляется и является штатной возможностью, а не извращшением.
   FIXXXL
 
24 - 09.08.18 - 12:50
(20) >>>(использование = авто + {} в запросе)

ну то есть без {} не выключишь?
   Fragster
 
25 - 09.08.18 - 12:51
(24) без {} выключишь, но будет ошибка запроса при использовании "авто"
   FIXXXL
 
26 - 09.08.18 - 12:52
(20) и чем они отличаются от Отбора?

я не спорю, мне интересно :)
   Fragster
 
27 - 09.08.18 - 12:54
(26) тем, что попадание отбора в запрос совсем не обязательно
   Fragster
 
28 - 09.08.18 - 12:54
отбор можно добавить свой
   Fragster
 
29 - 09.08.18 - 12:54
пользователь может
   FIXXXL
 
30 - 09.08.18 - 12:55
(27) что значит "попадание"?
   Cyberhawk
 
31 - 09.08.18 - 12:56
(11) В обоих случаях фильтр применяется до получения данных из БД
   Fragster
 
32 - 09.08.18 - 12:58
(31) отбор не всегда так применяется, а во вторых - есть еще наборы данных не запросы
   Fragster
 
33 - 09.08.18 - 13:02
хотя с другой стороны я и параметры использовал в качестве передаваемых от пользователя в ПриКомпоновкеРезультата, чтобы свою форму не рисовать
 
 
   FIXXXL
 
34 - 09.08.18 - 13:02
(32) давайте пока ограничимся Запросами :)

насколько вижу, секция {ГДЕ...} играет видимую роль только при отключении Автозаполнения
она в явном виде описывает поля, которые доступны к отбору
   FIXXXL
 
35 - 09.08.18 - 13:03
(33) кодом можно развернуться, не спорю )
   Fragster
 
36 - 09.08.18 - 13:04
(34) -> (16) это будет ПАРАМЕТР, а не отбор
   Cyberhawk
 
37 - 09.08.18 - 13:05
(34) Эта секция не только описаывает доступные поля, но и указывает, что отбор отчета будет обязательно добавлен в эту секцию запроса
   Fragster
 
38 - 09.08.18 - 13:06
у которого можно выключить использование - и условие пропадет.
А еще условие может быть не =, а целым выражением, которое пропадет, если выключить использование у всех параметров внутри него.
   Cyberhawk
 
39 - 09.08.18 - 13:07
Вообще с отборами попадос, когда несколько наборов данных. Тогда если в отборе отчета добавлено условие с полем дочернего набора, то соединение будет внутренним, а не левым )
   FIXXXL
 
40 - 09.08.18 - 13:09
(36) сделайте Отбор при снятом Автозаполнении по полю, которого нет в секции {ГДЕ...}
   Fragster
 
41 - 09.08.18 - 13:10
(40) для использования (16) не надо снимать автозаполнение
   FIXXXL
 
42 - 09.08.18 - 13:13
(41) чем (16) отличается от указания Отбора?
   FIXXXL
 
43 - 09.08.18 - 13:13
(42) + при установленном Автозаполнении
   Fragster
 
44 - 09.08.18 - 13:15
(42) тем, что можно указать, например, 
Выбор Когда Таблица.Регистратор Ссылка Документ.Документ Тогда
  Таблица.Поле = &Параметр
Иначе Истина
Конец
  и весь этот кусок будет выключен при снятии использования у параметра
   Fragster
 
45 - 09.08.18 - 13:16
кстати, при автозаполнении 1с сама создает необязательные параметры для периода, которые можно переопределить, использовав {} в нужных местах, и которые работают точно так же - через использование
   Fragster
 
46 - 09.08.18 - 13:19
в виртуальных таблицах
   Вафель
 
47 - 09.08.18 - 13:21
у отбора есть вид  сравнения. а у параметра нет
   FIXXXL
 
48 - 09.08.18 - 13:41
(44) всё, понял
просто не пользовался таким, сколь извращенные отчеты не писал :)



Список тем форума
Рекламное место пустует   Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует