Есть такой запрос: ТЗ = СоздатьОбъект("ТаблицаЗначений"); ЛокODBC = СоздатьОбъект("AccountsRecordset"); ЛокODBC.УстановитьТекстовыйПараметр("ВыбФирма",ВыбФирма); ЛокODBC.УстановитьТекстовыйПараметр("ВыбСчет", ВыбСчет); ЛокODBC.УстановитьТекстовыйПараметр("НачДата", НачДата); ЛокODBC.УстановитьТекстовыйПараметр("КонДата", КонДата); ТекстЗапроса = " |SELECT Счет [Счет $Счет.Основной] | , Субконто1 [Субконто1 $Субконто] | , Субконто1_вид Субконто1_вид | , Субконто2 [Субконто2 $Субконто] | , Субконто2_вид Субконто2_вид | , Субконто3 [Субконто3 $Субконто] | , Субконто3_вид Субконто3_вид | , СуммаОборотДт as ДО | , КоличествоОборотДт as ДОК | , СуммаОборотКт as КО | , КоличествоОборотКт as КОК |FROM $БИОбороты.Основной(:НачДата, :КонДата ~,,, | (Счет = :ВыбСчет),, | (РазделительУчета = :ВыбФирма) | ) БИОборотыОсновной |"; локТЗ = СоздатьОбъект("ТаблицаЗначений"); Если ЛокODBC.ВыполнитьИнструкцию(ТекстЗапроса,локТЗ, 1) = 0 Тогда Сообщить("Запрос не выполнен!", "!!!"); Возврат; КонецЕсли; локТЗ.ВыбратьСтроку(); локТЗ.Выгрузить(ТЗ); ЛокODBC.УстановитьТекстовыйПараметр("ВыбФирма",ВыбФирма); ЛокODBC.УстановитьТекстовыйПараметр("ВыбСчет", ВыбСчет); ЛокODBC.УстановитьТекстовыйПараметр("НачДата", НачДата); ТекстЗапроса = " |SELECT | ОсновнойОстатки.Счет [Счет $Счет.Основной] | , ОсновнойОстатки.Субконто1 [Субконто1 $Субконто] | , ОсновнойОстатки.Субконто1_вид | , ОсновнойОстатки.Субконто2 [Субконто2 $Субконто] | , ОсновнойОстатки.Субконто2_вид | , ОсновнойОстатки.Субконто3 [Субконто3 $Субконто] | , ОсновнойОстатки.Субконто3_вид | , ОсновнойОстатки.СуммаОстатокДт as СНД | , ОсновнойОстатки.КоличествоОстатокДт as СНДК | , ОсновнойОстатки.СуммаОстатокКт as СНК | , ОсновнойОстатки.КоличествоОстатокКт as СНКК |FROM $БИОстатки.Основной(:НачДата,, | (Счет = :ВыбСчет),, | (РазделительУчета = :ВыбФирма) |) AS ОсновнойОстатки |"; Если ЛокODBC.ВыполнитьИнструкцию(ТекстЗапроса,локТЗ, 1) = 0 Тогда Сообщить("Запрос не выполнен!", "!!!"); Возврат; КонецЕсли; НачСтрТЗ = ТЗ.КоличествоСтрок(); ТЗ.ВставитьКолонку("СНД",8,"Число"); ТЗ.ВставитьКолонку("СНДК",9,"Число"); ТЗ.ВставитьКолонку("СНК",10,"Число"); ТЗ.ВставитьКолонку("СНКК",11,"Число"); ТЗ.КоличествоСтрок(НачСтрТЗ+локТЗ.КоличествоСтрок()); 9,10,11"); ЛокODBC.УстановитьТекстовыйПараметр("ВыбФирма",ВыбФирма); ЛокODBC.УстановитьТекстовыйПараметр("ВыбСчет", ВыбСчет); ЛокODBC.УстановитьТекстовыйПараметр("КонДата", КонДата+1); ТекстЗапроса = " |SELECT | ОсновнойОстатки.Счет [Счет $Счет.Основной] | , ОсновнойОстатки.Субконто1 [Субконто1 $Субконто] | , ОсновнойОстатки.Субконто1_вид | , ОсновнойОстатки.Субконто2 [Субконто2 $Субконто] | , ОсновнойОстатки.Субконто2_вид | , ОсновнойОстатки.Субконто3 [Субконто3 $Субконто] | , ОсновнойОстатки.Субконто3_вид | , ОсновнойОстатки.СуммаОстатокДт as СКД | , ОсновнойОстатки.КоличествоОстатокДт as СКДК | , ОсновнойОстатки.СуммаОстатокКт as СКК | , ОсновнойОстатки.КоличествоОстатокКт as СККДК |FROM $БИОстатки.Основной(:КонДата,, | (Счет = :ВыбСчет),, | (РазделительУчета = :ВыбФирма) |) AS ОсновнойОстатки |"; Если ЛокODBC.ВыполнитьИнструкцию(ТекстЗапроса,локТЗ, 1) = 0 Тогда Сообщить("Запрос не выполнен!", "!!!"); Возврат; КонецЕсли; НачСтрТЗ = ТЗ.КоличествоСтрок(); ТЗ.ВставитьКолонку("СКД",8,"Число"); ТЗ.ВставитьКолонку("СКДК",9,"Число"); ТЗ.ВставитьКолонку("СКК",10,"Число"); ТЗ.ВставитьКолонку("СККК",11,"Число"); ТЗ.КоличествоСтрок(НачСтрТЗ+локТЗ.КоличествоСтрок()); 9,10,11"); ,СКДК,СКК,СККК");
можно ли его оптимизировать (объединить в один)?
|