Имя: Пароль:
1C
1С v8
Помогите с запросом, плиз
,
0 xaozai
 
20.04.12
00:30
Есть заказ покупателя на сумму 200 р. и две реализации по этому заказу на 100 р. каждая. Нужно сделать такой отчет:
Заказ покупателя №1 от 01.01.2012         200 р.      
         Реализация №1 от 02.01.2012                 100 р.
         Реализация №2 от 03.01.2012                 100 р.
Итого:                                    200 р.      200 р.


Сделал запрос с левым соединением, получилось так:
Заказ покупателя №1 от 01.01.2012         400 р.    
         Реализация №1 от 02.01.2012                 100 р.
         Реализация №2 от 03.01.2012                 100 р.
Итого:                                    400 р.      200 р.


Проблема в том, что сумма документа "Заказ покупателя" в итоге по группировке складывается.

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

Как сделать правильно?
1 Михаил Козлов
 
20.04.12
01:06
Попробуйте МАКСИМУМ (или МИНИУМ) для СуммаЗаказ.
2 xaozai
 
20.04.12
01:13
(1) Да, для одного заказа подходит. А если будет несколько заказов, то в общем итоге сумма заказов будет неправильно считаться.

Что еще можно придумать?..
3 perec1982
 
20.04.12
02:08
Какая колнфа?
4 Михаил Козлов
 
20.04.12
02:59
(2) И для нескольких тоже.
5 perec1982
 
20.04.12
03:02
Если УТ то есть отчет "Анализ заказов покупателей", это как раз то что ты пишешь
6 xaozai
 
20.04.12
09:31
(4) В общем итоге будет максимум (или минимум), а нужна сумма.
(5) В этом примере документы взял из УТ, т.к., у многих она есть, но в реальности у меня документы другие. Задача такая же.
7 х86
 
20.04.12
09:34
(0)объедини таблицы
8 Ненавижу 1С
 
гуру
20.04.12
09:35
(6) бери из регистров
9 xaozai
 
20.04.12
09:37
(7) Как? Там же пустые строки будут. Можно пример?
(8) У меня специфический случай, нужно именно из документов.
10 Trance_1C
 
20.04.12
09:39
бугага запрос :)
сделай выборку в СКД со строками
Заказ
Подчиненный Документ отгрузки Заказа
Сумма отгрузки
Сумма заказа
Расхождение
11 Ненавижу 1С
 
гуру
20.04.12
09:40
(9) тогда через ОБЪЕДИНИТЬ
12 xaozai
 
20.04.12
09:42
(11) Будь добр, покажи пример, применительно к (0).
13 Irek-kazan
 
20.04.12
09:47
гы :) дели на два
14 xaozai
 
20.04.12
09:53
(13) Делить на Количество(Реализация) в формуле расчета ресурса можно, но если будет вложенная группировка по номенклатуре, например (она может быть, может не быть), то будет снова замножаться...
15 Ненавижу 1С
 
гуру
20.04.12
09:58
ВЫБРАТЬ
   ЗаказПокупателяУслуги.Ссылка КАК Заказ,
   ЗаказПокупателяУслуги.Номенклатура КАК Номенклатура,
   ЗаказПокупателяУслуги.Количество КАК КоличествоЗаказ,
   ЗаказПокупателяУслуги.Сумма КАК СуммаЗаказ,
   NULL КАК Реализация,
   NULL КАК КоличествоРеализация,
   NULL КАК СуммаРеализация
ИЗ
   Документ.ЗаказПокупателя.Услуги КАК ЗаказПокупателяУслуги

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   РеализацияТоваровУслугУслуги.Ссылка.Сделка,
   РеализацияТоваровУслугУслуги.Номенклатура,
   NULL,
   NULL,
   РеализацияТоваровУслугУслуги.Ссылка,
   РеализацияТоваровУслугУслуги.Количество,
   РеализацияТоваровУслугУслуги.Сумма
ИЗ
   Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслугУслуги
ИТОГИ
   СУММА(КоличествоЗаказ),
   СУММА(СуммаЗаказ),
   СУММА(КоличествоРеализация),
   СУММА(СуммаРеализация)
ПО
   Заказ
16 xaozai
 
20.04.12
10:06
(15) Огромное спасибо!
17 xaozai
 
20.04.12
10:23
(15) У меня еще небольшой вопрос: если в первом из объединения запросе будет сделан отбор, во второй из объединения запрос будут выбраны все реализации и потом сделается объединение или во второй сразу будут выбираться реализации, которые подходят по первому запросу?

P.S.: Попробовал еще в СКД сделать. Если делать левое соединение не в запросе, а в самой СКД, то всё выводится правильно...
18 Ненавижу 1С
 
гуру
20.04.12
10:27
(17) отборы надо делать в обоих
19 xaozai
 
20.04.12
10:32
(18) Еще раз спасибо!
2 + 2 = 3.9999999999999999999999999999999...