Имя: Пароль:
1C
1С v8
Запрос
0 Eeelena
 
28.08.13
08:26
Добрый день! Подскажите пожалуйста, очень нужно. Есть запрос

ВЫБРАТЬ      СправочникНоменклатура.Ссылка КАК Номенклатура,

СправочникНоменклатура.БазоваяЕдиницаИзмерения КАК ЕдИз,
СправочникНоменклатура.Родитель КАК Группа,
ЦеныНоменклатурыСрезПоследних.Цена КАК Цена,
ЦеныНоменклатурыСрезПоследних.ТипЦен КАК ТипЦен,
ЦеныНоменклатурыСрезПоследних.Период КАК Период,
ТоварыОрганизацийОстатки.КоличествоОстаток КАК Остаток,
ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток КАК ОстатокВРезерве

ИЗ      РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки КАК ТоварыВРезервеНаСкладахОстатки

ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СправочникНоменклатура

ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ) КАК ЦеныНоменклатурыСрезПоследних
ПО СправочникНоменклатура.Ссылка = ЦеныНоменклатурыСрезПоследних.Номенклатура
И (ЦеныНоменклатурыСрезПоследних.ТипЦен = СправочникНоменклатура.ОсновнаяЦенаПродажи)

ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыОрганизаций.Остатки(&Период, ) КАК ТоварыОрганизацийОстатки
ПО (ЦеныНоменклатурыСрезПоследних.Номенклатура = ТоварыОрганизацийОстатки.Номенклатура)
И (ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры = ТоварыОрганизацийОстатки.ХарактеристикаНоменклатуры)
ПО ТоварыВРезервеНаСкладахОстатки.Номенклатура = СправочникНоменклатура.Ссылка
И (ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры = ТоварыВРезервеНаСкладахОстатки.ХарактеристикаНоменклатуры)

ГДЕ      СправочникНоменклатура.ЭтоГруппа = ЛОЖЬ
И ЦеныНоменклатурыСрезПоследних.Цена > 0
И ТоварыОрганизацийОстатки.КоличествоОстаток > 0
И СправочникНоменклатура.ОсновнаяЦенаПродажи <> ЗНАЧЕНИЕ(Справочник.ТипыЦенНоменклатуры.ПустаяСсылка)


Остаток в резерве выводится неправильно, подскажите как исправить
1 Wobland
 
28.08.13
08:28
предлагаю правильно насоединять
2 Eeelena
 
28.08.13
08:34
подскажите как правильно, пожалуйста
3 Steini
 
28.08.13
08:40
а я вообще них*я не понял =)
а почему РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки - используется реальная таблица вместо виртуальной Остатки(&Период, ) ?
4 Steini
 
28.08.13
08:47
(3) тоже х*рню сморозил
В общем (1) прав - надо все потихонечку корректно насоединять
5 Rie
 
28.08.13
08:51
(0) Неправильно - это как? Не на ту дату?
6 Eeelena
 
28.08.13
08:51
а подскажите как правильно то
7 Rie
 
28.08.13
08:53
(6) Вас не смущает, что везде - на &Период, а в резервах - нет?
8 Мимохожий Однако
 
28.08.13
08:53
Возьми в руки консоль и бери каждую таблицу по порядку. Подключила, проверила, подключила, проверила.
9 Wobland
 
28.08.13
08:54
вот любите вы всякую ахинею писать, которая нормальному человеку в голову не придёт..

ИЗ      РегистрНакопления.ТоварыВРезервеНаСкладах
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СправочникНоменклатура
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры

что вот это такое? какие процессы происходили в мозгу у автора при написании?
10 Eeelena
 
28.08.13
08:58
я создавала запрос с помощью конструктора
11 Мимохожий Однако
 
28.08.13
08:58
Видимо, хочет посмотреть остатки зарезервированного товара и цены на него ))
12 Мимохожий Однако
 
28.08.13
08:59
(10) Есть такой инструмент - консоль запросов.
13 Eeelena
 
28.08.13
08:59
да, мне нужно вывести номенклатуру, цену, остаток и остаток в резерве
14 Eeelena
 
28.08.13
09:00
он выводит все правильно кроме остатка в резерве
15 lamesnake
 
28.08.13
09:01
(10)>>я создавала запрос с помощью конструктора
но условие на первое соединение там не прописала
16 Rie
 
28.08.13
09:01
(14) На (7) - ответте.
17 Eeelena
 
28.08.13
09:01
Люди добрые вы можете мне подправить запрос как должно быть?!)
18 chelentano
 
28.08.13
09:03
(16) ТС не читатель :)
19 Мимохожий Однако
 
28.08.13
09:04
РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Период, ) КАК ТоварыВРезервеНаСкладахОстатк
20 Eeelena
 
28.08.13
09:06
(19) это не помогло
21 Rie
 
28.08.13
09:07
(20) А что такое "неправильно"?
22 Мимохожий Однако
 
28.08.13
09:08
(14)Сделай отдельный запрос по остаткам в резерве
23 Eeelena
 
28.08.13
09:18
Сделала вот так не помогло что в соединении не так

ВЫБРАТЬ
                         |    СправочникНоменклатура.Ссылка КАК Номенклатура,
                         |    СправочникНоменклатура.БазоваяЕдиницаИзмерения КАК ЕдИз,
                         |    СправочникНоменклатура.Родитель КАК Группа,
                         |    ЦеныНоменклатурыСрезПоследних.Цена КАК Цена,
                         |    ЦеныНоменклатурыСрезПоследних.ТипЦен КАК ТипЦен,
                         |    ЦеныНоменклатурыСрезПоследних.Период КАК Период,
                         |    ТоварыОрганизацийОстатки.КоличествоОстаток КАК Остаток,
                         |    ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
                         |    ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток КАК ОстатокВРезерве
                         |ИЗ
                         |    РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки КАК ТоварыВРезервеНаСкладахОстатки,
                         |    Справочник.Номенклатура КАК СправочникНоменклатура
                         |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ) КАК ЦеныНоменклатурыСрезПоследних
                         |        ПО (ЦеныНоменклатурыСрезПоследних.ТипЦен = СправочникНоменклатура.ОсновнаяЦенаПродажи)
                         |            И (СправочникНоменклатура.Ссылка = ЦеныНоменклатурыСрезПоследних.Номенклатура)
                         |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыОрганизаций.Остатки(&Период, ) КАК ТоварыОрганизацийОстатки
                         |        ПО (ЦеныНоменклатурыСрезПоследних.Номенклатура = ТоварыОрганизацийОстатки.Номенклатура)
                         |            И (ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры = ТоварыОрганизацийОстатки.ХарактеристикаНоменклатуры)
                         |ГДЕ
                         |    СправочникНоменклатура.ЭтоГруппа = ЛОЖЬ
                         |    И ЦеныНоменклатурыСрезПоследних.Цена > 0
                         |    И ТоварыОрганизацийОстатки.КоличествоОстаток > 0
                         |    И СправочникНоменклатура.ОсновнаяЦенаПродажи <> ЗНАЧЕНИЕ(Справочник.ТипыЦенНоменклатуры.ПустаяСсылка)";
24 Wobland
 
28.08.13
09:20
(23) а что в результате не так?
25 Мимохожий Однако
 
28.08.13
09:20
Убери из запроса цены и остатки для начала.
26 Rie
 
28.08.13
09:21
(23) Что такое "неправильно"? Не на ту дату? Не по тому складу? Не по той номенклатуре? Вместо чисел выдаются даты, умноженные на строки?

(У Вас опять период не задан).
27 Eeelena
 
28.08.13
09:22
остатки выводятся не правильные
28 Wobland
 
28.08.13
09:23
(27)  Не на ту дату? Не по тому складу? Не по той номенклатуре? Вместо чисел выдаются даты, умноженные на строки? Свой вариант
29 Eeelena
 
28.08.13
09:26
не по той номенклатуре
30 Steini
 
28.08.13
09:27
попробуйте заменить

|    РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки КАК ТоварыВРезервеНаСкладахОстатки,
|    Справочник.Номенклатура КАК СправочникНоменклатура

на

|    РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки КАК ТоварыВРезервеНаСкладахОстатки
|    ЛЕВОЕ СОЕДИНЕНИЕ
|    Справочник.Номенклатура КАК СправочникНоменклатура
|    ПО СправочникНоменклатура.Ссылка = ТоварыВРезервеНаСкладахОстатки.Номенклатура
31 Wobland
 
28.08.13
09:27
(29) врёшь же
32 Rie
 
28.08.13
09:27
(29) Ну естественно! Вы же со справочником Номенклатура декартовым произведением соединяете! (запятая - это декартово произведение).
33 Steini
 
28.08.13
09:28
(30) и КОНЕЧНО ЖЕ не забыть НАКОНЕЦ указать в остатках &Период
34 Eeelena
 
28.08.13
09:28
так скажите как соединить правильно??!!!
35 av_x86
 
28.08.13
09:29
Раздел соединений вот так перепишите:
ИЗ
    РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Период, ) КАК ТоварыВРезервеНаСкладахОстатки
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СправочникНоменклатура
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ) КАК ЦеныНоменклатурыСрезПоследних
            ПО СправочникНоменклатура.Ссылка = ЦеныНоменклатурыСрезПоследних.Номенклатура
                И (ЦеныНоменклатурыСрезПоследних.ТипЦен = СправочникНоменклатура.ОсновнаяЦенаПродажи)
        ПО ТоварыВРезервеНаСкладахОстатки.Номенклатура = СправочникНоменклатура.Ссылка
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыОрганизаций.Остатки(&Период, ) КАК ТоварыОрганизацийОстатки
        ПО (ТоварыОрганизацийОстатки.ХарактеристикаНоменклатуры = ТоварыВРезервеНаСкладахОстатки.ХарактеристикаНоменклатуры)
            И (ТоварыОрганизацийОстатки.Номенклатура = ТоварыВРезервеНаСкладахОстатки.Номенклатура)
36 beer_fan
 
28.08.13
09:30
Странно, почему еще фотку не потребовали...
37 Eeelena
 
28.08.13
09:34
av_x86 спасибо,но все равно вывдит не правильно, теперь еще и характеристики дублируются
38 Eeelena
 
28.08.13
09:36
например выводится номенклатура с четырьмя одинаковыми характеристиками, но разныими остатками
39 Eeelena
 
28.08.13
09:38
и по идее он должен выводить и те у которых нет остатка в резерве, но в товарах организации остаток есть
40 Rie
 
28.08.13
09:41
(39) Замечательная функция - ЕСТЬNULL, раз уж у Вас левые соединения.
41 Rie
 
28.08.13
09:42
(38) А это - по разным складам. Либо выберите склад, либо просуммируйте (функцией СУММА при СГРУППИРОВАТЬ ПО).
42 lamesnake
 
28.08.13
09:42
(38)
Наверное, потому что:
>>ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры
43 av_x86
 
28.08.13
10:01
Еще вариант, может поможет:
ИЗ
    РегистрНакопления.ТоварыОрганизаций.Остатки(&Период, ) КАК ТоварыОрганизацийОстатки
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Период, ) КАК ТоварыВРезервеНаСкладахОстатки
        ПО ТоварыОрганизацийОстатки.Номенклатура = ТоварыВРезервеНаСкладахОстатки.Номенклатура
            И ТоварыОрганизацийОстатки.ХарактеристикаНоменклатуры = ТоварыВРезервеНаСкладахОстатки.ХарактеристикаНоменклатуры
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ) КАК ЦеныНоменклатурыСрезПоследних
            ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СправочникНоменклатура
            ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = СправочникНоменклатура.Ссылка
                И ЦеныНоменклатурыСрезПоследних.ТипЦен = СправочникНоменклатура.ОсновнаяЦенаПродажи
        ПО ТоварыОрганизацийОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
            И ТоварыОрганизацийОстатки.ХарактеристикаНоменклатуры = ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры
44 Eeelena
 
28.08.13
10:25
все равно остаток не тот(
45 Eeelena
 
28.08.13
10:29
я проверяю по отчетам ведомость товаров на складах и товары в резерве на складах количество не совпадает
46 av_x86
 
28.08.13
11:57
+(43) Внутреннее соединение надо на левое поменять.
47 Eeelena
 
28.08.13
13:22
все равно не совпадает остаток  av_x86
48 hhhh
 
28.08.13
13:28
(47) ну вот это выкиньте

И ТоварыОрганизацийОстатки.КоличествоОстаток > 0


реально же бред. Если нет остатка, резервы вы вообще выкидываете.
49 Eeelena
 
28.08.13
13:33
ну мне не нужна номенклатура в которой нет остатка
50 Eeelena
 
28.08.13
14:26
мне нужно вывести всю номенклатуру у которой есть основная цена продажи (это такой реквизит у спр номенклатура), значение этой цены, остаток по этой номенклатуре если он не равен нулю и остаток в резерве.
51 Wobland
 
28.08.13
14:27
хм.. неплохая расшифровка "Остаток в резерве выводится неправильно, подскажите как исправить" к 50му посту