Здравствуйте всем.
Вот такой запрос (НоменклатураПоследние это временная таблица)

```1c
    |ВЫБРАТЬ
    |НоменклатураПоследние.Наименование КАК Наименование,
    |НоменклатураПоследние.Код КАК Код,
    |НоменклатураПоследние.Артикул КАК Артикул,
    |НазначенияСвойствОбъектов.Объект.Ссылка,
    |НазначенияСвойствОбъектов.Свойство.Наименование КАК Контракт,
    |НазначенияСвойствОбъектов.ЗначениеСвойства КАК Значение
    |ИЗ
    |НоменклатураПоследние КАК НоменклатураПоследние
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НазначенияСвойствОбъектов КАК НазначенияСвойствОбъектов
    | ПО НоменклатураПоследние.Наименование = НазначенияСвойствОбъектов.Объект.Ссылка" ;
```

Как можно прикрутить дополнительный отбор по Значению например?
Заранее спасибо.
---
Если мне изменяет память, то напрямую временной таблице условия ставить не получается. Я имею ввиду ту, которую мы кладем через параметры. Нужно пакетом сделать: первый запрос выбирает из этой таблицы и помещает в виртуальную таблицу в самом запросе, а уже ее можно использовать полноценно. Помню мучился с этим, потом допёр опытным путем.
И да, еще типизация важна. Та таблица, которую мы кладем в запрос параметром, должна быть типизирована полностью. Т.е. у каждой колонки должен быть определен тип.

Чтобы было нагляднее, вот кусок рабочего кода на тему

```1c
    ЗапросПроектов = Новый запрос;
    ЗапросПроектов.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
    ЗапросПроектов.УстановитьПараметр("ТаблицаПараметр", ТаблицаПараметр);

    ЗапросПроектов.Текст =
    "ВЫБРАТЬ
    | ВТ.ЗаказФилиала,
    | ВТ.Номенклатура
    |ПОМЕСТИТЬ ТаблицаПараметр
    |ИЗ
    | &ТаблицаПараметр КАК ВТ
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | ИсходнаяТаблица.ЗаказФилиала,
    | ИсходнаяТаблица.Номенклатура,
    | ЗаказФилиалаТовары.Проект как Проект
    |ИЗ
    | ТаблицаПараметр КАК ИсходнаяТаблица
    | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказФилиала.Товары КАК ЗаказФилиалаТовары
    | ПО (ЗаказФилиалаТовары.Номенклатура = ИсходнаяТаблица.Номенклатура)
    | И (ЗаказФилиалаТовары.Ссылка = ИсходнаяТаблица.ЗаказФилиала)";

    ТаблицаПроектов = ЗапросПроектов.Выполнить().Выгрузить();
```
---
Вам, кажется, надо привыкнуть работать с временными таблицами...
1) ВТ нельзя использовать "как хочется", первоначально она должна попасть в Ваш пакет запросов простейшим запросом, без отбора, сортировок и группировок. Потом можно из результата того запроса выбирать, группировать...
2) хорошая привычка: типизировать поля таблицы, получаемой как параметр. Потом здорово помогает переписывать запрос ПОСЛЕ того, как Вы его сделали и закрыли.
Например: отработает и такой вариант:

```1c
    ВЫБРАТЬ
    Номенклатура.Ссылка КАК Ссылка,
    Номенклатура.Наименование КАК Наименование
    ПОМЕСТИТЬ Номенклатура
    ИЗ
    &Номенклатура КАК Номенклатура
```

Но лучше сделать так:

```1c
    ВЫБРАТЬ
    ВЫРАЗИТЬ(Номенклатура.Ссылка КАК Справочник.Номенклатура) КАК Ссылка,
    ВЫРАЗИТЬ(Номенклатура.Наименование КАК СТРОКА(300)) КАК Наименование
    ПОМЕСТИТЬ Номенклатура
    ИЗ
    &Номенклатура КАК Номенклатура
```
---
НоменклатураПоследние.Наименование = НазначенияСвойствОбъектов.Объект.Ссылка
Временная таблица тут непричем.
Строку со ссылкой просто не надо сравнивать )

Во временной таблице должно быть поле, содержащее ссылку на номенклатуру и вот по нему уже условие связи составлять.
что-то типа:
НоменклатураПоследние.Ссылка = НазначенияСвойствОбъектов.Объект

P.S.
"НазначенияСвойствОбъектов.Объект.Ссылка" .Ссылка здесь лишнее, т.к. в регистре и так ссылка лежит.
Достаточно просто НазначенияСвойствОбъектов.Объект
---
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НазначенияСвойствОбъектов КАК НазначенияСвойствОбъектов
| ПО НоменклатураПоследние.Наименование = НазначенияСвойствОбъектов.Объект.Ссылка
Вот это кстати работает как надо...глюк наверное :-)
---
Вам, кажется, надо привыкнуть работать с временными таблицами...
1) ВТ нельзя использовать "как хочется", первоначально она должна попасть в Ваш пакет запросов простейшим запросом, без отбора, сортировок и группировок. Потом можно из результата того запроса выбирать, группировать...
2) хорошая привычка: типизировать поля таблицы, получаемой как параметр. Потом здорово помогает переписывать запрос ПОСЛЕ того, как Вы его сделали и закрыли.
Например: отработает и такой вариант:

```1c
    ВЫБРАТЬ
    Номенклатура.Ссылка КАК Ссылка,
    Номенклатура.Наименование КАК Наименование
    ПОМЕСТИТЬ Номенклатура
    ИЗ
    &Номенклатура КАК Номенклатура
```

Но лучше сделать так:

```1c
    ВЫБРАТЬ
    ВЫРАЗИТЬ(Номенклатура.Ссылка КАК Справочник.Номенклатура) КАК Ссылка,
    ВЫРАЗИТЬ(Номенклатура.Наименование КАК СТРОКА(300)) КАК Наименование
    ПОМЕСТИТЬ Номенклатура
    ИЗ
    &Номенклатура КАК Номенклатура
```
---
Кстати, ещё совет: смотрите, как делается в типовых (удобно и писать запрос легко):

В запросе

```1c
    ГДЕ &ВсеЗначения ИЛИ НазначенияСвойствОбъектов.ЗначениеСвойства В (&СписокЗначений)
```

В коде, когда назначаете параметры:

```1c
    Запрос.УстановитьПараметр("СписокЗначений",СписокЗначений);
    Запрос.УстановитьПараметр("ВсеЗначения",СписокЗначений.Количество()=0);
```

Подразумевается, что переменная СписокЗначений типа Массив или СписокЗначений.
Тогда если СписокЗначений задана (не пустая), то фильтр будет. Если пустая - фильтра не будет.
---
Благодарю за развернутое объяснение, да привыкнуть надо :-) - я как раз в первой таблице сделал отбор в запросе. То есть этого однозначно делать нельзя...
У меня два регистра сведений - в них одно общее поле (номенклатура)
1) Сначала я делаю обычный запрос без извращений помещаю то что получилось в ВТ.
2) После этого в результате делаю нужную мне фильтрацию (отбор)
3) Дальше второй запрос обращается в ВТ
4) Левым соединением с первым регистром выбираем конечные данные.
Все верно?
---
В принципе, да. Только для скорости не забудьте проиндексировать данные во временной таблице по тем полям, которые потом участвуют в соединении.
---
Гм. А в чем проблема? Вроде как, обычное условие ГДЕ на НоменклатураПоследние.
---
Не - не хочет отбирать из временной таблицы почему-то.

```1c
    |ИЗ
    |НоменклатураПоследние КАК НоменклатураПоследние
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НазначенияСвойствОбъектов КАК НазначенияСвойствОбъектов
    | ПО НоменклатураПоследние.Наименование = НазначенияСвойствОбъектов.Объект.Ссылка
    | ГДЕ
```
---
Если мне изменяет память, то напрямую временной таблице условия ставить не получается. Я имею ввиду ту, которую мы кладем через параметры. Нужно пакетом сделать: первый запрос выбирает из этой таблицы и помещает в виртуальную таблицу в самом запросе, а уже ее можно использовать полноценно. Помню мучился с этим, потом допёр опытным путем.
И да, еще типизация важна. Та таблица, которую мы кладем в запрос параметром, должна быть типизирована полностью. Т.е. у каждой колонки должен быть определен тип.

Чтобы было нагляднее, вот кусок рабочего кода на тему

```1c
    ЗапросПроектов = Новый запрос;
    ЗапросПроектов.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
    ЗапросПроектов.УстановитьПараметр("ТаблицаПараметр", ТаблицаПараметр);

    ЗапросПроектов.Текст =
    "ВЫБРАТЬ
    | ВТ.ЗаказФилиала,
    | ВТ.Номенклатура
    |ПОМЕСТИТЬ ТаблицаПараметр
    |ИЗ
    | &ТаблицаПараметр КАК ВТ
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | ИсходнаяТаблица.ЗаказФилиала,
    | ИсходнаяТаблица.Номенклатура,
    | ЗаказФилиалаТовары.Проект как Проект
    |ИЗ
    | ТаблицаПараметр КАК ИсходнаяТаблица
    | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказФилиала.Товары КАК ЗаказФилиалаТовары
    | ПО (ЗаказФилиалаТовары.Номенклатура = ИсходнаяТаблица.Номенклатура)
    | И (ЗаказФилиалаТовары.Ссылка = ИсходнаяТаблица.ЗаказФилиала)";

    ТаблицаПроектов = ЗапросПроектов.Выполнить().Выгрузить();
```
---
ТаблицаПараметр
Не знал - попробую таким способом, отпишусь по результату - спасибо.
---
ТаблицаПараметр
То есть если я правильно понял - в "ТаблицаПараметр" - уже должны быть данные с первым отбором так сказать? (к примеру отбор заказа по поставщику)
---
В принципе разобрался с ВТ, всем спасибо за помощь.
---
Сообщение было скрыто модератором.