Запрос помогите

Новая тема
Проблемка такая:<br>Нужен запрос, который отбирает ту номенклатуру из документа приходная накладная по которой не заданы цены в закупочном прайсе <br>типа :<br>ВЫБРАТЬ<br> ЦеныНоменклатурыСрезПоследних.Номенклатура,<br> ЦеныНоменклатурыСрезПоследних.Цена,<br> ЦеныНоменклатурыСрезПоследних.ТипЦен<br>ИЗ<br> Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг<br> ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних<br> ПО (ЦеныНоменклатурыСрезПоследних.Номенклатура = ПоступлениеТоваровУслуг.Товары.Номенклатура)<br>ГДЕ<br> ПоступлениеТоваровУслуг.Ссылка = &Ссылка<br><br>только тут он выбирает ту номенклатуру которая есть в прайсе, а надо наоборот
Так работает:<br><br>ВЫБРАТЬ<br> ВложенныйЗапрос.Номенклатура,<br> ВложенныйЗапрос.Количество<br>ИЗ<br> (ВЫБРАТЬ<br> ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Номенклатура, &ПустаяНоменклатура) КАК Номенклатура,<br> РеализацияТоваровУслугТовары.Количество КАК Количество<br> ИЗ<br> Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары<br> ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних<br> ПО РеализацияТоваровУслугТовары.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура<br> ГДЕ<br> РеализацияТоваровУслугТовары.Ссылка = &ЭтаНакладная) КАК ВложенныйЗапрос<br>ГДЕ<br> ВложенныйЗапрос.Номенклатура <> &ПустаяНоменклатура
&ПустаяНоменклатура это Справочники.Номенклатура.ПустаяСсылка() ???
&ПустаяНоменклатура это Справочники.Номенклатура.ПустаяСсылка() ???
Да<br>
спасибо огромное
Вот полностью готовый запрос который проверяет, если цены изменились или их нет в закупочном прайсе<br><br>ВЫБРАТЬ<br> ВложенныйЗапрос.Номенклатура,<br> ВложенныйЗапрос.Сумма,<br> ВложенныйЗапрос.Количество,<br> (ВложенныйЗапрос.Сумма + ВложенныйЗапрос.СуммаНДС) / ВложенныйЗапрос.Количество КАК ЦенаДок,<br> ВложенныйЗапрос.НоменклатураТип,<br> ВложенныйЗапрос.Цена<br>ИЗ<br> (ВЫБРАТЬ<br> ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура,<br> ПоступлениеТоваровУслугТовары.Сумма КАК Сумма,<br> ПоступлениеТоваровУслугТовары.Количество КАК Количество,<br> ЦеныНоменклатурыСрезПоследних.Цена КАК Цена,<br> ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Номенклатура, &ПустаяНоменклатура) КАК НоменклатураТип,<br> ПоступлениеТоваровУслугТовары.СуммаНДС КАК СуммаНДС<br> ИЗ<br> РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних<br> ПОЛНОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары<br> ПО (ПоступлениеТоваровУслугТовары.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура)<br> ГДЕ<br> ПоступлениеТоваровУслугТовары.Ссылка = &Ссылка) КАК ВложенныйЗапрос<br>ГДЕ<br> (ВложенныйЗапрос.Цена <> (ВложенныйЗапрос.Сумма + ВложенныйЗапрос.СуммаНДС) / ВложенныйЗапрос.Количество<br> ИЛИ ВложенныйЗапрос.НоменклатураТип = &ПустаяНоменклатура) <br><br><br>Расшифровка параметров<br>&ТипЦен=Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Закупочные")<br>&ПустаяНоменклатура=Справочники.Номенклатура.ПустаяСсылка<br>&Ссылка=ЭтотОбъект<br><br><br>Если что поправьте :)
Нельзя использовать ПОЛНОЕ СОЕДИНЕНИЕ. Из-за этого не попадет в запрос номенклатура, которая отсутствуе в регистре сведений. А это как раз та номенклатура, которую по определению мы должны найти. Значит - ЛЕВОЕ СОЕДИНЕНИЕ. Далее, зачем равенство  "ВложенныйЗапрос.Номенклатура <> &ПустаяНоменклатура" Заменили на равенство "ВложенныйЗапрос.НоменклатураТип = &ПустаяНоменклатура". Теперь будут попадать в запрос только позиции с пустой номенклатурой, т.е. ничего. Использование выражение "(ВложенныйЗапрос.Цена <> (ВложенныйЗапрос.Сумма + ВложенныйЗапрос.СуммаНДС) / ВложенныйЗапрос.Количество<br>" опасно, посколку могут возникнуть ошибки округления. Точнее, наверняка возникнут. Лучше заново поставить задачу. Ведь цены в табличной части документа могут отличаться от цен в регистре. У них может быть разная валюта. Все это не аккуратно.
А нафига все это надо? Не проще заполнять установку цен всей номенклатурой из документа "Поступления"?
Читают тему

Быстрый переход