Имя: Пароль:
1C
1С v8
Почему не срабатывает простой запрос?
0 suvolod
 
06.06.12
21:33
ВЫБРАТЬ
   ЧекККМТовары.Номенклатура,
   ЧекККМТовары.Цена
ПОМЕСТИТЬ ВремТаб
ИЗ
   Документ.ЧекККМ.Товары КАК ЧекККМТовары
ГДЕ
   ЧекККМТовары.Ссылка = &Ссылка
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ВремТаб.Номенклатура.Наименование,
   ВремТаб.Цена КАК ЦенаДокумента,
   ЕСТЬNULL(ЦеныАТТСрезПоследних.Цена, 0) КАК ЦенаАТТ
ИЗ
   ВремТаб КАК ВремТаб
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныАТТ.СрезПоследних(
               &МоментВремени,
               Номенклатура В
                   (ВЫБРАТЬ
                       ВремТаб.Номенклатура
                   ИЗ
                       ВремТаб КАК ВремТаб
                   )) КАК ЦеныАТТСрезПоследних
       ПО ВремТаб.Номенклатура = ЦеныАТТСрезПоследних.Номенклатура
ГДЕ
   ВремТаб.Цена <> ЦеныАТТСрезПоследних.Цена

В базе есть записи, у которых по документу (ВремТаб.Цена) - цена установлена, а в регистре цен (ЦеныАТТСрезПоследних.Цена) - нет.
Тем не менее запрос такие записи не выбирает.

Если же условие где изменить на противоположное (
ГДЕ
   ВремТаб.Цена = ЦеныАТТСрезПоследних.Цена), то записи. попадающие под это условие, выбираются нормально.

Получается, косяк где-то с сравнении ГДЕ... только вот в чем?
1 andrewks
 
06.06.12
21:35
ГДЕ
   ВремТаб.Цена <> ЕСТЬNULL(ЦеныАТТСрезПоследних.Цена, 0)
2 suvolod
 
06.06.12
21:37
Точно.. спасибо большое, верхний ЕстьNULL в моем коде распространяется только на псевдоним ЦенаАТТ, как-то не догадался :).
3 zak555
 
06.06.12
21:40
> а в регистре цен (ЦеныАТТСрезПоследних.Цена) - нет.

их надо обновить ?
4 suvolod
 
06.06.12
21:52
да, будет нужно.. можешь дать подсказку?
5 zak555
 
06.06.12
21:52
(4) используемый отбор и пиши сразу
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn