Имя: Пароль:
1C
1С v8
Как в запросе динамического извлечь весь приход денег по договору в документе?
, ,
0 EarthsSoul
 
06.11.11
18:23
Здравствуйте

При открытий динамического списка мне нужно знать какой остаток по взаиморасчетам с контрагентом и сколько денег в совокупности он заплатил по договору указанному в документе из списка, первый набросок запроса выглядит примерно так:

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

СГРУППИРОВАТЬ ПО
Документбит_ус_ЗаказНаряд.Номер,
Документбит_ус_ЗаказНаряд.Дата,
Документбит_ус_ЗаказНаряд.Автомобиль,
Документбит_ус_ЗаказНаряд.Ссылка,
-Документбит_ус_ЗаказНаряд.СуммаДокумента

Но вот недостаток если движении по регистру накполнеия ВзаиморасчетыСКонтрагентами не было тогда документы ЗаказНаряд вообще не попадут в список, что не правильно. И так как ВзаиморасчетыСКонтрагентамиОстатки имеет возможность извлечения данных с условием считаю не правильным использовать левое соединение, а как передавать значения документа в условие большой вопрос :-).

1) Как правильно извлечь весь приход денег по договору в документе?
2) Как оптимальны образом извлечь остатки по договору в документе?
1 Axel2009
 
06.11.11
18:28
из "где" перенести в "по".  так самое оптимальное
2 EarthsSoul
 
06.11.11
18:34
(1) спасибо первый раз так сделал в запросе )) не первый вопрос ответ известен )0
2) на второй вопрос можно ли данные документа засунуть в условие виртуальной таблицы?
3 EarthsSoul
 
06.11.11
18:34
(1) спасибо первый раз так сделал в запросе )) НА первый вопрос ответ известен ))
2) на второй вопрос можно ли данные документа засунуть в условие виртуальной таблицы?
4 Axel2009
 
06.11.11
19:04
Остатки(, (Организация, Контрагент, Договор) В (ВЫБРАТЬ Орг, Контр, Дог из Док ГДЕ Ссылка = &Ссылка)
5 EarthsSoul
 
06.11.11
19:33
Как этот параметр &Ссылка  установить ?

Я так понимаю что в параметр попадают данные через Запрос.УстановитьПараметр. Как поместить в параметр данные исполняемого запроса не знаю, как это? Или я что то не правильно понял?
6 Axel2009
 
06.11.11
19:53
а да чет я забылся.. сорри
7 Tonik
 
06.11.11
21:32
(5) через временные таблицы например.
8 Axel2009
 
06.11.11
21:35
(7) там в любом случае не понятно какие доки выводятся сейчас в списке
9 Tonik
 
06.11.11
21:39
(8) а это ты никак не поймешь. в любом случае, если есть индекс по измерению регистра, это будет работать быстро
10 EarthsSoul
 
07.11.11
06:33
Спасибо всем за участие, а не то не первый раз задаюсь вопрос номер два...
11 Axel2009
 
07.11.11
09:33
(9) что работать быстро??