|
Условие для построителя отчета в виртуальных таблицах | ☑ | ||
|---|---|---|---|---|
|
0
alxbzm
18.05.09
✎
15:03
|
В общем, глюк в следующем: в УТ 10.3 делаю запрос по регистру "Партии товаров".
Что хочу: получить список номенклатуры по этому регистру по определенным условиям и потом получить еще раз список номенклатуры, но уже исключая номенклатуру из первого списка. Условия хочу "запихать" в построитель отчета. Получается в итоге интересная и неприятная в стиле 1С вещь: построитель отчета во вложенном запросе для виртуальной таблицы игнорирует настройки. Вот кусок запроса, на примере которого это наглядно демонстрируется: ВЫБРАТЬ ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура ИЗ РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты( , , , , (НЕ Номенклатура В (ВЫБРАТЬ ПартииТоваровНаСкладахОстаткиИОбороты1.Номенклатура ИЗ РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(, , , , {(СерияНоменклатуры.Проект).* КАК ВключаемыйПроект}) КАК ПартииТоваровНаСкладахОстаткиИОбороты1 СГРУППИРОВАТЬ ПО ПартииТоваровНаСкладахОстаткиИОбороты1.Номенклатура)) {(СерияНоменклатуры.Проект).* КАК ИсключаемыйПроект}) КАК ПартииТоваровНаСкладахОстаткиИОбороты СГРУППИРОВАТЬ ПО ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура |
|||
|
1
ТелепатБот
гуру
18.05.09
✎
15:03
|
||||
|
2
alxbzm
18.05.09
✎
15:05
|
Так вот, ИсключаемыйПроект в отборе виден, а ВключаемыйПроект - нет. Причем конструктор без каких-либо ошибок сам выкидывает условие для построителя. Что это? Глюк или так специально задумано? Как тогда в таком случае обходить это ограничение????
|
|||
|
3
Defender aka LINN
18.05.09
✎
15:09
|
Соединением сделай. Думаю, в 1С даже и не думали, что кто-то такое будет делать :)
|
|||
|
4
alxbzm
18.05.09
✎
15:15
|
(3) - ага - называется попытался сделать как доктор прописал - ограничил вторую выборку на уровне самой виртуальной таблицы, чтобы ускорить запрос, а в результате получил граблями в лоб.
Самое раздражающее в данной ситуации, что если вместо условий для построителя написать явные условия, то все работает - как это ни странно. А в 1С все-таки подумали что такое может быть - я же говорю - конструктор запроса специально выкидывает конструкции с "{}" из вложенного запроса.... В общем цензурных слов не осталось - отправляйте в копилку недоделок. |
|||
|
5
alxbzm
18.05.09
✎
15:29
|
(0) у меня сейчас истерика начнется: вытащил запрос из условий виртуальной таблицы и написал через условие "ГДЕ". ТОТ ЖЕ ЭФФЕКТ:
ВЫБРАТЬ ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура ИЗ РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(, , , , {(СерияНоменклатуры.Проект).* КАК ИсключаемыйПроект}) КАК ПартииТоваровНаСкладахОстаткиИОбороты ГДЕ ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура В(ВЫБРАТЬ ПартииТоваровНаСкладахОстаткиИОбороты1.Номенклатура ИЗ РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(, , , , {((СерияНоменклатуры.Проект).* КАК ВключаемыйПроект}) КАК ПартииТоваровНаСкладахОстаткиИОбороты1 СГРУППИРОВАТЬ ПО ПартииТоваровНаСкладахОстаткиИОбороты1.Номенклатура) СГРУППИРОВАТЬ ПО ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура Конструктор запроса выкидывает условие для построителя из виртуальной таблицы в условии. Лыжи однозначно не едут.... |
|||
|
6
alxbzm
25.05.09
✎
16:19
|
Все-таки еще подниму эту тему.
Вопрос собственно в следующем: как тогда мне выкинуть из одного множества номенклатуры другое? Если можно то пример пожалуйста. Как объединить два множества понятно - через ВНУТРЕННЕЕ СОЕДИНЕНИЕ. А вот как тогда исключить одно из другого? |
|||
|
7
alxbzm
28.05.09
✎
10:54
|
Ура. Если долго мучиться - что-нибудь получится. Если кому интересно - обошел данную засаду путем временных таблиц. В первой делаешь фильтр по нужным критериям, во второй - делаешь запрос минус то, что получилось в первой. Спасибо мне что есть я у себя ))))))
|
|||
|
8
hhhh
28.05.09
✎
10:58
|
(7) что-то слишком тупо. А элементарное ЛЕВОЕ СОЕДИНЕНИЕ не пробовал?
|
|||
|
9
alxbzm
28.05.09
✎
11:13
|
(8) Не получится через ЛЕВОЕ СОЕДИНЕНИЕ из одного множества исключить другое. Присоединить - да. А вот исключить - я по крайней мере не додумался. Если предложите варианты - буду признателен
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |