Собственно подготавливаю запрос при открытии формы.
РС = СоздатьОбъект("ODBCRecordset");
КолПараметровКоличества = 1;
ТекстЗапроса = "
|SELECT
| $Рег.Количество as Количество
|FROM
| $РегистрИтоги.ОстаткиТМЦ as Рег
|WHERE
| Рег.Period = ?";
Если ПустоеЗначение(ФирмаДляОстатковТМЦ) = 0 Тогда
ТекстЗапроса = ТекстЗапроса + "
| AND $Рег.Фирма = ?";
КонецЕсли;
Если ПустоеЗначение(Склад) = 0 Тогда
ТекстЗапроса = ТекстЗапроса + "
| AND $Рег.Склад = ?";
КонецЕсли;
ТекстЗапроса = ТекстЗапроса + "
| AND $Рег.Номенклатура = ?";
РС.Подготовить(ТекстЗапроса);
рс.ПостроитьПараметры();
РС.УстПараметр(КолПараметровКоличества,НачМесяца(ТекущаяДата()));
далее в функции выполняю запрос
Если ПустоеЗначение(ФирмаДляОстатковТМЦ) = 0 Тогда
КолПараметровКоличества = КолПараметровКоличества + 1;
РС.УстПараметр(КолПараметровКоличества,ФирмаДляОстатковТМЦ);
КонецЕсли;
Если ПустоеЗначение(Склад) = 0 Тогда
КолПараметровКоличества = КолПараметровКоличества + 1;
РС.УстПараметр(КолПараметровКоличества,Склад);
КонецЕсли;
КолПараметровКоличества = КолПараметровКоличества + 1;
РС.УстПараметр(КолПараметровКоличества,ТекущийЭлемент());
КолПараметровКоличества = 1;
Возврат СокрЛП(Формат(РС.ВыполнитьСкалярный(),"Ч014.3"));
Вопрос в следующем не могу понять как мне поступить перед изменением фильтра. Например склад пустой соответствено необходимо остаток по все складам получить. только когда меняешь запрос ошибка. типа нельзя так как соединение используется КАК ПОСТУПИТЬ??