Имя: Пароль:
1C
1С v8
v8: Помогите запрос написать
0 MP-40
 
18.04.12
08:00
Привет, как в запросе получить следующее?

Есть исходная таблица:

Контрагент    Товар    ТТ
Вася        Люстра    ТоргТочка1
Петя        Банка    ТоргТочка1
Марина        Лопата    ТоргТочка1
Вася        Люстра    торгточка2
Марина        Штаны    торгточка2
Вася        Удочка    торгточка2
Женя        Рубашка    торгточка2


Нужно получать информацию по контрагентам о количестве продаж с каждой из торговых точек.
Делаю общие итоги, в группировочное поле ставлю контрагент, а расчитываю итоговое поле ТТ так - КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ТТ)  
Но, не знаю как в общем итоге просуммировать промежуточные итоги:

Контрагент    Товар    ТТ
           2    //общий итог    
Вася            2    //итог по Васе    
Вася        Люстра    ТоргТочка1
Вася        Люстра    торгточка2
Вася        Удочка    торгточка2
Марина            1    //итог по Марине
Марина        Лопата    ТоргТочка1
Марина        Штаны    торгточка2
Женя            1    //итог по Жене
Женя        Рубашка    торгточка2
Петя            1    //итог по Пете
Петя        Банка    ТоргТочка1



А нужно получить:

Контрагент    Товар    ТТ
           5    // т.е. сумма по по промежуточным итогам    
Вася            2    //итог по Васе    
Вася        Люстра    ТоргТочка1
Вася        Люстра    торгточка2
Вася        Удочка    торгточка2
Марина            1    //итог по Марине
Марина        Лопата    ТоргТочка1
Марина        Штаны    торгточка2
Женя            1    //итог по Жене
Женя        Рубашка    торгточка2
Петя            1    //итог по Пете
Петя        Банка    ТоргТочка1
1 MP-40
 
18.04.12
08:01
Набирал в блокноте, что-то форматирование съехало (((
2 golden-pack
 
18.04.12
08:02
Отчет ? Не на скд ? Почему ?
3 badboychik
 
18.04.12
08:03
а что,

ИТОГИ СУММА(Продажи) ПО ТТ,Общие

не работает?
4 Jstunner
 
18.04.12
08:04
Сам запрос - это тайна?
5 Explorer1c
 
18.04.12
08:04
(0)Неандертальцам привет!
6 badboychik
 
18.04.12
08:05
почему по Васе итог=2 а не 3 ?
7 Explorer1c
 
18.04.12
08:06
(0)Используй построитель отчетов и все будет типтоп!
8 MP-40
 
18.04.12
08:06
Если писать Сумма(КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ТТ)) , то пишет, что недопустимо использовать вложенные агрегирующие функции
9 MP-40
 
18.04.12
08:07
(6) потомучто по нему сработало только 2 различных торговых точки
10 MP-40
 
18.04.12
08:08
(7) ну поидее это запрос для инициализации построителя, но что-то я всеравно не понимаю как это сделать
11 badboychik
 
18.04.12
08:08
(9)тогда по Марине тоже должно быть 2
(8)напиши в 2 шага - пакет с временным запросом. Проблемы то нету тут
12 MP-40
 
18.04.12
08:09
(11) да, верно, я ошибся когда набирал
13 MP-40
 
18.04.12
08:10
(11) временный запрос это временная таблица?
14 golden-pack
 
18.04.12
08:11
какой построитель...скд же есть
15 MP-40
 
18.04.12
08:14
(14) нее, там в отчете много чего еще другого напихано, а как СКД использовать в этом случае я не умею.
16 golden-pack
 
18.04.12
08:17
(15) да что ты тут зливаешь. Что там напихано ?
17 MP-40
 
18.04.12
08:24
(16) много чего. Вы мне можете подсказать по сабжу?
18 Explorer1c
 
18.04.12
08:24
(16)Скд-зло неудобное для пользователя
19 zak555
 
18.04.12
08:25
(0) > Есть исходная таблица

откуда ты её получил ?
20 MP-40
 
18.04.12
08:26
(19) сформировал по регистрам, т.е. это собственно результат запроса
21 zak555
 
18.04.12
08:27
(20) ну так напиши сразу одним запросом
22 badboychik
 
18.04.12
08:28
Надо чтоб и сумма и промежуточные кол-ва были в одном результате?
23 MP-40
 
18.04.12
08:29
(21) я это и хочу сделать. Непонятно только как суммировать промежуточные итоги.
24 MP-40
 
18.04.12
08:29
(22) конечно
25 zak555
 
18.04.12
08:30
(23) исходный запрос покажи
26 badboychik
 
18.04.12
08:31
ВЫБРАТЬ
   Контрагент,
   КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ТТ) КАК КолвоТТ
ПОМЕСТИТЬ Колво
ИЗ Таблиццо
;
ВЫБРАТЬ
  NULL,
  СУММА(К.КолвоТТ)
ИЗ Колво КАК К
ОБЪЕДИНИТЬ
ВЫБРАТЬ
  Контрагент,
  К.КолвоТТ
ИЗ Колво КАК К
27 badboychik
 
18.04.12
08:32
сгруппировать забыл
28 MP-40
 
18.04.12
08:34
(25)
Запрос.Текст = "
|ВЫБРАТЬ
|    ВложенныйЗапрос.ТорговыйПредставитель КАК ТорговыйПредставитель,
|    ВложенныйЗапрос.Подразделение КАК Подразделение,
|    ВложенныйЗапрос.ТекПериод КАК Кол1,
|    ВложенныйЗапрос.ПредПериод КАК ПредПериод,
|    ВложенныйЗапрос.ЭфПериод КАК Кол2,
|    ВложенныйЗапрос.НовыеТТ КАК Кол3,
|    ВЫБОР
|        КОГДА ВложенныйЗапрос.ТекПериод = 0
|                И ВложенныйЗапрос.ПредПериод = 1
|            ТОГДА ВложенныйЗапрос.Контрагент
|        ИНАЧЕ 0
|    КОНЕЦ КАК Кол4,
|    ВложенныйЗапрос.Сумма КАК Кол5,
|    ВложенныйЗапрос.Контрагент.ОбъектВладелец КАК Контрагент,
|    ВложенныйЗапрос.Контрагент КАК ТорговаяТочка,
|    ВложенныйЗапрос.Контрагент.ОбъектВладелец.ОсновнойМенеджерПокупателяДляВыписки КАК Менеджер,
|    ВложенныйЗапрос.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа
|{ВЫБРАТЬ
|    ТорговыйПредставитель.*,
|    Подразделение.*}
|ИЗ
|    (ВЫБРАТЬ
|        ВЫБОР
|            КОГДА ПродажиОбороты.ЗаказПокупателя.Дата = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
|                    ИЛИ ПродажиОбороты.ЗаказПокупателя = НЕОПРЕДЕЛЕНО
|                ТОГДА ПродажиОбороты.ДокументПродажи.ОсновнойМенеджерПокупателяДляВыписки
|            ИНАЧЕ ПродажиОбороты.ЗаказПокупателя.ОсновнойМенеджерПокупателяДляВыписки
|        КОНЕЦ КАК ТорговыйПредставитель,
|        СУММА(ВЫБОР
|                КОГДА ПродажиОбороты.Период МЕЖДУ &НачТекПериод И &КонТекПериод
|                    ТОГДА ПродажиОбороты.СтоимостьОборот
|                ИНАЧЕ 0
|            КОНЕЦ) КАК Сумма,
|        ВЫБОР
|            КОГДА ПродажиОбороты.ЗаказПокупателя.Дата = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
|                    ИЛИ ПродажиОбороты.ЗаказПокупателя = НЕОПРЕДЕЛЕНО
|                ТОГДА ПродажиОбороты.ДокументПродажи.Подразделение
|            ИНАЧЕ ПродажиОбороты.ЗаказПокупателя.Подразделение
|        КОНЕЦ КАК Подразделение,
|        ПродажиОбороты.ДокументПродажи.ТорговаяТочка КАК Контрагент,
|        МАКСИМУМ(ВЫБОР
|                КОГДА ПродажиОбороты.Период МЕЖДУ &НачТекПериод И &КонТекПериод
|                    ТОГДА ПродажиОбороты.ДокументПродажи.ТорговаяТочка
|                ИНАЧЕ 0
|            КОНЕЦ) КАК ТекПериод,
|        МАКСИМУМ(ВЫБОР
|                КОГДА ПродажиОбороты.Период МЕЖДУ &НачПредПериод И &КонПредПериод
|                    ТОГДА 1
|                ИНАЧЕ 0
|            КОНЕЦ) КАК ПредПериод,
|        МАКСИМУМ(ВЫБОР
|                КОГДА ПродажиОбороты.Период МЕЖДУ &НачЭфПериод И &КонЭфПериод
|                    ТОГДА ПродажиОбороты.ДокументПродажи.ТорговаяТочка
|                ИНАЧЕ NULL
|            КОНЕЦ) КАК ЭфПериод,
|        ВЫБОР
|            КОГДА ВложенныйЗапрос.ДокументПродажиДата МЕЖДУ &НачТекПериод И &КонТекПериод
|                ТОГДА 1
|            ИНАЧЕ 0
|        КОНЕЦ КАК НовыеТТ,
|        ПродажиОбороты.Номенклатура.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа
|    {ВЫБРАТЬ
|        ТорговыйПредставитель.*,
|        Подразделение.*}
|    ИЗ
|        РегистрНакопления.Продажи.Обороты(
|                &НачПериода,
|                &КонПериода,
|                Регистратор,
|                ДоговорКонтрагента.ВидДоговора = &СПокупателем
|                    И ДокументПродажи ССЫЛКА Документ.РеализацияТоваровУслуг {(ДокументПродажи.Подразделение) КАК Подразделение}) КАК ПродажиОбороты
|            ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
|                Продажи.ДокументПродажи.ТорговаяТочка КАК ДокументПродажиТорговаяТочка,
|                МИНИМУМ(Продажи.ДокументПродажи.Дата) КАК ДокументПродажиДата
|            ИЗ
|                РегистрНакопления.Продажи КАК Продажи
|            
|            СГРУППИРОВАТЬ ПО
|                Продажи.ДокументПродажи.ТорговаяТочка) КАК ВложенныйЗапрос
|            ПО ПродажиОбороты.ДокументПродажи.ТорговаяТочка = ВложенныйЗапрос.ДокументПродажиТорговаяТочка
|    ГДЕ
|        ПродажиОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
|    
|    СГРУППИРОВАТЬ ПО
|        ПродажиОбороты.ДокументПродажи.ТорговаяТочка,
|        ВЫБОР
|            КОГДА ПродажиОбороты.ЗаказПокупателя.Дата = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
|                    ИЛИ ПродажиОбороты.ЗаказПокупателя = НЕОПРЕДЕЛЕНО
|                ТОГДА ПродажиОбороты.ДокументПродажи.ОсновнойМенеджерПокупателяДляВыписки
|            ИНАЧЕ ПродажиОбороты.ЗаказПокупателя.ОсновнойМенеджерПокупателяДляВыписки
|        КОНЕЦ,
|        ВЫБОР
|            КОГДА ПродажиОбороты.ЗаказПокупателя.Дата = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
|                    ИЛИ ПродажиОбороты.ЗаказПокупателя = НЕОПРЕДЕЛЕНО
|                ТОГДА ПродажиОбороты.ДокументПродажи.Подразделение
|            ИНАЧЕ ПродажиОбороты.ЗаказПокупателя.Подразделение
|        КОНЕЦ,
|        ВЫБОР
|            КОГДА ВложенныйЗапрос.ДокументПродажиДата МЕЖДУ &НачТекПериод И &КонТекПериод
|                ТОГДА 1
|            ИНАЧЕ 0
|        КОНЕЦ,
|        ПродажиОбороты.Номенклатура.НоменклатурнаяГруппа) КАК ВложенныйЗапрос
|ГДЕ
|    ВложенныйЗапрос.ТорговыйПредставитель = &ТорговыйПредставитель
|{ГДЕ
|    ВложенныйЗапрос.Подразделение.*,
|    ВложенныйЗапрос.ТорговыйПредставитель.*}
|ИТОГИ
|    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Кол1),
|    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Кол2),
|    СУММА(Кол3),
|    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Кол4),
|    СУММА(Кол5)
|ПО
|    ОБЩИЕ,
|    Подразделение,
|    ТорговыйПредставитель,
|    Контрагент";
29 badboychik
 
18.04.12
08:43
ипона мааать...

вложенные запросы - зло. Будет читабельнее если выносить во временные таблицы
30 zak555
 
18.04.12
08:47
по-моему, проще переписать всё заново

напиши, что нужно получить и что дано
31 MP-40
 
18.04.12
08:49
(29) вы про пакетные запросы?
32 MP-40
 
18.04.12
08:53
(30) это сложновато написать.
33 zak555
 
18.04.12
08:53
(32) откуда ты тогда знаешь, что нужно делать, если ты не знаешь, как написать ?
34 MP-40
 
18.04.12
08:56
(33) писать просто много, конфа у меня тоже переделана сильно.
35 zak555
 
18.04.12
08:58
(34) что з-а конфа ?
36 MP-40
 
18.04.12
09:04
(34) раньше была торговля
37 zak555
 
18.04.12
09:24
(36) что же с ней стало ?
38 MP-40
 
18.04.12
09:32
(37) ну, меня ее много.
В общем, нужно за период получать информацию по продажам по торговым точкам в разрезе контрагентов, торговых представителей, менеджеров, номенклатурных групп. Данные берутся из регистра ПродажиИОбороты. В приведенном мною запросе обозначено как это делается.
39 MP-40
 
18.04.12
09:32
(38) *...меняли ее много.
40 zak555
 
18.04.12
09:37
так ты регистр распиши
41 Aprobator
 
18.04.12
09:38
(28) хм - построителем общие итоги не вывести что ли? И чего условие по торговому представителю не в параметрах виртуальной таблицы?
42 MP-40
 
18.04.12
09:42
(41) из консоли скопировал текст, в которой по конкретному торговику смотрел