|
СКД: как не учитывать свой параметр, если он не задан? | ☑ | ||
---|---|---|---|---|
0
ANDRU48
12.09.14
✎
09:32
|
Сделал свой параметр, как сделать, чтобы он не учитывался, если не задан.
|
|||
1
wms
12.09.14
✎
09:36
|
выбор
|
|||
2
wms
12.09.14
✎
09:37
|
ВЫБРАТЬ
ВЫБОР КОГДА &параметр = 0 ТОГДА "не задан" ИНАЧЕ &параметр КОНЕЦ КАК Поле1 |
|||
3
mehfk
12.09.14
✎
09:38
|
Почему бы не использовать отбор?
|
|||
4
NoiseRND
12.09.14
✎
09:39
|
В запросе конструкция в фигурных скобках {Где Параметр =&Параметр}
Но лучше отбор! |
|||
5
ANDRU48
12.09.14
✎
09:50
|
Отбор это строка, пользователям неудобно набирать строку и некоторые не знают чего набирать, проще галочки на форме.
Сейчас стоит как отбор и передается через галочки, но есть вариант, что пользователь может удалить отбор или поставить сравнение не то, поэтому решил через параметр попробовать. |
|||
6
ANDRU48
12.09.14
✎
10:10
|
или отбор сделать невидимым
|
|||
7
Defender aka LINN
12.09.14
✎
10:32
|
"Отбор это строка" - лошто?
"некоторые не знают чего набирать, проще галочки на форме" - а у отбора галочек нет, да... "есть вариант, что пользователь может удалить отбор или поставить сравнение не то" - пользователь может и должен ставить что хочет. |
|||
8
LionHeart_spg
12.09.14
✎
10:40
|
(0) В модуле отчета в процедуре ОбработкаПроверкиЗаполнения()
Если Парам1 Тогда Для каждого ЭлементОтбора Из КомпоновщикНастроек.Настройки.Отбор.Элементы Цикл Если ТипЗнч(ЭлементОтбора) = Тип("ГруппаЭлементовОтбораКомпоновкиДанных") Тогда Продолжить КонецЕсли; Если Строка(ЭлементОтбора.ЛевоеЗначение) = "Парам1" Тогда ЭлементОтбора.Использование = истина; ЭлементОтбора.ПравоеЗначение = Истина; КонецЕсли; КонецЦикла; Иначе Для каждого ЭлементОтбора Из КомпоновщикНастроек.Настройки.Отбор.Элементы Цикл Если ТипЗнч(ЭлементОтбора) = Тип("ГруппаЭлементовОтбораКомпоновкиДанных") Тогда Продолжить КонецЕсли; Если Строка(ЭлементОтбора.ЛевоеЗначение) = "Парам1" Тогда ЭлементОтбора.ПравоеЗначение = истина; ЭлементОтбора.Использование = ложь; КонецЕсли; КонецЦикла; КонецЕсли; |
|||
9
LionHeart_spg
12.09.14
✎
10:41
|
(8) + таким образом проверяешь все свои параметры и вкл. выкл. их
|
|||
10
LionHeart_spg
12.09.14
✎
10:43
|
Если вопрос именно по параметру, тогда там же
Если ЗначениеЗаполнено(Архив) Тогда КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Архив",Архив); КонецЕсли; |
|||
11
OnCheck
12.09.14
✎
10:46
|
с отбором медленнее чем параметром ИМХО
|
|||
12
OnCheck
12.09.14
✎
10:48
|
(0) можно добавить еще один парметр "ПараметрНеУказан" и указывать его в истина перед формирвоанием отчета.
а во всех условиях запроса эти параметры проверять через ИЛИ |
|||
13
barrgand
12.09.14
✎
10:52
|
(11) А вот это лучше не слущать...
|
|||
14
barrgand
12.09.14
✎
10:52
|
(13) слущать = слушать
|
|||
15
OnCheck
12.09.14
✎
10:54
|
(13) можно не слушать. но я проверял.
|
|||
16
Defender aka LINN
12.09.14
✎
11:08
|
(11) Бред не неси
(15) И каким же образом? |
|||
17
OnCheck
12.09.14
✎
11:51
|
(16) Элементарно, сделал запрос без параметра, но с отбором, и с параметром, время работы в разы отличается. Регистр очень большой поэтому и заморачивался ускорением.
|
|||
18
Defender aka LINN
12.09.14
✎
11:53
|
(17) А ничего, что отбор транслируется во, ВНЕЗАПНО, параметры при запросе из базы?
Хотя было бы желание - параметр можно в условия виртуальных таблиц вставлять, а отбор в ГДЕ выносить, а потом все рассказывать, какая 1С кривая, да. |
|||
19
OnCheck
12.09.14
✎
11:58
|
(18) Ни чего и не ВНЕЗАПНО ;-).
Ну вот видишь же, ответил сам себе на свой же аргумент. Я и не говорю, что кривая. Это твои домыслы. ВЫБРАТЬ Проекты.Ссылка КАК Проект ПОМЕСТИТЬ ВТПроекты ИЗ Справочник.Проекты КАК Проекты ГДЕ (Проекты.Ссылка В (&Проект) ИЛИ &ПроектНеЗаполнен) И НЕ Проекты.ПометкаУдаления ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ХозрасчетныйОбороты.Субконто1 КАК Проект, ХозрасчетныйОбороты.СуммаОборотДт КАК СуммаОборот, ХозрасчетныйОбороты.ПериодМесяц КАК ПериодМесяц, ХозрасчетныйОбороты.Регистратор ИЗ РегистрБухгалтерии.Хозрасчетный.Обороты(НАЧАЛОПЕРИОДА(&Год, ГОД), КОНЕЦПЕРИОДА(&Год, МЕСЯЦ), Авто, Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Счет_20_04), ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.рарПроекты), НЕ Субконто1.ПометкаУдаления И (&ПроектНеЗаполнен ИЛИ Субконто1 В (ВЫБРАТЬ Проект ИЗ ВТПроекты)), , ) КАК ХозрасчетныйОбороты |
|||
20
OnCheck
12.09.14
✎
12:02
|
Знаю, здесь правильнее было бы Автозаполнение, чтобы от второго парметра уйти.
|
|||
21
OnCheck
12.09.14
✎
12:22
|
(18) "а отбор в ГДЕ выносить" а вот это не совсем понимаю, разве мы можем отбором рулить?
|
|||
22
Defender aka LINN
12.09.14
✎
12:23
|
(19) "ответил сам себе на свой же аргумент" - нинада вот это вот СВОИ мысли в МОИ слова вкладывать. Отбор и параметр - вещи ОДИНАКОВЫЕ по быстродейстию, т.к. по сути одно и то же. Если у тебя отбор работает медленнее - приложи линейку к рукам, должен зазор некислый остаться.
|
|||
23
Defender aka LINN
12.09.14
✎
12:24
|
(21) Вот об этом я и говорю.
Одинэснеги нифига не разбираются в системе, с которой работают, но это им не мешает с умным видом бред нести. |
|||
24
OnCheck
12.09.14
✎
12:28
|
(23) а не вброс ли это, докажи, будь добр?
|
|||
25
OnCheck
12.09.14
✎
12:33
|
+(24) Хотя бы на примере моего запроса, там вроде все элементарно.
|
|||
26
LionHeart_spg
12.09.14
✎
12:36
|
(22) У тебя консоль СКД с отладчиком есть? Выложи сюда запрос, который сформирует СКД с отбором и без.
|
|||
27
LionHeart_spg
12.09.14
✎
12:39
|
Отличие отбора от параметра простое.
У параметра мы можем поменять только значение. У отбора мы можем поменять Вид сравнения и значение |
|||
28
OnCheck
12.09.14
✎
12:41
|
(27) Если не сложно вышли, поажлуйста, мне на почту (в моем профиле) эту консоль?
|
|||
29
Defender aka LINN
12.09.14
✎
12:43
|
(24) Что доказать? Что ты в системе не разбираешься?
|
|||
30
LionHeart_spg
12.09.14
✎
12:45
|
http://infostart.ru/public/15036/ - Сама статья про консоль
Там на скриншоте видно, что делает СКД с запросом http://infostart.ru/public/download.php?file=51040&pub=15036 - ссылка на скачивание консоли (бесплатно) |
|||
31
OnCheck
12.09.14
✎
12:47
|
(29) я не утверждаю, что в системе полностью разбираюсь.
Ты утверждаешь, что мы можем рулить отбором, т.е. то как система сформирует в результате запрос с учетом установленного отбора. А именно допишет через ГДЕ или упакует в параметры ВТ. |
|||
32
LionHeart_spg
12.09.14
✎
12:51
|
(31) Кстати, на эту тему есть необязательные параметры и это забота разработчика закодить заранее такие "сомнительные" варианты (Параметр как {Параметр}) (по памяти, мог в синтаксисе ошибиться, но примерно так)
|
|||
33
OnCheck
12.09.14
✎
12:54
|
(30) спасибо.
|
|||
34
OnCheck
12.09.14
✎
12:56
|
(32) здесь все верно. Но мы немного отклонились от темы а именно в (31)
|
|||
35
Defender aka LINN
12.09.14
✎
13:07
|
(31) ППЦ... А ты не пробовал документацию почитать, м?
Раз:
Два
А ты думал эти смешные скобочки для красоты нужны? |
|||
36
OnCheck
12.09.14
✎
13:12
|
(35) Ты прав, Константин, спасибо. Действительно все просто. Как там говорят посыпаю голову пеплом.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |