всем привет. продолжаю осваивать прямые запросы (OLE DB). запрос по регистру взаиморасчеты: - контрагенты, кредДокументы - начальный НачОст, приход, расход, конОст фильтр по клиентам выдает или пустую ТЗ или только частично... (сравниваю с "традиционным запросом") текстЗапроса = " | SELECT | VT.Контрагент as [Контрагент $Справочник.Контрагенты], | VT.КредДокумент as [КредДокумент $Документ], | Sum(VT.ДолгНачальныйОстаток) as ДолгНачальныйОстаток, | Sum(VT.ДолгПриход) as ДолгПриход, | Sum(VT.ДолгРасход) as ДолгРасход, | Sum(ДолгНачальныйОстаток) + Sum(ДолгПриход) - Sum(ДолгРасход) as ДолгКонечныйОстаток |FROM ( SELECT | $РегИтоги.Контрагент as Контрагент, | $РегИтоги.КредДокумент as КредДокумент, | $РегИтоги.Долг as ДолгНачальныйОстаток, | 0 as ДолгПриход, | 0 as ДолгРасход, | $РегИтоги.Долг as ДолгКонечныйОстаток | FROM | $РегистрИтоги.ВзаиморасчетыПокупателей as РегИтоги | WHERE | РегИтоги.PERIOD = :ДатаПериодаОстатков~~ | AND (1=0 | OR $РегИтоги.Долг<>0) | AND $РегИтоги.Контрагент IN (SELECT Val FROM :ВременнаяТаблица) | UNION ALL | SELECT | $РегДвиж.Контрагент as Контрагент, | $РегДвиж.КредДокумент as КредДокумент, | $РегДвиж.Долг*(1-регДвиж.DEBKRED*2) as ДолгНачальныйОстаток, | 0 as ДолгПриход, | 0 as ДолгРасход, | $РегДвиж.Долг*(1-регДвиж.DEBKRED*2) as ДолгКонечныйОстаток | FROM | $Регистр.ВзаиморасчетыПокупателей as РегДвиж | INNER | JOIN 1SJourn as J ON РегДвиж.IDDOC=J.IDDOC | WHERE | (J.DATE >= :ДатаНачалаОстатков~~) AND (J.DATE <= :ДатаКонцаОстатков~~) AND (J.$ФлагРегистра.ВзаиморасчетыПокупателей=1) | AND $РегДвиж.Контрагент IN (SELECT Val FROM :ВременнаяТаблица) | UNION ALL SELECT | $РегПрихРасх.Контрагент as Контрагент, | $РегПрихРасх.КредДокумент as КредДокумент, | 0 as ДолгНачальныйОстаток, | (1-РегПрихРасх.DEBKRED)*$РегПрихРасх.Долг as ДолгПриход, | РегПрихРасх.DEBKRED*$РегПрихРасх.Долг as ДолгРасход, | 0 as ДолгКонечныйОстаток | FROM | $Регистр.ВзаиморасчетыПокупателей as РегПрихРасх | INNER | JOIN 1SJourn as J ON РегПрихРасх.IDDOC=J.IDDOC | WHERE | (J.DATE >= :ДатаНачала~~) AND (J.DATE <= :ДатаКонца~~) AND (J.$ФлагРегистра.ВзаиморасчетыПокупателей=1) | AND $РегПрихРасх.Контрагент IN (SELECT Val FROM :ВременнаяТаблица) |) as VT | | |GROUP BY | Контрагент, | КредДокумент |HAVING | Sum(ДолгНачальныйОстаток) <> 0 or | Sum(ДолгПриход) <> 0 or | Sum(ДолгРасход) <> 0 or | Sum(ДолгКонечныйОстаток) <> 0"; ВременнаяТаблица = "Группа"; RS.УложитьСписокОбъектов(ВыбКлиенты, ВременнаяТаблица,"Номенклатура"); RS.УстановитьТекстовыйПараметр ("ВременнаяТаблица", ВременнаяТаблица);
ВыбДата=НачДата; RS.УстановитьТекстовыйПараметр("ДатаНачала", НачДата); RS.УстановитьТекстовыйПараметр("ДатаКонца", КонДата); ),-1)); RS.УстановитьТекстовыйПараметр("ДатаНачалаОстатков", BegOfMonth(ВыбДата)); RS.УстановитьТекстовыйПараметр("ДатаКонцаОстатков", ВыбДата); RS.отладка(1);
тз_2 = RS.ВыполнитьИнструкцию(ТекстЗапроса);
и вопрос №2: как вывести в таблицу реквизиты из документов? например (КредДок.Менеджер.Код)
спасибо
|