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

Добрый день! Параметр &ДокументВозврата может принимать 3 значения:
Неопределено
Документ.ПоступлениеТоваровОтХранителя
Документ.ВозвратСырьяОтПереработчика

И данное условие не отрабатывает

```1c
    ВЫБОР
    | КОГДА НЕ &ДокументВозврата ЕСТЬ NULL
    | ТОГДА ВЫБОР
    | КОГДА &ДокументВозврата ССЫЛКА Документ.ВозвратСырьяОтПереработчика
    | ТОГДА ДвиженияСерийТоваров.Документ = &ДокументВозврата
    | ИНАЧЕ ЛОЖЬ
    | КОНЕЦ
    | ИНАЧЕ ИСТИНА
    | КОНЕЦ
```

Пытался передавать параметр так

```1c
    Если ПеремещениеОтборДокументВозврата <> Неопределено Тогда
    Запрос.УстановитьПараметр("ДокументВозврата" , ПеремещениеОтборДокументВозврата);
    Иначе
    Запрос.УстановитьПараметр("ДокументВозврата" , NULL);
    КонецЕсли;
```

```1c
    ВЫБОР
    | КОГДА &ДокументВозврата <> НЕОПРЕДЕЛЕНО
    | ТОГДА ВЫБОР
    | КОГДА &ДокументВозврата ССЫЛКА Документ.ПоступлениеТоваровОтХранителя
    | ТОГДА ДвиженияСерийТоваров.Документ = &ДокументВозврата
    | ИНАЧЕ ЛОЖЬ
    | КОНЕЦ
    | ИНАЧЕ ИСТИНА
    | КОНЕЦ
```

Тоже не отрабатывает. Он нехочет сопоставлять типы НЕОПРЕДЕЛЕНО или NULL с ссылкой Документ.ПоступлениеТоваровОтХранителя
---
Решил сделать по другому,если кому интересно.

```1c
    Если ПеремещениеОтборДокументВозврата <> Неопределено Тогда
    Запрос.Текст = СтрЗаменить(Запрос.Текст, "// ОТБОРПОДОКУМЕНТУВОЗВРАТА", "
    | И ДвиженияСерийТоваров.Документ = &ДокументВозврата ");
    Запрос.УстановитьПараметр("ДокументВозврата", ПеремещениеОтборДокументВозврата);
    КонецЕсли;
```
 Параметры
И Запрос:

```1c
    |ВЫБРАТЬ РАЗРЕШЕННЫЕ
    | ВозвратСырьяОтПереработчика.Ссылка КАК Ссылка,
    | ДвиженияСерийТоваров.Получатель КАК Склад,
    | ВозвратСырьяОтПереработчика.Подразделение КАК Подразделение,
    | ДвиженияСерийТоваров.Номенклатура КАК Номенклатура,
    | ДвиженияСерийТоваров.Назначение КАК Назначение,
    | ДвиженияСерийТоваров.Серия КАК Серия,
    | ДвиженияСерийТоваров.Количество КАК Количество,
    | ВозвратСырьяОтПереработчика.Дата КАК ДокументДата,
    | ВозвратСырьяОтПереработчика.Организация КАК Организация
    |ПОМЕСТИТЬ ВТВозвратыОтПереработчикаДетальныеЗаписи
    |ИЗ
    | РегистрНакопления.ДвиженияСерийТоваров КАК ДвиженияСерийТоваров
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ВозвратСырьяОтПереработчика КАК ВозвратСырьяОтПереработчика
    | ПО ДвиженияСерийТоваров.Документ = ВозвратСырьяОтПереработчика.Ссылка
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТТоварыНаИспытаниях_НоменклатураСерия КАК ВТТоварыНаИспытаниях_НоменклатураСерия
    | ПО ДвиженияСерийТоваров.Номенклатура = ВТТоварыНаИспытаниях_НоменклатураСерия.Номенклатура
    | И ДвиженияСерийТоваров.Серия = ВТТоварыНаИспытаниях_НоменклатураСерия.Серия
    |ГДЕ
    | ДвиженияСерийТоваров.СкладскаяОперация = ЗНАЧЕНИЕ(Перечисление.СкладскиеОперации.ПриемкаПоВозвратуОтКлиента)
    | И ВЫБОР
    | КОГДА &Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
    | ТОГДА ИСТИНА
    | ИНАЧЕ ДвиженияСерийТоваров.Получатель В ИЕРАРХИИ (&Склад)
    | КОНЕЦ
    | // ОТБОРПОДОКУМЕНТУВОЗВРАТА
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    | ПоступлениеТоваровОтХранителя.Ссылка,
    | ДвиженияСерийТоваров.Получатель,
    | ПоступлениеТоваровОтХранителя.Подразделение,
    | ДвиженияСерийТоваров.Номенклатура,
    | ДвиженияСерийТоваров.Назначение,
    | ДвиженияСерийТоваров.Серия,
    | ДвиженияСерийТоваров.Количество,
    | ПоступлениеТоваровОтХранителя.Дата,
    | ПоступлениеТоваровОтХранителя.Организация
    |ИЗ
    | РегистрНакопления.ДвиженияСерийТоваров КАК ДвиженияСерийТоваров
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТТоварыНаИспытаниях_НоменклатураСерия КАК ВТТоварыНаИспытаниях_НоменклатураСерия
    | ПО ДвиженияСерийТоваров.Номенклатура = ВТТоварыНаИспытаниях_НоменклатураСерия.Номенклатура
    | И ДвиженияСерийТоваров.Серия = ВТТоварыНаИспытаниях_НоменклатураСерия.Серия
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровОтХранителя КАК ПоступлениеТоваровОтХранителя
    | ПО ДвиженияСерийТоваров.Документ = ПоступлениеТоваровОтХранителя.Ссылка
    |ГДЕ
    | ДвиженияСерийТоваров.СкладскаяОперация = ЗНАЧЕНИЕ(Перечисление.СкладскиеОперации.ПриемкаПоВозвратуОтКлиента)
    | И ВЫБОР
    | КОГДА &Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
    | ТОГДА ИСТИНА
    | ИНАЧЕ ДвиженияСерийТоваров.Получатель В ИЕРАРХИИ (&Склад)
    | КОНЕЦ
    | // ОТБОРПОДОКУМЕНТУВОЗВРАТА
    |;
```
---
вместо вот таких отборов:
ВЫБОР
    | КОГДА &ДокументВозврата <> НЕОПРЕДЕЛЕНО
    | ТОГДА ВЫБОР
    | КОГДА &ДокументВозврата ССЫЛКА Документ.ПоступлениеТоваровОтХранителя
    | ТОГДА ДвиженияСерийТоваров.Документ = &ДокументВозврата
    | ИНАЧЕ ЛОЖЬ
    | КОНЕЦ
    | ИНАЧЕ ИСТИНА
    | КОНЕЦ
использовать 2 параметра:

```1c
    И (&БезОграничений ИЛИ ДвиженияСерийТоваров.Документ = &ДокументВозврата)
```

и передавать 2 параметра:

```1c
    Если ПеремещениеОтборДокументВозврата = Неопределено Тогда
    Запрос.УстановитьПараметр("БезОграничений", Истина);
    Запрос.УстановитьПараметр("ДокументВозврата", Документы.ВозвратСырьяОтПереработчика.ПустаяСсылка());
    Иначе
    Запрос.УстановитьПараметр("БезОграничений", Ложь);
    Запрос.УстановитьПараметр("ДокументВозврата", ПеремещениеОтборДокументВозврата);
    КонецЕсли;
```
---
Щас попробую
---
Но он же вернет у тебя &БезОграничений = ИСТИНА,эт окей,но это ДвиженияСерийТоваров.Документ = &ДокументВозврата как запрос воспримет ?
---
Понял
---
Не верно. Если придет неопределено,тогда он сделает отбор по Документы.ВозвратСырьяОтПереработчика.ПустаяСсылка(). А там должны быть без ограничений совсем.
---
пробовали?
что будет при условии:
Истина или Ложь
Истина перекроит любое второе условие при ИЛИ.
---
Пробовал. Когда он заходит в БезОграничений,он цепляет еще и отбор по Документы.ВозвратСырьяОтПереработчика.ПустаяСсылка(). Т.е. он подбирает по ДвиженияСерийТоваров.Документ пустую ссылку. Он не перекрывает.
---
непонятно что имеете ввиду. Если есть отбор и по пустой ссылке, то и просто по ИСТИНА она должна попадать.
Или не учли круглые скобки. Они там не для красоты. Это Булева алгебра.
---
Я учел скобки. Все поставил. Просто если &БезОграничений=истина,то он начинается отрабатывать алгоритм ДвиженияСерийТоваров.Документ=Документы.ВозвратСырьяОтПереработчика.ПустаяСсылка(). Я понимаю,что там стоит ИЛИ,но при срабатывании &БезОграничений он отрабатывает и этот алгоритм ДвиженияСерийТоваров.Документ=Документы.ВозвратСырьяОтПереработчика.ПустаяСсылка()

Отработал алгоритм через СтрИзменить. Причем очень даже грамотно... Проверил производительность,стало меньше.

Я тоже удивлен,что алгоритм не отработал... но так уж повелось...
---
Почитал в инете,но они мне не подошли:( Понимаю,что таких тем уже много,но не получается у меня:(
---
это вот убирай, не нужно

```1c
    КОГДА НЕ &ДокументВозврата ЕСТЬ NULL
```
.
Если нужно условие на пустое значение, то проще всего так

```1c
    Запрос.УстановитьПарамет("ДокументПустой", НЕ ЗначениеЗаполнено(Документ));
```

Потому что пустые значения у 1с бывают разные.
в остальном может быть ошибка только в параметре или данные не соответствуют запросу.
---
Но он же вернет истину или ложь.
Ты предлагаешь добавлять еще один параметр и тогда уже проверять на ссылку?
---
Ты предлагаешь добавлять еще один параметр и тогда уже проверять на ссылку?
если зачем-то нужна проверка на заполненность, то добавить параметр.
На ссылку можно проверять и незаполненные значения. Но там может затесаться пустая ссылка..
---
Да,нужна. Это своего рода отбор. Если НЕОПРЕДЕЛЕНО,тогда юзаем обе таблицы объединения и все. Если равна какая то ссылка,то юзаем одну таблицу и получаем оттуда значения.
---
неопределено и null это разные вещи в 1с, они не равны... а еще пустая ссылка может быть, это еще одно пустое значение, третье.
поэтому я и говорю, для проверки заполненности делай отдельный параметр.
---
Но как заполнить этот отдельный параметр только ссылками? Неопределено туда сувать не надо. Только эти ссылки :
Документ.ПоступлениеТоваровОтХранителя
Документ.ВозвратСырьяОтПереработчика
---
Щас попробую
---
Не доконца понял это
---
Решил сделать по другому,если кому интересно.

```1c
    Если ПеремещениеОтборДокументВозврата <> Неопределено Тогда
    Запрос.Текст = СтрЗаменить(Запрос.Текст, "// ОТБОРПОДОКУМЕНТУВОЗВРАТА", "
    | И ДвиженияСерийТоваров.Документ = &ДокументВозврата ");
    Запрос.УстановитьПараметр("ДокументВозврата", ПеремещениеОтборДокументВозврата);
    КонецЕсли;
```
 Параметры
И Запрос:

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