Господа, если не сложно и не запарил
пример можно? как вот из этого сделать прямой запрос,
ВремРегистры = СоздатьОбъект("Регистры");
ВремЗаявки = ВремРегистры.Заявки;
ВремЗаявки.УстановитьЗначениеФильтра("Фирма",ФирмаДляОстатковТМЦ, 2);
ВремЗаявки.УстановитьЗначениеФильтра("ДоговорПокупателя", Договор,1);
ТаблицаНоменклатуры.Выгрузить(СписокТМЦ,,,"Номенклатура");
ВремЗаявки. УстановитьЗначениеФильтра("Номенклатура",СписокТМЦ,2);
ВремЗаявки. ВременныйРасчет();
ВремРегистры.Актуальность(1);
ВремРегистры.РассчитатьРегистрыНа(ТекущийДокумент());остальные (8) участвующие во временном расчете, я как нить по образу и подобию постараюсь сделать
а уж потом собирать в один запрос, если это будет возможно.
похоже на правду?
Изменено: Процедура Сформировать()
спНоменклатура = СоздатьОбъект("СписокЗначений");
тзТабл = создатьОбъект("ТаблицаЗначений");
рс = СоздатьОбъект("ODBCRecordset");
ТекстЗапроса = "
|SELECT ЗаявкиОстатки.Фирма [Фирма $Справочник.Фирмы]
| , ЗаявкиОстатки.ДоговорПокупателя [ДоговорПокупателя $Справочник.Договоры]
| , ЗаявкиОстатки.ЗаявкаПокупателя [ЗаявкаПокупателя $Документ.ЗаявкаПокупателя]
| , Sum(ЗаявкиОстатки.КоличествоРасходОстаток) СуммаКоличествоРасходОстаток
| , Sum(ЗаявкиОстатки.СтоимостьРасходОстаток) СуммаСтоимостьРасходОстаток
|FROM $РегистрОстатки.Заявки(,,
| (Фирма IN (SELECT Val FROM #текФирма))
| AND (ДоговорПокупателя = :текДоговор)
| AND (Номенклатура IN (SELECT Val FROM #спНоменклатура)),
| (Фирма, ДоговорПокупателя, ЗаявкаПокупателя),) AS ЗаявкиОстатки
|GROUP BY ЗаявкиОстатки.Фирма
| , ЗаявкиОстатки.ДоговорПокупателя
| , ЗаявкиОстатки.ЗаявкаПокупателя
| WITH ROLLUP
|";
ТекДок.ВыгрузитьТабличнуюЧасть(тзТабл);
тзТабл.Свернуть("Номенклатура","");
тзТабл.Выгрузить(спНоменклатура);
ФирмаДляОстатковТМЦ = глФирмаДляОстатковТМЦ(ТекДок.Фирма);
рс.УложитьСписокОбъектов(ФирмаДляОстатковТМЦ, "#текФирма");
рс.УстановитьТекстовыйПараметр("текДоговор", ТекДок.Договор);
рс.УложитьСписокОбъектов(спНоменклатура, "#спНоменклатура");
рс.отладка(1);
тз = рс.ВыполнитьИнструкцию(ТекстЗапроса);
тз.Выбрать