Имя: Пароль:
1C
1С v8
Вопрос по запросу
0 shadow_sw
 
11.11.15
05:42
Доброго времени суток!
Работаю над запросом и чего то затупил:

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

УПОРЯДОЧИТЬ ПО
    ДатаКалендаря,
    КоличествоОборот УБЫВ

Как из этого выбрать только максимальные значения товара за день?

Конфа УТ10.3
1 Альбатрос
 
11.11.15
05:45
что такое "максимальные значения товара"?
2 shadow_sw
 
11.11.15
05:47
http://s017.radikal.ru/i413/1511/a0/ceec411eef71.png

результат в консоли
3 Горогуля
 
11.11.15
05:48
предлагаю выкинуть календарь и группировать по началу периода день и номенклатуре
4 Горогуля
 
11.11.15
05:49
(1) ну лексическая сортировка по наименованию же
5 shadow_sw
 
11.11.15
05:49
(3) задача стоит использовать календарь
6 Горогуля
 
11.11.15
05:50
(5) аа.. мне показалось, что задача выбрать максимальное количество
7 shadow_sw
 
11.11.15
05:51
конечно можно при обработке результата, фиксировать дату и выбирать первое значение, но тут вопрос быстродействия опятьже
8 patria0muerte
 
11.11.15
07:03
А чего хочешь то? Узнать какого товара в день было больше всего? Или обороты по регистру на каждый день?
9 shadow_sw
 
11.11.15
07:09
какого товара в день продано максимально
10 patria0muerte
 
11.11.15
07:17
А если два или более товара в день было продано максимального количества?
11 patria0muerte
 
11.11.15
07:17
Т.е. - максимум - 100 штук продали и лопат и термосов.
12 patria0muerte
 
11.11.15
07:19
+ РН Продажи также фиксирует возвраты. Учитываешь, что могут продать 80 лопат и 100 термосов, и в тот же день 40 термосов вернуть? В таком случае - чего будет максимум?
13 Горогуля
 
11.11.15
07:20
(9) упорядочить по количество убыв
(12) обороты же
14 Горогуля
 
11.11.15
07:20
надо ещё придумать, куда календарь прикрутить
15 shadow_sw
 
11.11.15
07:21
(11) да если одинаковое количество продали, показывать надо все товары
(12) товар невозвратный
16 shadow_sw
 
11.11.15
07:21
(14) календарь необходим для фиксации рабочих дней, чтобы отчет не показывал продажи по выходным/праздникам
17 patria0muerte
 
11.11.15
07:29
Примерно так я бы сделал:

ВЫБРАТЬ
    РегламентированныйПроизводственныйКалендарь.ДатаКалендаря
ПОМЕСТИТЬ ВТКалендарь
ИЗ
    РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
ГДЕ
    РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &НачалоПериода И &КонецПериода
    И РегламентированныйПроизводственныйКалендарь.ВидДня = &ВидДня
;

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

СГРУППИРОВАТЬ ПО
    ВТКалендарь.ДатаКалендаря
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТМаксимумТоваров.ДатаКалендаря,
    ПродажиОбороты.Номенклатура,
    ВТМаксимумТоваров.Количество
ИЗ
    ВТМаксимумТоваров КАК ВТМаксимумТоваров
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, День, ) КАК ПродажиОбороты
        ПО ВТМаксимумТоваров.ДатаКалендаря = ПродажиОбороты.Период
            И ВТМаксимумТоваров.Количество = ПродажиОбороты.КоличествоОборот
            И (НЕ ВТМаксимумТоваров.Количество = 0)
18 shadow_sw
 
11.11.15
07:43
(17) спасибо за подсказку, немного не то...
19 patria0muerte
 
11.11.15
07:44
(18) Чем не то?
20 shadow_sw
 
11.11.15
07:48
эм..http://s017.radikal.ru/i405/1511/b2/0207e79dc305.png
то что строки так выглядят это ладно, связь в ВТМаксимумТоваров поправил, но вот количество не верно абсолютно
21 patria0muerte
 
11.11.15
07:55
(20) Надо по идее еще разрез по номенклатуре в продажи вытащить.
22 patria0muerte
 
11.11.15
07:57
(20) Выдерни предварительно в отдельную ВТПродажи поля (Период, Номенклатура, КоличествоОборот) из РН Продажи и с ней уже работай в последствии.
23 shadow_sw
 
11.11.15
07:59
(22) аха сейчас попробую сделать
24 Мимохожий Однако
 
11.11.15
08:00
Если нужные данные по рабочему календарю, то нет смысла искать максимумы продаж.
25 Мимохожий Однако
 
11.11.15
08:00
нужные=нужны
26 shadow_sw
 
11.11.15
08:05
(25) почему?
27 Мимохожий Однако
 
11.11.15
08:17
(26)ИМХО. Задача сформулирована неоднозначно. Если ты берешь "максимальное значение за день", то надо рассматривать каждую продажу в течение дня. А у тебя в запросе обороты с периодичностью День. Кроме того, ты пытаешься привязать это к календарю по рабочим дням. Отсечь выходные всегда можно, но причём здесь максимум продаж? Максимум за день или за период выборки? Сформулируй задачу полностью и будет ясно решение.
28 shadow_sw
 
11.11.15
08:24
Выбрать самые продаваемые товары за каждый из рабочих дней, в указанном периоде. Если было продано несколько товаров с одинаковым количеством, необходимо показывать все эти товары

как то так
29 patria0muerte
 
11.11.15
08:27
В целом - требование странное. Не совсем понятно, какой эффект даст информация вида:
01.02.2015 - Продано 2 автомобиля
02.02.2015 - Продано 100500 пластиковых ложечек

Если будет ставиться отбор по группам товаров - то еще ладно. Но все равно получается складывание мух с котлетами...
30 Мимохожий Однако
 
11.11.15
08:29
(28)Например,за 10.11.2015 продано кастрюля малая 7 штук, вилки - 100 шт., заколки 1000 шт., шурупы 1000 шт Что должно попасть в отчёт?
31 shadow_sw
 
11.11.15
08:30
(30) заколки шурупы
32 ЛисИзЛеса
 
11.11.15
08:31
33 shadow_sw
 
11.11.15
08:34
(32) :) спасибо, ткнули носом :)) оно

всем кто помогал/отвечал, огромное спасибо еще раз
34 patria0muerte
 
11.11.15
08:34
(32) Там в результирующем запросе не выведется день, в который продаж не было вовсе. Если так и надо, то подойдет и тот вариант.

Если нужны продажи вообще на каждый день, включая нулевые - то (17)
35 shadow_sw
 
11.11.15
08:36
(34) дни без продаж не нужны