Имя: Пароль:
1C
1С v8
СКД и параметры в запросе
0 animatic
 
25.06.14
14:07
Подскажите можно ли сделать так, чтобы при не заполненном параметре запрос в СКД выполнялся без него, а при заполненном уже учитывался этот параметр. Или не парится и решить этот вопрос с помощью отбора? Не будет ли это потом сказываться на производительности выполнения запроса?
1 ViSo76
 
25.06.14
14:18
1. Отбор добавляет в запрос фильтрацию по этому не будет влиять на производительность.
2. С параметром в запросе можно решить так:
ГДЕ
  ( &МойПараметр = Неопределено Или ПолеТаблицы = &МойПараметр )

PS: К примеру Неопределено можно заменить на ( &МойПараметр = ЗНАЧЕНИЕ( Справочник.МойСправочник.ПустаяСсылка ) Или ...
2 animatic
 
25.06.14
14:30
(1) я к тому, что например, если параметр задан, то запрос выполнится по-идее быстрее, т.к. выберет сразу по нужному параметру (там виртуальные таблицы в основном). А при отборе, получится сделает по всему что можно, а потом уже отберет по нужному.
Попробую второй вариант.
3 catena
 
25.06.14
14:42
(2)"А при отборе, получится сделает по всему что можно, а потом уже отберет по нужному."
Он дурак чтоли?
4 animatic
 
25.06.14
14:45
(3) не знаю, давно не работал, пытаюсь вспомнить, что знал) поэтому тут и спросил, если не прав поправьте.
5 Wobland
 
25.06.14
14:46
(3) гляди на дурака:
compile error:  syntax error:
SELECT top 80 * FROM TOF_SUPPLIERS
            ^

не "топ", а 80
6 Wobland
 
25.06.14
14:46
(5) крыжик съехал. указует на 0
7 barrgand
 
25.06.14
14:49
(4) Возьми консоль, поставь отбор и посмотри на текст запроса - сразу все станет понятно.
8 ViSo76
 
25.06.14
14:49
Быстрее не будет. СКД достроит запрос в зависимости от отбора, по этому лишние данные не выберутся. СКД даже лишние поля, которые не используются в отчёте не выбирает из базы, хотя в наборе данных эти поля будут присутствовать.
9 animatic
 
25.06.14
14:52
(8) ну значит такое поведение было в до СКД-шную эру, откуда-то это в голове сидело же)) Если так, то не буду заморачиваться и отборами решу вопрос, спасибо за разъяснения.