Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Добавление фильтра по реквизиту регистра (число прочтений - 725 )
Vix
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 24
Зарегистрирован: 25. Марта 2011
Добавление фильтра по реквизиту регистра
21. Июля 2011 :: 06:49
Печать  
Имеется рабочий вариант запроса на выборку по 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]
  
Наверх
 
IP записан
 
V_Al
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 12
Зарегистрирован: 07. Июля 2011
Re: Добавление фильтра по реквизиту регистра
Ответ #1 - 21. Июля 2011 :: 10:00
Печать  
имхо, только если без использования ВТ делать.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать