Имя: Пароль:
1C
1С v8
Запрос. Последняя цена номенклатуры по контрагентам
,
0 nk251
 
08.07.21
14:14
Доброго дня, прошу помощи новичку с запросом. Задача следующая: Надо получить последние цены всей реализованной номенклатуры по каждому контрагенту
ВЫБРАТЬ
    Продажи.Номенклатура КАК Номенклатура,
    Продажи.Контрагент КАК Контрагент,
    Продажи.Регистратор.МоментВремени КАК МоментВремени,
    Продажи.СтоимостьОборот / Продажи.КоличествоОборот Как Цена
ИЗ
    РегистрНакопления.Продажи.Обороты(, &КонПериода, Регистратор) КАК Продажи
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            Продажи.Номенклатура КАК Номенклатура,
            МАКСИМУМ(Продажи.Период) КАК Период
        ИЗ
            РегистрНакопления.Продажи.Обороты(, &КонПериода, Регистратор) КАК Продажи
        
        СГРУППИРОВАТЬ ПО
            Продажи.Номенклатура) КАК ВложенныйЗапрос
        ПО Продажи.Номенклатура = ВложенныйЗапрос.Номенклатура
            И Продажи.Период = ВложенныйЗапрос.Период
Вот так получил просто цены последней номенклатуры но без учета контрагентов
1 Жан Пердежон
 
08.07.21
14:22
ну так добавь контрагента в условие
2 Жан Пердежон
 
08.07.21
14:23
и да, виртуальные таблицы тут не нужны тебе
3 nk251
 
08.07.21
14:41
(1) Спасибо что ткнули носом)
ВЫБРАТЬ
    Продажи.Номенклатура КАК Номенклатура,
    Продажи.Контрагент КАК Контрагент,
    Продажи.Регистратор.МоментВремени КАК МоментВремени,
    ВЫБОР
        КОГДА ЕСТЬNULL(Продажи.КоличествоОборот, 0) > 0
            ТОГДА Продажи.СтоимостьОборот / Продажи.КоличествоОборот
        ИНАЧЕ 0
    КОНЕЦ КАК Цена
ИЗ
    РегистрНакопления.Продажи.Обороты(, &КонПериода, Регистратор, ) КАК Продажи
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            Продажи.Номенклатура КАК Номенклатура,
            МАКСИМУМ(Продажи.Период) КАК Период,
            Продажи.Контрагент КАК Контрагент
        ИЗ
            РегистрНакопления.Продажи.Обороты(, &КонПериода, Регистратор, ) КАК Продажи
        
        СГРУППИРОВАТЬ ПО
            Продажи.Номенклатура,
            Продажи.Контрагент) КАК ВложенныйЗапрос
        ПО Продажи.Номенклатура = ВложенныйЗапрос.Номенклатура
            И Продажи.Период = ВложенныйЗапрос.Период

УПОРЯДОЧИТЬ ПО
    Продажи.Номенклатура
Работает, для наглядности бы еще показали как это красивее и компактнее сделать был бы очень благодарен
4 Жан Пердежон
 
08.07.21
14:58
(3) а теперь сделай 2 документа на 1 секунду,
а в один из них добавь один и тот же товар с разными ценами
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший