Имя: Пароль:
1C
1С v8
Подскажите с запросом
0 mirrr
 
16.11.11
14:45
Объединение 2-х таблиц:

ВЫБРАТЬ
   Таб1.Договор КАК Договор,
   Таб1.Поставка КАК Поставка,
   Таб1.Оплата КАК Оплата,
   СУММА(Таб1.СуммаДока) КАК СуммаДока
ИЗ
   (ВЫБРАТЬ
       Покупка.Договор КАК Договор,
       Покупка.Ссылка КАК Поставка,
       0 КАК Оплата,
       Покупка.СуммаДокумента КАК СуммаДока
   ИЗ
       Документ.Покупка КАК Покупка
   ГДЕ
       Покупка.Договор В ИЕРАРХИИ(&ВыбДог)
   
   ОБЪЕДИНИТЬ
   
   ВЫБРАТЬ
       Оплата.Договор,
       0,
       Оплата.Ссылка,
       Оплата.СуммаДокумента
   ИЗ
       Документ.Оплата КАК Оплата
   ГДЕ
       Оплата.Договор В ИЕРАРХИИ(&ВыбДог)) КАК Таб1

СГРУППИРОВАТЬ ПО
   Таб1.Договор,
   Таб1.Поставка,
   Таб1.Оплата

УПОРЯДОЧИТЬ ПО
   Договор


выводит данные в виде:
-------- --------      -------  ----------
Договор  Поставка      Оплата   СуммаДока
-------- --------      -------  ----------
1                      ДокОплаты1 1000
1                      ДокОплаты2 2000  
1                      ДокОплаты3 3000    
1        ДокПоставки1             1200
1        ДокПоставки2             2500
1        ДокПоставки3             3000

Можно как-то сделать, чтобы на одной строке были и документ поставки, и оплаты, а не на отдельных строках? Сумму можно сделать для них отдельно.
1 shuhard
 
16.11.11
14:45
(0) используй группировку Люк
2 Рэйв
 
16.11.11
14:47
(0)Присоединяй оплату левым соединением к постакам по договору.Если я правильно понял
3 aleks-id
 
16.11.11
14:48
(2) там договор то один...
4 Рэйв
 
16.11.11
14:50
(3)Так я по нему и предлагаю соединять
5 mirrr
 
16.11.11
14:51
(1) чего?
6 mirrr
 
16.11.11
14:58
(2) тогда в моем случае получится, что для каждого документа поставки будет присоединено 3 дока оплаты. А нужно чтоб в результате получилось всего 3 строки:
-------- --------      -------  -------------  -----------
Договор  Поставка      Оплата   СуммаПоставки  СуммаОплаты
-------- --------      -------  -------------  -----------
1        ДокПоставки1  ДокОплаты1 ХХХ              ХХХ    
1        ДокПоставки2  ДокОплаты2 ХХХ              ХХХ
1        ДокПоставки3  ДокОплаты3 ХХХ              ХХХ

Как в таком виде сделать?
7 Рэйв
 
16.11.11
15:01
(6)Да. что-то вроде.
8 mirrr
 
16.11.11
15:10
(7) как в 6 можно сделать?
9 mirrr
 
16.11.11
15:10
(7) как в (6) можно сделать?
10 mirrr
 
16.11.11
15:20
?
11 НЕА123
 
16.11.11
15:21
ИТОГИ ПО
12 mirrr
 
16.11.11
15:26
(11) пробовал, все равно поставка и оплата на разных строках
13 el-gamberro
 
16.11.11
15:27
Номера строк проставь и по ним тоже сгруппируй.
14 mirrr
 
16.11.11
15:29
хорошая мысль, попробую
15 aleks-id
 
16.11.11
15:31
(13) ждем вопрос "как пронумеровать строки в запросе" )
16 aleks-id
 
16.11.11
15:33
кстати, а почему именно так
ДокПоставки1  ДокОплаты1
ДокПоставки2  ДокОплаты2
ДокПоставки3  ДокОплаты3

а не
ДокПоставки1  ДокОплаты3
ДокПоставки2  ДокОплаты1
ДокПоставки3  ДокОплаты2
17 mirrr
 
16.11.11
15:34
(15) угадал))
18 aleks-id
 
16.11.11
15:34
(17) сначала на (16) ответь
19 mirrr
 
16.11.11
15:35
(16) надо в хронологической последовательности.
А с нумерацией у меня туго..
20 aleks-id
 
16.11.11
15:37
ну тогда пакет запросов тебя должон спасти
21 mirrr
 
16.11.11
15:38
т.е. документов поставок может быть меньше, равно или больше документов оплат - все варианты.
22 mirrr
 
16.11.11
15:44
(20) подробнее можно?
23 ilya_i
 
16.11.11
15:56
Есть подозрение, что запрос должен выдавать таблицу аля распределение оплат по поставкам, и метод вероятно ФИФО, так тогда нет такого запроса, это только при обходе можно сделать.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший