Имя: Пароль:
1C
1С v8
Соединение табличной части с Рег.Сведений в запросе
0 bek_bassar
 
08.05.13
12:46
Здравствуйте.
В запросе хочу получить номенклатуру, количество из таб частей документа и цену последнюю из РС Цены номенклатуры.
Вот собственно текст запроса

Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    ПересчетТоваровТовары.Номенклатура,
                   |    ПересчетТоваровТовары.Характеристика,
                   |    ПересчетТоваровТовары.КоличествоФакт КАК КоличествоУпаковок,
                   |    ПересчетТоваровТовары.Упаковка,
                   |    ПересчетТоваровТовары.КоличествоФакт КАК Количество,
                   |    ВЫБОР
                   |        КОГДА ЦеныНоменклатурыСрезПоследних.Цена ЕСТЬ NULL
                   |            ТОГДА 0
                   |        ИНАЧЕ ЦеныНоменклатурыСрезПоследних.Цена
                   |    КОНЕЦ КАК Цена
                   |ИЗ
                   |    Документ.ПересчетТоваров.Товары КАК ПересчетТоваровТовары
                   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
                   |        ПО ПересчетТоваровТовары.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
                   |ГДЕ
                   |    ПересчетТоваровТовары.Ссылка.ДокументОснование = &ДокументОснование
                   |    И ПересчетТоваровТовары.КоличествоФакт > 0
                   |    И ЦеныНоменклатурыСрезПоследних.ВидЦены = &ВидЦены";
   
    Запрос.УстановитьПараметр("ДокументОснование", Док );
    Запрос.УстановитьПараметр("ВидЦены", ВидЦены);
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выгрузить();

Если у номенклатуры нет цены то в запрос эта номенклатура не попадает, а мне нужно чтоб в не зависимости есть цена или нету номенклатура попадала в запрос.
Думал связать левым соединением но чето не получается.
Помогите
1 Ненавижу 1С
 
гуру
08.05.13
12:48
условие ЦеныНоменклатурыСрезПоследних.ВидЦены = &ВидЦены занеси в параметры вирт. таблицы
2 BadTouch
 
08.05.13
13:01
Или в условие соединения
3 BadTouch
 
08.05.13
13:03
Еще (просто корректировка):

ВЫБОР
                   |        КОГДА ЦеныНоменклатурыСрезПоследних.Цена ЕСТЬ NULL
                   |            ТОГДА 0
                   |        ИНАЧЕ ЦеныНоменклатурыСрезПоследних.Цена
                   |    КОНЕЦ КАК Цена
Замени на
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена
4 Aprobator
 
08.05.13
13:12
(1) +100500.
Поскольку из за условия:
ГДЕ ....
И ЦеныНоменклатурыСрезПоследних.ВидЦены = &ВидЦены";
тут не левое, а внутреннее соединение получается.
5 anddro
 
08.05.13
13:22
и в параметры виртуальной таблицы надо поставить отбор по номенклатуре документа: незачем для документа получать срез последних для всей номенклатуры.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.