у меня уже все заработало

В форме списка номенклатуры есть Табличное поле
ФормТабДопИнформации, которое по умолчанию заполняется ценами для каждого элемента, но можно выбирать тип отображаемой информации, например на остатки по складам. Я создал 2 параметризированных запроса (один - для Цен, другой - для Остатков), которые подготавливаются при выборе типа отображения. Вот пример для Цен:
Если НазваниеИнтерфейса()<>"Интерфейс_Сторонний" Тогда
РДата = Формат(РабочаяДата(),"ДГГГГММДД");
Зпр = СоздатьОбъект("ODBCRecordset");
ТекстЗ="
|set nocount on
|declare @ИдНоменклатуры char(9)
|set @ИдНоменклатуры = ?
|
|SELECT
| rtrim(КЦ.descr) КатегорияЦены,
| $ПоследнееЗначение.Цены.Цена(Ц.ID,'"+РДата+"') Цена,
| $ПоследнееЗначение.Цены.Валюта(Ц.ID,'"+РДата+"') [Валюта $Справочник.Валюты],
| $ПоследнееЗначение.Цены.Единица(Ц.ID,'"+РДата+"') [Единица $Справочник.Единицы],
| Ц.ID [Объект $Справочник.Цены]
|FROM
| $Справочник.Цены Ц (nolock)
| INNER JOIN
| $Справочник.КатегорииЦен КЦ (nolock)
| ON КЦ.ID = $Ц.КатегорияЦены
|WHERE
| Ц.PARENTEXT = @ИдНоменклатуры
|ORDER BY КЦ.descr
|";
Если Зпр.Подготовить(ТекстЗ)=0 Тогда
Сообщить("Запрос не прошел "+Зпр.ПолучитьОписаниеОшибки());
КонецЕсли;
Зпр.ДобПараметр(1,14,9,0);
//Зпр.Отладка(1);
КонецЕсли;
а в процедурине, которая отрабатывает при изменении строки номенклатуры:
Зпр.УстПараметр(1, ТекущийЭлемент());
Зпр.ВыполнитьИнструкцию(,ФормТабДопИнформации,0);
и отрабатывает заметно быстрее, чем я поначалу создал непараметризированный запрос