Вот созда, почти все условия залил, но кажется столкнулся с проблемой перечисления:
ТекстЗапроса = "
|Select
| Рег.Магазин [Магазин $Справочник.Подразделения],
| Рег.Товар [Товар $Справочник.Номенклатура],
| $Номен.ТипПФ [ПробаМ $Справочник.ТипПФ],
| $Номен.ВидИзделия [ТоварВид $Перечисление.ВидИзделия],
| Рег.Партия [Партия $Справочник.Партии],
| Рег.КоличествоОстаток as Кол,
| Рег.МассаОстаток as Масса,
| Рег.МассаБКОстаток as МассаБК,
| Рег.СуммаОстаток as Сумма
|FROM
| $РегистрОстатки.Взаиморасщеты(,,
| /*УсловиеСклад*/
| ,(Товар,Партия,Магазин),) as Рег
|left join $Справочник.Номенклатура as Номен (nolock) on Номен.id = Рег.Товар
|left join $Справочник.Партии as Парт (nolock) on Парт.id = Рег.Партия
|where
| Рег.КоличествоОстаток>0
| /*УсловиеТипПФ*/
| /*ТоварВид*/
|";
Запрос = СоздатьОбъект("ODBCRecordSet");
Если ПустоеЗначение(ВыбСклад)=1 Тогда
//Отбор не нужен
ИначеЕсли ВыбСклад.ЭтоГруппа()=0 Тогда
Запрос.УстановитьТекстовыйПараметр("ВыбСклад", ВыбСклад);
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "/*УсловиеСклад*/", "Магазин = :ВыбСклад");
Иначе
Запрос.УложитьСписокОбъектов(ВыбСклад,"#ВыбСклад", "Подразделения");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "/*УсловиеСклад*/", "Магазин in (select val from #ВыбСклад)");
КонецЕсли;
Если ПустоеЗначение(ВыбТипПФ)=1 Тогда
//Отбор не нужен
ИначеЕсли ВыбТипПФ.ЭтоГруппа()=0 Тогда
Запрос.УстановитьТекстовыйПараметр("ВыбТипПФ", ВыбТипПФ);
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "/*УсловиеТипПФ*/", "AND $Номен.ТипПФ = :ВыбТипПФ");
Иначе
Запрос.УложитьСписокОбъектов(ВыбТипПФ,"#ВыбТипПФ", "ТипПф");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "/*УсловиеТипПф*/", "AND $Номен.ТипПФ in (select val from #ВыбТипПФ)");
КонецЕсли;
Если ПустоеЗначение(ВыбТоварВид)=0 Тогда
Запрос.УстановитьТекстовыйПараметр("ВыбТоварВид", ВыбТоварВид);
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "/*ТоварВид*/", "AND $Номен.ТипПФ = :ВыбТоварВид");
КонецЕсли;
//Запрос.Отладка(1);
ТЗ = Запрос.ВыполнитьИнструкцию(ТекстЗапроса);
Сообщить("* "+ТЗ.КоличествоСтрок());
Если в выборе участвует перечисление (тоесть если оно выбрано), то запрос выдает "0" строк, не важно какие другие условия...
Я не правильно прописал перечисление?