|
Схема компоновки данных - отбор по условию в запросе | ☑ | ||
|---|---|---|---|---|
|
0
jq
14.04.10
✎
16:46
|
Изучаю построение отчета в схеме компоновки данных, как мне отбор в запросе по уловию? Раньше я писал:
Если ЗначениеЗаполнено(Склад) Тогда ТекстЗапроса = ТекстЗапроса + " И ПоступлениеТоваровУслуг.СкладОрдер = &Склад"; КонецЕсли; Если ЗначениеЗаполнено(Подразделение) Тогда ТекстЗапроса = ТекстЗапроса + " И ПоступлениеТоваровУслуг.Подразделение = &Подразделение"; КонецЕсли; Если ЗначениеЗаполнено(Номенклатура) Тогда ТекстЗапроса = ТекстЗапроса + " И ПоступлениеТоваровУслугТовары.Номенклатура = &Номенклатура"; КонецЕсли; А можно как-нибудь это сделать в схеме? Ведь явно текста запроса нет? |
|||
|
1
Живой Ископаемый
14.04.10
✎
16:47
|
Как это нет явно текста запроса?
|
|||
|
2
Stim
14.04.10
✎
16:49
|
штатный отбор в настройках вывода результата СКД.
|
|||
|
3
jq
14.04.10
✎
17:07
|
Запрос то есть, а вот как в него вставить мое условие, чтобы отбор, например по номенклатуре осуществлялся только при заполненном параметре для отбора, если не заполнен, то по всей номенклатуре?
|
|||
|
4
Andry888
14.04.10
✎
17:08
|
И (ПоступлениеТоваровУслуг.СкладОрдер = &Склад ИЛИ &Склад=ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка))
|
|||
|
5
Defender aka LINN
14.04.10
✎
17:09
|
(4) Про отборы что-нибудь слышали?
|
|||
|
6
Andry888
14.04.10
✎
17:13
|
(5) слышали, слышали... отборы в СКД не панацея в некоторых случаях, если уж на то пошло...
|
|||
|
7
jq
14.04.10
✎
17:17
|
отборы в СКД - по-моему это немножко не то, т.к. если есть отбор, то все отбирает, а вот если есть параметр отбора, но он не заполнен, то пишет ошибка исполнения отчета
|
|||
|
8
jq
14.04.10
✎
17:22
|
Вот этот фрагмент
ГДЕ ПоступлениеТоваровУслугТовары.Ссылка.Дата МЕЖДУ &НачПериода И &КонПериода И ПоступлениеТоваровУслугТовары.Ссылка.Проведен = ИСТИНА И (ПоступлениеТоваровУслугТовары.Ссылка.СкладОрдер = &Склад ИЛИ &Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)) тоже выдает такую же ошибку: Ошибка создания набора данных "НаборДанных1" по причине: Ошибка при исполнении запроса набора данных по причине: {(19, 55)}: Не задано значение параметра "Склад" И (ПоступлениеТоваровУслугТовары.Ссылка.СкладОрдер = <<?>>&Склад хотя параметр Склад в СКД задан как Справочник.Склады |
|||
|
9
Defender aka LINN
14.04.10
✎
17:23
|
(6) Для (4) - еще какая.
|
|||
|
10
Макаров
14.04.10
✎
17:37
|
В схем компановки если ты указываешь в запросе параметр то ты обязательно должен его задать иниче ошибка. А все отборы указываешь в пользовательском режиме, если задашь то отбор работает если не то и нет ни какого отбора.
|
|||
|
11
jq
14.04.10
✎
17:38
|
Т.е. отбор не через параметр, а именно через Отбор в настройках отчета в пользовательском режиме?
|
|||
|
12
Макаров
14.04.10
✎
17:42
|
Да. там ты можешь отборы задать как ко всему отчету так и отдельно по группировкам.
|
|||
|
13
jq
14.04.10
✎
17:56
|
Да это я уже понял, спасибо.
Интересно, а как это клиентам объяснить, раньше у них была возможность видеть что-то типа быстрых отборов, т.е. все явно, хочу отбор, ставлю флаг и отбираю, не хочу - снимаю флаг, и все формируется без выкидывания ошибок. А теперь снимаешь флаг с отбора по параметру, например НачалоПериода, у клиента ошибка, ладно, допустим объяснили, привыкли. Так ведь теперь, чтобы задать отбор надо лезть еще в настройки. Да плюс в самих настройках чувствую клиенты будут путаться в отборах по всему отчету или по группировке, зададут не в том месте, и скажут типа, есть отбор а не работает/работает не так. И, наконец, самая любимая их фраза, "а зачем мне этот новый вид, в старом все так хорошо и понятно, а это..."??? |
|||
|
14
Garkin
14.04.10
✎
18:07
|
"снимаешь флаг с отбора по параметру" - Это в СКД где ???, на какой закладке???
|
|||
|
15
jq
14.04.10
✎
18:08
|
(14)Это уже на форме отчета
|
|||
|
16
jq
14.04.10
✎
18:11
|
Кстати, очень интересно, на диске ИТС есть типовой отчет ПродажиУТ, типа валовая прибыль на СКД, так вот там на форме отчета в пользовательском режиме есть два параметра - Начало и Конец Периода, и если у них не ставить галки, то отчет формируется за весь период, а в моем отчете вылетает ошибка, как в (8). Сравнил настройки отчетов, вроде все одинаково, ан нет. Как они это реализовали???
|
|||
|
17
jq
15.04.10
✎
09:30
|
up
|
|||
|
18
luns
15.04.10
✎
09:43
|
пример необязательных параметров:
(ВЫБРАТЬ | д_ПланПродажПоСубдистрибьюторамОбороты.Дистрибьютор КАК Дистрибьютор, | д_ПланПродажПоСубдистрибьюторамОбороты.Субдистрибьютор КАК Субдистрибьютор, | СУММА(д_ПланПродажПоСубдистрибьюторамОбороты.СуммаОборот) КАК СуммаПлан | ИЗ | РегистрНакопления.д_ПланПродажПоСубдистрибьюторам.Обороты( | &НачалоПериода, | &КонецПериода, | Период, | ВЫБОР | КОГДА &ОтборОрганизация | ТОГДА Организация = &Организация | ИНАЧЕ ИСТИНА | КОНЕЦ | И ВЫБОР | КОГДА &ОтборКонтрагент | ТОГДА Дистрибьютор.Контрагент В ИЕРАРХИИ (&Контрагент) | ИНАЧЕ ИСТИНА | КОНЕЦ | И ВЫБОР | КОГДА &ОтборНоменклатура | ТОГДА НаборГруппНоменклатуры = &НаборГруппНоменклатуры | ИНАЧЕ ИСТИНА | КОНЕЦ) КАК д_ПланПродажПоСубдистрибьюторамОбороты а вот они устанавливаются: Запрос.УстановитьПараметр("Контрагент" , СписокКонтрагентов); Запрос.УстановитьПараметр("ОтборКонтрагент" , ЗначениеЗаполнено(СписокКонтрагентов)); |
|||
|
19
jq
15.04.10
✎
10:24
|
Так что-ли?
ВЫБРАТЬ ПоступлениеТоваровУслугТовары.Номенклатура, ПоступлениеТоваровУслугТовары.ХарактеристикаНоменклатуры, ПоступлениеТоваровУслугТовары.Количество, ПоступлениеТоваровУслугТовары.Цена, ПоступлениеТоваровУслугТовары.Сумма, ПоступлениеТоваровУслугТовары.Склад, (ВЫБОР КОГДА &Склад ТОГДА ПоступлениеТоваровУслугТовары.Ссылка.СкладОрдер = &Склад ИНАЧЕ ИСТИНА КОНЕЦ) Выдает ошибку. |
|||
|
20
luns
15.04.10
✎
10:25
|
(19) Какую?
|
|||
|
21
jq
15.04.10
✎
10:31
|
Ошибка в запросе набора данных
по причине: {(11, 61)}: Неверные параметры "ВЫБОР" ТОГДА ПоступлениеТоваровУслугТовары.Ссылка.СкладОрдер <<?>>= &Склад |
|||
|
22
jq
15.04.10
✎
10:51
|
Не понимаю
|
|||
|
23
Armando
15.04.10
✎
10:59
|
мой пример необязательного параметра
ВЫБРАТЬ
|
|||
|
24
Defender aka LINN
15.04.10
✎
10:59
|
Пипец...
|
|||
|
25
Armando
15.04.10
✎
11:01
|
(0) ну а вообще в СКД для этого есть отборы
|
|||
|
26
jq
15.04.10
✎
11:06
|
(25)Отборы понятно, но хочется именно через параметры отбирать...
|
|||
|
27
Garkin
15.04.10
✎
11:08
|
(26) Это религия такая?
|
|||
|
28
jq
15.04.10
✎
11:11
|
(27) См. (13)
|
|||
|
29
Triruki
15.04.10
✎
11:13
|
Эмм а в фигурные скобки взять не пробовали? тогда это условие будет отрабатываться толко если оно задано.
|
|||
|
30
Armando
15.04.10
✎
11:14
|
(26) необязательные параметры задаются в {}. см(23)
|
|||
|
31
Triruki
15.04.10
✎
11:16
|
+(30) Ну или в конструкторе запроса на вкладке "Компоновка Данных"-> вкладка "Условия"
|
|||
|
32
jq
15.04.10
✎
11:18
|
А, спасибо, а если надо одновременно и обязательные и необязательные, то как правильно скобки расставить
{ГДЕ (ПоступлениеТоваровУслугТовары.Ссылка.Дата МЕЖДУ &НачПериода И &КонПериода)} Например, НачПериода - обязателный параметр, КонПериода - необязательный, или так нельзя? |
|||
|
33
Defender aka LINN
15.04.10
✎
11:19
|
(28) Для этого есть ОТБОР.
http://s52.radikal.ru/i136/1004/0f/4d5d0052435f.jpg |
|||
|
34
jq
15.04.10
✎
11:21
|
Ясно, а можно в СКД как-нибудь Отбор вынести из кнопки Настройки на форму отчета? Не параметры, а именно ОТБОР.
|
|||
|
35
Defender aka LINN
15.04.10
✎
11:22
|
(34) У меня с дикцией что-то?
|
|||
|
36
Garkin
15.04.10
✎
11:24
|
(28) на (13) без слез смотреть нельзя, пожалей мою психику.
|
|||
|
37
jq
15.04.10
✎
11:24
|
Извиняюсь, уже нашел
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |