Имя: Пароль:
1C
1С v8
Объединенный запрос не выбирает элементы
0 Маленький Вопросик
 
23.01.14
07:19
Есть 2 запроса:

1. Здесь 1075 элементов:

КонечныеОстатки = Новый Запрос("ВЫБРАТЬ
    |    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
    |    ТоварыНаСкладахОстатки.КоличествоОстаток КАК КонечныйОстаток
    |ИЗ
    |    РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата1, ) КАК ТоварыНаСкладахОстатки
    |ГДЕ
    |    ТоварыНаСкладахОстатки.Склад = &Склад
    |                           
    |УПОРЯДОЧИТЬ ПО
    |    ТоварыНаСкладахОстатки.Номенклатура.Наименование");

2. Здесь 1070 элементов:

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

Подскажите почему это происходит (со 2-ым запросом) как это исправить ?????? Большое спасибо.
1 MSII
 
23.01.14
07:21
Условия-то в запросах разные.
2 Wobland
 
23.01.14
07:21
ГДЕ
    |    И ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦен
3 Маленький Вопросик
 
23.01.14
07:23
(2) как тогда определить тип цены, "цена поступления"?
4 Маленький Вопросик
 
23.01.14
07:26
странно, левое соединение же использую по таблице остатков.

какой соединение тогда нужно использовать?

подскажите как поставить цену 0, если она не найдена, в данном случае
5 Wobland
 
23.01.14
07:29
(4) естьнулл()
6 Godofsin
 
23.01.14
07:29
Для начала перенести в параметры вирт. таблицы
7 Godofsin
 
23.01.14
07:29
(5) Здаров земляк )))
8 Wobland
 
23.01.14
07:30
(7) хой!
9 Маленький Вопросик
 
23.01.14
07:30
КонечныеОстатки = Новый Запрос("ВЫБРАТЬ
                                   |    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
                                   |    ТоварыНаСкладахОстатки.КоличествоОстаток КАК КонечныйОстаток,
                                   |    ЦеныНоменклатурыСрезПоследних.Цена,
                                   |    ТоварыНаСкладахОстатки.КоличествоОстаток * ЦеныНоменклатурыСрезПоследних.Цена КАК СуммаОстатков
                                   |ИЗ
                                   |    РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата1, ) КАК ТоварыНаСкладахОстатки
                                   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата1, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
                                   |        ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
                                   |ГДЕ
                                   |    ТоварыНаСкладахОстатки.Склад = &Склад
                                   |
                                   |УПОРЯДОЧИТЬ ПО
                                   |    ТоварыНаСкладахОстатки.Номенклатура.Наименование");
10 Маленький Вопросик
 
23.01.14
07:30
Ребята, а вот так получилось, если условие в вирт таблице
11 Маленький Вопросик
 
23.01.14
07:31
(6) кстати, спасибо. сам решил так попробывать
12 Godofsin
 
23.01.14
07:31
(10) Удивительно, правда? Склад тоже в условие запихай
13 Wobland
 
23.01.14
07:31
а что бывает, когда КоличествоОстаток умножается на нулл?
14 Маленький Вопросик
 
23.01.14
07:40
вот такой запрос получился:

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

(13) поясни, как сделать с нулл?
15 Wobland
 
23.01.14
07:41
(14) ТоварыНаСкладахОстатки.КоличествоОстаток * естьнулл(ЦеныНоменклатурыСрезПоследних.Цена, 0)
16 Wobland
 
23.01.14
07:41
+(15) хотя, может и так ноль будет, я не пробовал
17 Маленький Вопросик
 
23.01.14
07:45
(16) спасибо. буду пробывать
AdBlock убивает бесплатный контент. 1Сергей