Имя: Пароль:
1C
 
Запрос для получения данных
,
0 Margo95
 
01.11.20
19:08
Добрый день, подскажите пожалуйста, прошерстила уже кучу тем, но не могу понять в чем проблема, написала запрос, который находит последнею цену товара(по которой он был продан последний раз), выводит всё отлично, но когда я создаю еще одну ВТ чтобы узнать информацию о количестве полученного и количестве проданного товара, то документы у меня все выводятся по 2 раза, цена естественно не меняется, остаётся такой какой и должна быть, но вот проблема в том, что документы выводятся по 2 раза, выводится не последний документ с приходом и расходом, а вообще все которые есть, и не работает ЕСТЬNULL(не выводит в таблице 0)


ВЫБРАТЬ
    ПродажиОбороты.Номенклатура КАК Номенклатура,
    МАКСИМУМ(ПродажиОбороты.Регистратор) КАК Регистратор
ПОМЕСТИТЬ ПоследнийДокумент
ИЗ
    РегистрНакопления.Продажи.Обороты(, , Регистратор, ) КАК ПродажиОбороты

СГРУППИРОВАТЬ ПО
    ПродажиОбороты.Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ПродажиОбороты.Номенклатура КАК Номенклатура,
    ПродажиОбороты.Регистратор КАК Регистратор,
    ПродажиОбороты.СуммаПродажиОборот / ПродажиОбороты.КоличествоОборот КАК ЦенаПоследнейПродажи
ПОМЕСТИТЬ ПоследняяЦена
ИЗ
    ПоследнийДокумент КАК ПоследнийДокумент
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(, , Регистратор, ) КАК ПродажиОбороты
        ПО ПоследнийДокумент.Номенклатура = ПродажиОбороты.Номенклатура
            И ПоследнийДокумент.Регистратор = ПродажиОбороты.Регистратор
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ОстаткиТовараОстаткиИОбороты.Номенклатура КАК Номенклатура,
    ЕСТЬNULL(ОстаткиТовараОстаткиИОбороты.КоличествоПриход, 0) КАК КоличествоПриход,
    ЕСТЬNULL(ОстаткиТовараОстаткиИОбороты.КоличествоРасход, 0) КАК КоличествоРасход,
    ПоследняяЦена.ЦенаПоследнейПродажи КАК ЦенаПоследнейПродажи
ПОМЕСТИТЬ РасходПриход
ИЗ
    РегистрНакопления.Остатки.ОстаткиИОбороты(, , Регистратор, , ) КАК ОстаткиТовараОстаткиИОбороты,
    ПоследняяЦена КАК ПоследняяЦена

СГРУППИРОВАТЬ ПО
    ОстаткиТовараОстаткиИОбороты.Номенклатура,
    ОстаткиТовараОстаткиИОбороты.КоличествоПриход,
    ОстаткиТовараОстаткиИОбороты.КоличествоРасход,
    ПоследняяЦена.ЦенаПоследнейПродажи
1 Ёпрст
 
01.11.20
19:19
(0) максимуи(регистратор) это не последний документ, если что
2 Margo95
 
01.11.20
19:21
(1) если они регистрируются по порядку, то приходная и расходная накладная, это разные документы и он будет выводить последние, разве не так?
3 Ёпрст
 
01.11.20
19:22
Ну и в последнем запросе надо  делать left join, а нк cross join
4 Ёпрст
 
01.11.20
19:23
(2) не так. Максимум ссылка <> максимум дата. Только в редких, частных случаях, которые в обычной работе с иб не встречаются
5 Margo95
 
01.11.20
19:29
(4) хорошо, учту, этот момент исправила и сделала максимум по дате, но главный вопрос все равно остаётся с количеством прихода от поставщика и продажей, почему когда я добавляю в новый запрос, вторую ВТ(которая хранит последнею цену), то у меня выводятся просто все документы, которые только возможно с приходом и расходом + они дублируются, сперва идёт товар первый, его расход, приход и после его цена, 2й строкой, этот же товар(с этой же РН или ПН) и цена уже абсолютно другого товара
6 Margo95
 
01.11.20
19:41
не понимаю, как мне теперь узнать по этим же товарам, последнее количество прихода и расхода, добавляю регистр, но дублируется всё и выводятся не последние документы ;(
7 Ёпрст
 
01.11.20
19:46
(6) в последнем запросе сделай левое соединение с таблмчкой цен
8 Margo95
 
01.11.20
19:54
(7) Спасибо, получилось, последний вопрос остался, у меня по 3м товарам был сегодня приход, и сегодня же была продажа, хочу уточнить, у меня в количестве прихода - пусто (0), так и должно быть? Допустим есть 10 документов, он по ним выводит только последнею цену продажи, себестоимость товара и количество расход, а количество приход пустое во всех товарах