Иногда возникает потребность отбора по составному ключу - типа партия, серия, номенклатура - при одном значении ключа проблем нет, просто в запросе ставим условие партия =... и серия =... и номенклатура=..., а вот когда значений ключа несколько возникает проблема. Например имеется таблица значений с набором таких ключей. Один из вариантов динамически сгенерировать запрос через «или» - но и запрос может вырасти до огромных размеров и параметров немеряно... некрасиво. Для решения задачи можно воспользоваться Временными таблицами, вдобавок там источниками данных может быть таблица значений. Ниже пример: нужно найти в каких документах фигурировали партии из таблицы значений позднее определенной даты(на практике смотрим фигурировали ли партии в документах позднее текущего...)
Упс - таблица значений с полями: Номенклатура, ДокументОприходования, Серия
МенеджерВТ =Новый МенеджерВременныхТаблиц;
Запрос =Новый Запрос;
Запрос.МенеджерВременныхТаблиц =МенеджерВТ;
Запрос.Текст =" Выбрать ДокументОприходования, Серия, Номенклатура
|Поместить ВТ
|Из &ТаблЗнач Как ТаблЗнач
|;
|ВЫБРАТЬ
|ПартииОтветХранНаСкладахОбороты.Регистратор,
|ПРЕДСТАВЛЕНИЕ(ПартииОтветХранНаСкладахОбороты.Регистратор)
|ИЗ
|ВТ КАК ВТ
|ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииОтветХранНаСкладах.Обороты(&ДатаНач, , Регистратор, ) КАК ПартииОтветХранНаСкладахОбороты
|ПО ВТ.Номенклатура = ПартииОтветХранНаСкладахОбороты.Номенклатура
|И ВТ.ДокументОприходования = ПартииОтветХранНаСкладахОбороты.ДокументОприходования
|И ВТ.Серия = ПартииОтветХранНаСкладахОбороты.Серия";
Запрос.УстановитьПараметр("ТаблЗнач",Упс);
Запрос.УстановитьПараметр("ДатаНач", Дата);
тз =Запрос.Выполнить().Выгрузить();
МенеджерВТ =Неопределено;
1.Создаем менеджер временных таблиц
2.Создаем новый запрос (здесь пакет запросов)
3.Первым запросом помещаем во временную таблицу таблицу значений
4.Вторым запросом делаем выборку из регистра установив условия связи.
5.На выходе получаем результат запроса.
Подробно о временных таблицах можно почитать в дополнении к описанию в каталоге Readme или AddDoc программы