Имя: Пароль:
1C
1С v8
Последние дата и сумма продажи по партнеру (УТ 11)
,
0 shhh2000
 
08.02.23
12:30
Нужно по каждому партнеру получить последние дату и сумму продажи. Делаю следующий запрос, но так суммируются все суммы по документам продажи, которые есть. А нужна сумма только по последнему документу. Знаю, что элементарно, но не получается(

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

СГРУППИРОВАТЬ ПО
    ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаПоПартнерам.Партнер,
    ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаПоПартнерам.Организация
1 Жан Пердежон
 
08.02.23
12:46
Периодичность - регистратор
2 shhh2000
 
08.02.23
12:51
(1) это ничего не меняет(
3 Жан Пердежон
 
08.02.23
12:53
ну как минимум у тебя регистратор появится в таблице
4 Жан Пердежон
 
08.02.23
12:53
или ты ждешь, что за тебя весь запрос напишут?
5 shhh2000
 
08.02.23
12:56
(4) нет, жду подсказки, потому что не могу разобраться)
6 shhh2000
 
08.02.23
13:01
(5) Сделала так

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

СГРУППИРОВАТЬ ПО  
    ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаПоПартнерам.Партнер,
    ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаПоПартнерам.Организация
7 shhh2000
 
08.02.23
13:01
(4) но как с суммой быть?(
8 AlvlSpb
 
08.02.23
13:13
(7) Сначала выбирай в ВТ вообще БЕЗ суммы (получаешь последнюю дату продажи)
Потом внутренним соединением ВТ с тем же РН по контрагенту, Организации и ПЕРИОДУ и вот здесь выводи сумму документа
9 AlvlSpb
 
08.02.23
13:14
Текст = "
        |ВЫБРАТЬ
        |    МАКСИМУМ(Закупки.Период) КАК Период,
        |    Закупки.АналитикаУчетаНоменклатуры.Номенклатура КАК АналитикаУчетаНоменклатурыНоменклатура
        |ПОМЕСТИТЬ ВТ_Период
        |ИЗ
        |    РегистрНакопления.Закупки КАК Закупки
        |ГДЕ
        |    Закупки.АналитикаУчетаНоменклатуры.Номенклатура В(&Номенклатура)
        |
        |СГРУППИРОВАТЬ ПО
        |    Закупки.АналитикаУчетаНоменклатуры.Номенклатура
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Закупки.Период КАК ДатаЗакупки,
        |    Закупки.Сумма / Закупки.Количество КАК ЦенаЗакупки,
        |    ВТ_Период.АналитикаУчетаНоменклатурыНоменклатура КАК Номенклатура
        |ИЗ
        |    РегистрНакопления.Закупки КАК Закупки
        |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Период КАК ВТ_Период
        |        ПО Закупки.Период = ВТ_Период.Период
        |            И Закупки.АналитикаУчетаНоменклатуры.Номенклатура = ВТ_Период.АналитикаУчетаНоменклатурыНоменклатура
        |;
Вот делал когда-то. Немного другое (искал цену последней закупки), но смысл тот же
10 shhh2000
 
08.02.23
13:19
(9) блин, а ведь была такая мысль, сейчас попробую, спасибо))
11 shhh2000
 
08.02.23
13:26
(9) но там нет периода в полях, по которым можно соединиться
12 НафНаф
 
08.02.23
13:29
а если в один день несколько реализаций клиенту?
13 AlvlSpb
 
08.02.23
13:30
(11) Бери физическую таблицу РН как в примере. Там есть период
14 hockeyist
 
08.02.23
13:32
(10) Если бы вы спросили GPT, то получили бы несколько более компактный вариант типа такого:

ВЫБРАТЬ валюта, курс, дата
ИЗ РегистрСведений.КурсыВалют КАК КурсыВалют
ГДЕ дата В (ВЫБРАТЬ МАКСИМУМ(дата) ИЗ КурсыВалют КАК Т ГДЕ Т.Валюта = КурсыВалют.Валюта)

Рекомендую
15 AlvlSpb
 
08.02.23
13:34
(12) МАКСИМУМ выдаст все-равно только ОДНУ самую последнюю запись и в РН период идет со временем
16 НафНаф
 
08.02.23
13:35
(15) я у автора вопрос спросил другой, как работает МАКСИМУМ - я в курсе