Имеется рабочий вариант запроса на выборку по 3 регистрам. Затык случился в месте выбора остаточно-оборотного регистра ПартииНаличие, где необходимо выполнить условие проверки по значению реквизита регистра. Когда делаеш условие по обычному регистру партии ($ПартииНаличие.КодОперации = :ВыбОпереация)"; тогда условие выполняется, но такой вариант не подходит, так как нужен оборотный регистр. Кто подскажет как в оборотном поставить условие на реквизит регистра? [code] ТекстЗапроса = " |SELECT | ПартииНаличиеОстаткиОбороты.Фирма [Фирма $Справочник.Фирмы] | , ПартииНаличиеОстаткиОбороты.Номенклатура [Номенклатура $Справочник.Номенклатура] | , ПартииНаличиеОстаткиОбороты.Склад [Склад $Справочник.Склады] | , ПартииНаличиеОстаткиОбороты.КоличествоНачальныйОстаток ПартииКоличествоНачальныйОстаток | , ПартииНаличиеОстаткиОбороты.КоличествоПриход ПартииКоличествоПриход | , ПартииНаличиеОстаткиОбороты.КоличествоРасход ПартииКоличествоРасход | , ПартииНаличиеОстаткиОбороты.КоличествоКонечныйОстаток ПартииКоличествоКонечныйОстаток | , 0 as РезервыКоличествоКонечныйОстаток | , 0 as СуммаКоличествоОборот | , 0 as СуммаЗарезервированоОборот | , 0 as СуммаНаСборкуОборот |FROM {ВыборкаПартий},(Фирма, Номенклатура, Склад),Количество) AS ПартииНаличиеОстаткиОбороты |GROUP BY ПартииНаличиеОстаткиОбороты.Фирма | , ПартииНаличиеОстаткиОбороты.Номенклатура | , ПартииНаличиеОстаткиОбороты.Склад | , ПартииНаличиеОстаткиОбороты.КоличествоНачальныйОстаток | , ПартииНаличиеОстаткиОбороты.КоличествоПриход | , ПартииНаличиеОстаткиОбороты.КоличествоРасход | , ПартииНаличиеОстаткиОбороты.КоличествоКонечныйОстаток | |UNION ALL |SELECT | РезервыТМЦОстаткиОбороты.Фирма [Фирма $Справочник.Фирмы] | , РезервыТМЦОстаткиОбороты.Номенклатура [Номенклатура $Справочник.Номенклатура] | , РезервыТМЦОстаткиОбороты.Склад [Склад $Справочник.Склады] | , 0 | , 0 | , 0 | , 0 | , РезервыТМЦОстаткиОбороты.КоличествоКонечныйОстаток | , 0 as СуммаКоличествоОборот | , 0 as СуммаЗарезервированоОборот | , 0 as СуммаНаСборкуОборот |FROM {ВыборкаРезервов},(Фирма, Номенклатура, Склад),Количество) AS РезервыТМЦОстаткиОбороты |GROUP BY | РезервыТМЦОстаткиОбороты.Фирма | , РезервыТМЦОстаткиОбороты.Номенклатура | , РезервыТМЦОстаткиОбороты.Склад | , РезервыТМЦОстаткиОбороты.КоличествоКонечныйОстаток | |UNION ALL |SELECT | $ПустойИд | , ОстаткиПоСчетамОбороты.Номенклатура [Номенклатура $Справочник.Номенклатура] | , ОстаткиПоСчетамОбороты.Склад [Склад $Справочник.Склады] | , 0 | , 0 | , 0 | , 0 | , 0 | , Sum(ОстаткиПоСчетамОбороты.КоличествоОборот) СуммаКоличествоОборот | , Sum(ОстаткиПоСчетамОбороты.ЗарезервированоОборот) СуммаЗарезервированоОборот | , Sum(ОстаткиПоСчетамОбороты.НаСборкуОборот) СуммаНаСборкуОборот |FROM {ВыборкаСчетов},(Номенклатура, Склад),(Количество, Зарезервировано, НаСборку)) AS ОстаткиПоСчетамОбороты |GROUP BY | ОстаткиПоСчетамОбороты.Номенклатура | , ОстаткиПоСчетамОбороты.Склад | , ОстаткиПоСчетамОбороты.КоличествоОборот | , ОстаткиПоСчетамОбороты.ЗарезервированоОборот | , ОстаткиПоСчетамОбороты.НаСборкуОборот |HAVING SUM(ОстаткиПоСчетамОбороты.ЗарезервированоОборот) >= 0 |"; Если ПустоеЗначение(ВыбФирма) = 1 Тогда Сообщить("Не выбрана фирма!"); Возврат; КонецЕсли; стрПартии = "$РегистрОстаткиОбороты.ПартииНаличие(:НачДата,:КонДата~,,,, (Фирма = :ВыбФирма)"; стрРезервы = "$РегистрОстаткиОбороты.РезервыТМЦ(:НачДата,:КонДата~,,,, (Фирма = :ВыбФирма)"; стрСчета = "$РегистрОбороты.ОстаткиПоСчетам(,:КонДата~,,,"; Если ПустоеЗначение(ВыбСклад) = 0 Тогда стрПартии = стрПартии + "AND (Склад = :ВыбСклад)"; стрРезервы = стрРезервы + "AND (Склад = :ВыбСклад)"; стрСчета = стрСчета + "(Склад = :ВыбСклад)"; рс.УстановитьТекстовыйПараметр("ВыбСклад", ВыбСклад); КонецЕсли; ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "{ВыборкаПартий}", стрПартии) ; ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "{ВыборкаРезервов}", стрРезервы) ; ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "{ВыборкаСчетов}", стрСчета) ; рс.УстановитьТекстовыйПараметр("НачДата", НачДата); рс.УстановитьТекстовыйПараметр("КонДата", КонДата); рс.УстановитьТекстовыйПараметр("ВыбФирма", ВыбФирма); тз = рс.ВыполнитьИнструкцию(ТекстЗапроса); [/code]
|