Всем привет. Почему не видит список отбора?
Или у условии не могу такое писать?
 |ГДЕ
 | ВЫБОР
 | КОГДА ТоварыНаСкладахОстатки.Склад В (&СписокОтбораСклады)
 | ТОГДА СертификацияНоменклатурыСрезПоследних.СостояниеСертификации = ЗНАЧЕНИЕ(Перечисление.СостоянияСертификацииНоменклатуры.ЕстьБезРазрешения)
 | КОНЕЦ
Ошибка:
по причине:
{(56, 33)}: Не задано значение параметра "СписокОтбораСклады"
ТоварыНаСкладахОстатки.Склад В(<<?>>&СписокОтбораСклады)

 СписокОтбораСклады = Новый СписокЗначений;

Дальше устанавливаю значения
 Запрос.УстановитьПараметр("СписокОтбораCклады",СписокОтбораСклады);

СписокОтбораСклады не пустой. Почему же ошибка?
---
А ларчик просто открывался... У вас при установке параметра "...Склады" с английской буквы начинаются, а в запросе - с русской. Исправьте.
---
Не задано значение параметра "СписокОтбораСклады" Это однозначно ошибка не установленных параметров. Может в имени параметра "C" вместо "С"? :) проще чз ктрл+ц ктрл+в скопировать переменную из кода установки параметра в текст запроса.
---
попробуйте заменить список значений на массив
---
Не поменялось
---
Не задано значение параметра "СписокОтбораСклады" Это однозначно ошибка не установленных параметров. Может в имени параметра "C" вместо "С"? :) проще чз ктрл+ц ктрл+в скопировать переменную из кода установки параметра в текст запроса.
---
Перепроверила, нет
---
(6)

Никому нельзя верить))
---
....... Очень извиняюсь. действительно в этом ошибка. Спасибо!
---
Вообще вы должны были поймать следующую ошибку: Операция не разрешена в предложении "ГДЕ" Можно весь кусок кода для лучшего понимания?
---
азрешена в предложении "ГДЕ"
---
(7)

Весь код от Запрос = новый Запрос; до Запрос.Выполнить()
---
|ГДЕ
| ВЫБОР
| КОГДА ТоварыНаСкладахОстатки.Склад В (&СписокОтбораСклады)
| ТОГДА СертификацияНоменклатурыСрезПоследних.СостояниеСертификации = ЗНАЧЕНИЕ(Перечисление.СостоянияСертификацииНоменклатуры.ЕстьБезРазрешения)

В любом случае, вот так точно делать не следует. Полагаю что достаточно | ГДЕ ТоварыНаСкладахОстатки.Склад В (&СписокОтбораСклады)" либо надо переформулировать условие | ГДЕ
| ТоварыНаСкладахОстатки.Склад В (&СписокОтбораСклады)
| И СертификацияНоменклатурыСрезПоследних.СостояниеСертификации = ЗНАЧЕНИЕ(Перечисление.СостоянияСертификацииНоменклатуры.ЕстьБезРазрешения)

P.S. В секции "ГДЕ" "ВЫБОР" с логическим выражением работает. Тем не менее, у меня аналогичный пример со списком значений отработал без ошибок. Видимо что-то в коде.
---
ОГДА ТоварыНаСкладахОстатки.Склад В (&СписокОтбораСклады)" либо надо переформулировать условие.

Мне нужно чтобы по списку складов был отбор в регистре с разрешением. Иначе не пойму как сделать.
Можно было бы занести в параметры, но там нет доступа к регистру.
---
| ГДЕ
| ТоварыНаСкладахОстатки.Склад В (&СписокОтбораСклады)
| И СертификацияНоменклатурыСрезПоследних.СостояниеСертификации = ЗНАЧЕНИЕ(Перечисление.СостоянияСертификацииНоменклатуры.ЕстьБезРазрешения)
---
варыНаСкладахОстатки.Склад В (&СписокОтбораСклады)
| И СертификацияНоменклатурыСрезПоследних.СостояниеСертификации = ЗНАЧЕНИЕ(Перечисление.СостоянияСертификацииНоменклатуры.ЕстьБезРазрешения)

Так тоже ошибка
---
А ларчик просто открывался... У вас при установке параметра "...Склады" с английской буквы начинаются, а в запросе - с русской. Исправьте.
---
```1c
    ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ОстаткиБухБазы.КодСклада,
    ОстаткиБухБазы.НаименованиеСклада,
    ОстаткиБухБазы.Склад,
    ОстаткиБухБазы.КодНоменклатуры,
    ОстаткиБухБазы.НаименованиеНоменклатуры,
    ОстаткиБухБазы.Номенклатура,
    ОстаткиБухБазы.Количество,
    ОстаткиБухБазы.Сумма
    ПОМЕСТИТЬ ВТ_ОстаткиБух
    ИЗ
    &ОстаткиБухБазы КАК ОстаткиБухБазы
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВТ_ОстаткиБух.КодСклада,
    ВТ_ОстаткиБух.НаименованиеСклада
    ПОМЕСТИТЬ ВТ_СкладыБух
    ИЗ
    ВТ_ОстаткиБух КАК ВТ_ОстаткиБух

    СГРУППИРОВАТЬ ПО
    ВТ_ОстаткиБух.КодСклада,
    ВТ_ОстаткиБух.НаименованиеСклада
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ПартииТоваровНаСкладахОстатки.Номенклатура.Код КАК КодНоменклатуры,
    ВЫБОР
    КОГДА ПартииТоваровНаСкладахОстатки.КоличествоОстаток = 0
    ТОГДА 0
    ИНАЧЕ ПартииТоваровНаСкладахОстатки.СтоимостьОстаток / ПартииТоваровНаСкладахОстатки.КоличествоОстаток
    КОНЕЦ КАК Цена,
    ПартииТоваровНаСкладахОстатки.Склад
    ПОМЕСТИТЬ ВТ_ЦеныНоменклатуры
    ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах.Остатки(ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(&ДатаКон, ДЕНЬ), СЕКУНДА, 1), ) КАК ПартииТоваровНаСкладахОстатки
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ТоварыНаСкладахОстатки.Склад.Код КАК КодСклада,
    ТоварыНаСкладахОстатки.Номенклатура.Код КАК КодНоменклатуры,
    ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоУПП,
    0 КАК КоличествоБУХ,
    ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоРазница,
    0 КАК СуммаБУХ
    ПОМЕСТИТЬ ВТ_ОстаткиУППиБУХНеСГРУПП
    ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(&ДатаКон, ДЕНЬ), СЕКУНДА, 1), ) КАК ТоварыНаСкладахОстатки
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СертификацияНоменклатуры.СрезПоследних КАК СертификацияНоменклатурыСрезПоследних
    ПО ТоварыНаСкладахОстатки.СерияНоменклатуры = СертификацияНоменклатурыСрезПоследних.СерияНоменклатуры
    ГДЕ
    ВЫБОР
    КОГДА ТоварыНаСкладахОстатки.Склад В (&СписокОтбораСклады)
    ТОГДА СертификацияНоменклатурыСрезПоследних.СостояниеСертификации = ЗНАЧЕНИЕ(Перечисление.СостоянияСертификацииНоменклатуры.ЕстьБезРазрешения)
    КОНЕЦ

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ТоварыКПолучениюОстатки.Склад.Код,
    ТоварыКПолучениюОстатки.Номенклатура.Код,
    -ТоварыКПолучениюОстатки.КоличествоОстаток,
    0,
    -ТоварыКПолучениюОстатки.КоличествоОстаток,
    0
    ИЗ
    РегистрНакопления.ТоварыКПолучениюНаСклады.Остатки(ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(&ДатаКон, ДЕНЬ), СЕКУНДА, 1), ) КАК ТоварыКПолучениюОстатки

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ВТ_ОстаткиБух.КодСклада,
    ВЫБОР
    КОГДА ПОДСТРОКА(ВТ_ОстаткиБух.КодНоменклатуры, 1, 1) = "Н"
    ТОГДА "0" + ПОДСТРОКА(ВТ_ОстаткиБух.КодНоменклатуры, 2, 10)
    ИНАЧЕ ВТ_ОстаткиБух.КодНоменклатуры
    КОНЕЦ,
    0,
    ВТ_ОстаткиБух.Количество,
    -ВТ_ОстаткиБух.Количество,
    ВТ_ОстаткиБух.Сумма
    ИЗ
    ВТ_ОстаткиБух КАК ВТ_ОстаткиБух
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВТ_ОстаткиУППиБУХНеСГРУПП.КодСклада,
    ВТ_ОстаткиУППиБУХНеСГРУПП.КодНоменклатуры,
    СУММА(ВТ_ОстаткиУППиБУХНеСГРУПП.КоличествоУПП) КАК КоличествоУПП,
    СУММА(ВТ_ОстаткиУППиБУХНеСГРУПП.КоличествоБУХ) КАК КоличествоБУХ,
    СУММА(ВТ_ОстаткиУППиБУХНеСГРУПП.КоличествоРазница) КАК КоличествоРазница,
    СУММА(ВТ_ОстаткиУППиБУХНеСГРУПП.СуммаБУХ) КАК СуммаБУХ
    ПОМЕСТИТЬ ВТ_ОстаткиУППиБУХбезНаименований
    ИЗ
    ВТ_ОстаткиУППиБУХНеСГРУПП КАК ВТ_ОстаткиУППиБУХНеСГРУПП

    СГРУППИРОВАТЬ ПО
    ВТ_ОстаткиУППиБУХНеСГРУПП.КодСклада,
    ВТ_ОстаткиУППиБУХНеСГРУПП.КодНоменклатуры
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВТ_ОстаткиУППиБУХбезНаименований.КодСклада,
    ЕСТЬNULL(СкладыУПП.Наименование, ") КАК НаименованиеСкладаУПП,
    ЕСТЬNULL(СкладыБУХ.НаименованиеСклада, ") КАК НаименованиеСкладаБУХ,
    ЕСТЬNULL(СкладыУПП.Ссылка, ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)) КАК Склад,
    ВТ_ОстаткиУППиБУХбезНаименований.КодНоменклатуры КАК КодНоменклатуры,
    ЕСТЬNULL(НоменклатураБУХ.КодНоменклатуры, ") КАК КодНоменклатурыБУХ,
    ЕСТЬNULL(НоменклатураУПП.Наименование, ") КАК НаименованиеНоменклатурыУПП,
    ЕСТЬNULL(НоменклатураБУХ.НаименованиеНоменклатуры, ") КАК НаименованиеНоменклатурыБУХ,
    ЕСТЬNULL(НоменклатураУПП.Ссылка, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)) КАК Номенклатура,
    ВТ_ОстаткиУППиБУХбезНаименований.КоличествоУПП,
    ВТ_ОстаткиУППиБУХбезНаименований.КоличествоБУХ,
    ВТ_ОстаткиУППиБУХбезНаименований.КоличествоРазница,
    ЕСТЬNULL(ВТ_ЦеныНоменклатуры.Цена, 0) * ВТ_ОстаткиУППиБУХбезНаименований.КоличествоУПП КАК СуммаУПП,
    ВТ_ОстаткиУППиБУХбезНаименований.СуммаБУХ,
    ЕСТЬNULL(ВТ_ЦеныНоменклатуры.Цена, 0) * ВТ_ОстаткиУППиБУХбезНаименований.КоличествоУПП - ВТ_ОстаткиУППиБУХбезНаименований.СуммаБУХ КАК СуммаРазница
    ИЗ
    ВТ_ОстаткиУППиБУХбезНаименований КАК ВТ_ОстаткиУППиБУХбезНаименований
    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Склады КАК СкладыУПП
    ПО ВТ_ОстаткиУППиБУХбезНаименований.КодСклада = СкладыУПП.Код
    ЛЕВОЕ СОЕДИНЕНИЕ ВТ_СкладыБух КАК СкладыБУХ
    ПО ВТ_ОстаткиУППиБУХбезНаименований.КодСклада = СкладыБУХ.КодСклада
    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК НоменклатураУПП
    ПО ВТ_ОстаткиУППиБУХбезНаименований.КодНоменклатуры = НоменклатураУПП.Код
    ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
    ВТ_ОстаткиБух.НаименованиеНоменклатуры КАК НаименованиеНоменклатуры,
    ВТ_ОстаткиБух.КодНоменклатуры КАК КодНоменклатуры
    ИЗ
    ВТ_ОстаткиБух КАК ВТ_ОстаткиБух) КАК НоменклатураБУХ
    ПО (ВТ_ОстаткиУППиБУХбезНаименований.КодНоменклатуры = ВЫБОР
    КОГДА ПОДСТРОКА(НоменклатураБУХ.КодНоменклатуры, 1, 1) = "Н"
    ТОГДА "0" + ПОДСТРОКА(НоменклатураБУХ.КодНоменклатуры, 2, 10)
    ИНАЧЕ НоменклатураБУХ.КодНоменклатуры
    КОНЕЦ)
    ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ЦеныНоменклатуры КАК ВТ_ЦеныНоменклатуры
    ПО ВТ_ОстаткиУППиБУХбезНаименований.КодНоменклатуры = ВТ_ЦеныНоменклатуры.КодНоменклатуры
    И (СкладыУПП.Ссылка = ВТ_ЦеныНоменклатуры.Склад)
```
---
Не задано значение параметра "СписокОтбораСклады" Говорит что не установлен параметр по тексту запроса совсем не очевидно каким образом устанавливаются параметры запроса.
Весь код от Запрос = новый Запрос; до Запрос.Выполнить()
---
(14) Бинго!