Имя: Пароль:
1C
1С v8
Условие в запросе НЕ В (<Список>)
0 mnimo
 
19.04.13
11:36
Вот запрос (чисто пример), в котором у меня не отрабатывает данное условие (НЕ В(<Список>)):
Дата берется как 7 мес (от -по).
В Первом запросе я выбираю контрагентов по которым осуществленны продажи за 6 мес. Затем выбираю контрагентов за последний месяц (седьмой) и хочу взять только тех контрагентов которые не присутствуют в первом запросе (6 мес). Еще раз запрос чисто для примера...

ВЫБРАТЬ
   ВЫБОР
       КОГДА ПродажиОбороты.ДокументПродажи.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаН, ДЕНЬ) И ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(&ДатаК, ДЕНЬ), МЕСЯЦ, -1)
           ТОГДА ПродажиОбороты.Контрагент
       ИНАЧЕ NULL
   КОНЕЦ КАК Контрагент
ПОМЕСТИТЬ ВТ6М
ИЗ
   РегистрНакопления.Продажи.Обороты(&ДатаН, &ДатаК, , ) КАК ПродажиОбороты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ВЫБОР
       КОГДА ПродажиОбороты.ДокументПродажи.Дата МЕЖДУ ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&ДатаН, ДЕНЬ), МЕСЯЦ, 6) И КОНЕЦПЕРИОДА(&ДатаК, ДЕНЬ)
           ТОГДА ПродажиОбороты.Контрагент
       ИНАЧЕ NULL
   КОНЕЦ КАК Поле1,
   ПродажиОбороты.ДокументПродажи
ПОМЕСТИТЬ ВТКД
ИЗ
   РегистрНакопления.Продажи.Обороты(&ДатаН, &ДатаК, , ) КАК ПродажиОбороты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ВТКД.Поле1 КАК Контрагент,
   ВТКД.ДокументПродажи
ИЗ
   ВТКД КАК ВТКД
ГДЕ
   НЕ ВТКД.Поле1 В
               (ВЫБРАТЬ
                   ВТ.Контрагент
               ИЗ
                   ВТ6М КАК ВТ)

Вот почему не отробатывает условие НЕ В(<Список>)?
Пробовал на других запросах все работает тут нет?
1 Classic
 
19.04.13
11:40
Сравнение с Нулом дает иногда непредсказуемые результаты
2 zladenuw
 
19.04.13
11:41
так у тебя там Null замени на пустую ссылку
3 Рэйв
 
19.04.13
11:43
Выбрать
   ВТКД.Поле1 КАК Контрагент,
   ВТКД.ДокументПродажи
   ЕстьNULL(ВТ6М.Контрагент,"НЕТ") КАК Контр
ИЗ ВТКД
Левое соединение ВТ6М  
По ВТКД.Поле1=ВТ6М.Контрагент
ГДЕ
Контр="НЕТ"
4 mnimo
 
19.04.13
11:44
Блин точно за место Null поставил 0 и заработало.
5 mnimo
 
19.04.13
11:45
ребят спасибо всем я все понял.