|
Построитель отчета, необязательный параметр виртуальной таблицы | ☑ | ||
---|---|---|---|---|
0
vdeemer
01.12.21
✎
13:42
|
Здравствуйте!
Отчет на ОФ, использую в тексте построителя запроса сабж:
Потом при запуске вставляю параметр
Несмотря на наличие параметра, выборка все равно без его учета. Подскажите, что я делаю не так? Спасибо. |
|||
1
youalex
01.12.21
✎
13:53
|
Если параметр неопциональный, убери фигурные скобки.
Если опциональный - можно сделать через отбор типа Остатки(, Фирма = &Фирма {(Контрагент КАК Покупатели)}) , вид сравнения - в группе из списка. |
|||
2
vdeemer
01.12.21
✎
14:06
|
(1) не взлетело, выбирает все
|
|||
3
Ryzeman
01.12.21
✎
14:10
|
(0) Отчёт точно на СКД?
|
|||
4
vdeemer
01.12.21
✎
14:11
|
(3) при чем здесь СКД? Построитель отчета.
|
|||
5
youalex
01.12.21
✎
14:11
|
(2) смотри Построитель.ПолучитьЗапрос()
|
|||
6
Ryzeman
01.12.21
✎
14:15
|
(4) А построитель так умеет? Необязательные условия для виртуальных таблиц в фигурных скобках? Я думал это только расширение языка запросов в СКД.
|
|||
7
vdeemer
01.12.21
✎
14:15
|
(5) ...Остатки(, Фирма = &Фирма)
Т.е. не увиделось того, что в скобках((( (6) Умеет, только я вот пока не соображу, каким пальцем ему показывать)) |
|||
8
youalex
01.12.21
✎
14:17
|
(7) Отбор добавь программно, с "вид сравнения - в группе из списка."
|
|||
9
vdeemer
01.12.21
✎
14:17
|
||||
10
vdeemer
01.12.21
✎
14:17
|
(8) так-то понятно, но это же виртуальная таблица, хотелось кошерно сделать
|
|||
11
youalex
01.12.21
✎
14:18
|
(10) в СКД/Построителе отборы в параметрах вирт таблиц это и есть кошерно)
Если тебе не нужно жестко условие прописать. |
|||
12
vdeemer
01.12.21
✎
14:25
|
(11) чот я сомневаюсь... А если условие надо наложить (накласть) на поле, которое потом в результате даже не появится?
|
|||
13
youalex
01.12.21
✎
14:41
|
(12) в смысле. Ты же на отбор накладываешь на измерение вирт. таблицы. И пусть даже это поле не появится, но отбор то проявится в любом случае.
|
|||
14
vdeemer
01.12.21
✎
15:16
|
(11) (12) (13) извините, был напуган (с)
Все так и есть на самом деле. Если кому понадобится, то вот решение: Текст запроса Остатки(, Фирма = &Фирма {(Контрагент КАК Покупатели)}), ПолеОтбораПоПокупателям = ПостроительОтчета.Отбор.Добавить("Покупатели"); Если ЗначениеЗаполнено(Покупатели) Тогда ПолеОтбораПоПокупателям.Значение = Покупатели; ПолеОтбораПоПокупателям.Использование = Истина; ПолеОтбораПоПокупателям.ВидСравнения = ВидСравнения.ВСпискеПоИерархии; Иначе ПостроительОтчета.Отбор.Удалить(ПостроительОтчета.Отбор.Индекс(ПолеОтбораПоПокупателям)); КонецЕсли; |
|||
15
youalex
01.12.21
✎
15:47
|
(14) можно проще (и нагляднее)
ПолеОтбораПоПокупателям.Использование = ЗначениеЗаполнено(Покупатели) Но это уже больше вскусовщина) |
|||
16
Михаил Козлов
01.12.21
✎
16:02
|
Если не ошибаюсь, с построителем можно обойтись без фильтра в тексте запроса. Достаточно на форму вывести отборы построителя.
А он уже сам разберется, есть фильтр и какое значение вида сравнения. В запросе построителя заполнить секцию {ГДЕ Контрагент.* КАК Контрагент, ...... } |
|||
17
youalex
01.12.21
✎
16:03
|
(16) {ГДЕ
Контрагент.* Это косяк, если Контрагент измерение регистра вирт. таблицы |
|||
18
youalex
01.12.21
✎
16:08
|
(16) но обязательно условие отбора в построителе прописывать не обязательно (вроде),- это нужно например, чтобы переназначить имя отбора (если например в разных регистрах одноименное измерение, и нужно эти отборы разделить) , а так построитель и так "поймет", что нужно условие запихать именно в параметр вирт. таблицы. В СКД примерно такая же логика, но там еще завязано на галку "Автозаполнение"
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |