Необязательные условия в тексте запроса
Обычно при необходимости добавления такого условия делают так:
Если ВыбТовары.Количество()=0 Тогда
Условие=””;
Иначе
Условие=” ГДЕ Товар в (&Товары)“;
КонецЕсли;
Запрос.Текст=”ВЫБРАТЬ Ссылка ИЗ Справочник.Номенклатура “+Условие;
В СКД можно поступить следующим образом:
ПЗ = Новый ПостроительЗапроса;
ПЗ.Текст = “
|ВЫБРАТЬ
| Спр.Ссылка ИЗ Справочник.Номенклатура КАК Спр
|{
|ГДЕ
| Спр.Ссылка.* КАК Ссылка
|}“;
ПЗ.Отбор.Добавить(“Ссылка“);
ПЗ.Отбор.Ссылка.Значение = СписокНоменклатуры;
ПЗ.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
ПЗ.Отбор.Ссылка.Использование = Истина; // или (СписокНоменклатуры.Количество() > 0)
ПЗ.Выполнить();
Есть еще интересный способ, однако в СКД не работает:
ВЫБРАТЬ Ссылка ИЗ Справочник.Номенклатура ГДЕ ВЫБОР КОГДА &Товары=НЕОПРЕДЕЛЕНО ТОГДА ИСТИНА ИНАЧЕ Товар в (&Товары) КОНЕЦ