Имя: Пароль:
1C
1С v8
Проблема с фильтрацией виртуальной таблицы в запросе
, , ,
0 bahtik
 
07.04.14
21:51
Есть такой запрос:
Запрос.Текст =
    "ВЫБРАТЬ
    |    ТМЦкВыдачеОстатки.ТМЦ,
    |    ТМЦкВыдачеОстатки.ВариантТМЦ,
    |    ТМЦкВыдачеОстатки.ЦелевоеНазначение,
    |    ТМЦкВыдачеОстатки.Проект,
    |    ТМЦкВыдачеОстатки.ЦелевойОбъект,
    |    ТМЦкВыдачеОстатки.КоличествоОстаток
    |ИЗ
    |    РегистрНакопления.ТМЦкВыдаче.Остатки(
    |            &ТочкаИтогов,
    |            Организация = &Организация
    |                И Склад = &Склад
    |                И (ТМЦ, ВариантТМЦ, ЦелевоеНазначение, Проект, ЦелевойОбъект) В
    |                    (ВЫБРАТЬ
    |                        ПереченьТМЦвДокументе.ТМЦ,
    |                        ПереченьТМЦвДокументе.ВариантТМЦ,
    |                        ПереченьТМЦвДокументе.ЦелевоеНазначение,
    |                        ПереченьТМЦвДокументе.Проект,
    |                        ПереченьТМЦвДокументе.ЦелевойОбъект
    |                    ИЗ
    |                        ПереченьТМЦвДокументе)) КАК ТМЦкВыдачеОстатки


ПереченьТМЦвДокументе - это временная таблица. Суть в том, что из регистра выбираются записи, отфильтрованные в соответствии с табличной частью документа. Так вот проблема в том, что почему-то в фильтр не попадают записи, когда Проект - пустая сылка (и в регистре и в документе). Проект - тип Справочник.Ссылка. Тип не составной и в регистре, и в документе. В чем может быть проблема, кто подскажет?
1 bahtik
 
07.04.14
22:12
Вот по сути, точно такой же запрос, при этом все работает:
Запрос.Текст =
    "ВЫБРАТЬ
    |    ОстаткиТМЦ.ТМЦ,
    |    ОстаткиТМЦ.ВариантТМЦ
    |ИЗ
    |    РегистрНакопления.ОстаткиТМЦ.Остатки(
    |            &ТочкаИтогов,
    |                (ТМЦ, ВариантТМЦ) В
    |                    (ВЫБРАТЬ
    |                        ПереченьТМЦвДокументе.ТМЦ,
    |                        ПереченьТМЦвДокументе.ВариантТМЦ,
    |                    ИЗ
    |                        ПереченьТМЦвДокументе)) КАК ОстаткиТМЦ
2 vi0
 
07.04.14
22:16
может быть итоги битые или еще что
попробуй на тестовой пересчитать итоги
3 vi0
 
07.04.14
22:17
попробуй, для теста, более простое условие без В
где есть пустой проект
4 shuhard
 
07.04.14
22:17
(0) связывать по NULL и Неопределено низяяя
5 bahtik
 
08.04.14
17:03
Блин, вчера инет убился, после того, как вопрос задал. В общем, оживляю тему. По поводу битых итогов и проверки - если не делать фильтрацию, а делать соединение, то все работает. Т.е. пустой проект в документе и пустой проект в регистре соединяются и попадают в одну строку.
6 bahtik
 
08.04.14
17:04
(4) Так я вроде там нигде ничего не связываю...
7 bahtik
 
08.04.14
17:08
(6) Да и NULL у меня там нигде не может быть.
8 tushich
 
08.04.14
17:54
А через внешнее соединение остатков с таблицей ПереченьТМЦвДокументе есть пересекающиеся строки?
9 vi0
 
08.04.14
17:56
(5) что за соединение?
10 bahtik
 
08.04.14
19:51
Соединение табличной части с регистром.
11 bahtik
 
08.04.14
19:54
(8) есть через любое соединение. Т.е. при соединении запрос видит, что ДокТЧ.Проект = Рег.Проект, а если делать фильтр, как у меня в запросе, то в этом случае они типа не равны.
12 vi0
 
08.04.14
20:16
(11) поропробуй то что я посоветовал
покажи другие запросы, которые пробовал