Рассмотрим ситуацию, когда нам необходимо использовать параметр Список значений (как в запросе, так и в параметрах СКД), и мы хотим интерпретировать пустой список, как "все элементы", без отбора и тп.
Ответ нашелся на форуме 1С (ещё от 2011 года) Определение заполнения параметра (список значений) в СКД
Для СКД могу только добавить, что для такого параметра следует указать Ипользовать "Всегда". Так вы избежите ошибку выполнения, когда признак использования будет снят в параметрах пользователем.
Ответ нашелся на форуме 1С (ещё от 2011 года) Определение заполнения параметра (список значений) в СКД
ВЫБРАТЬ
Номенклатура.Наименование
ИЗ Справочник.Номенклатура КАК Номенклатура
ГДЕ (Номенклатура.Ссылка В (&Список)
ИЛИ (НЕ
1 В (ВЫБРАТЬ 1
ИЗ Справочник.Номенклатура КАК Номенклатура
ГДЕ Номенклатура.Ссылка В (&Список))))
Номенклатура.Наименование
ИЗ Справочник.Номенклатура КАК Номенклатура
ГДЕ (Номенклатура.Ссылка В (&Список)
ИЛИ (НЕ
1 В (ВЫБРАТЬ 1
ИЗ Справочник.Номенклатура КАК Номенклатура
ГДЕ Номенклатура.Ссылка В (&Список))))
Или сделать условие необязательным следующей конструкцией {ГДЕ ... }, тогда итоговый пример будет таким
ВЫБРАТЬ
РеализацияТоваровИУслуг.Ссылка КАК Регистратор,
РеализацияТоваровИУслугТовары.Номенклатура,
РеализацияТоваровИУслугТовары.Количество
ИЗ
Документ.РеализацияТоваровИУслуг.Товары КАК РеализацияТоваровИУслугТовары
ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровИУслуг КАК РеализацияТоваровИУслуг
ПО РеализацияТоваровИУслугТовары.Ссылка = РеализацияТоваровИУслуг.Ссылка
ГДЕ
РеализацияТоваровИУслуг.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
{ГДЕ
(РеализацияТоваровИУслугТовары.Номенклатура В (&СписокНоменклатур)
ИЛИ НЕ 1 В
(ВЫБРАТЬ ПЕРВЫЕ 1
1 КАК Поле
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Ссылка В (&СписокНоменклатур)))}
Комментарии
Отправить комментарий