Коллеги, помогите начинающему специалисту 1С8
Конфигурация УТ11

Нужно в запросе выбрать и вывести в отчет всю номенклатуру.
По тем позициям, по которым есть остаток на основном складе, нужно вывести количество в графе Вналичии.
По тем позициям, по которым есть остаток на дополнительном складе "ВАДАН", нужно вывести количество в графе "ВНаличииВАДАН"
Кроме этого нужно вывести в отчет цены из регистра сведений "ЦеныНоменклатуры". Оптовую цену в графу "Цена", розничную цену в графу "Розница".
Написал логичный с виду запрос, но он формирует не те данные, что мне нужно
1. Выводит в список только ту номенклатуру, по которой ненулевой остаток на основном складе
2. Выводит пустое значение в графе "Наличие ВАДАН"
3. Выводит пустое значение в графе "Розница"

Кто-нибудь может ответить, что нужно исправить в запросе, чтобы решить три моих проблемы?
Судя по выводимым данным, неверно присоединяется таблица второго подзапроса...
Буду очень благодарен!

П.С. Параметры запроса такие:

```1c
    Запрос.УстановитьПараметр("Склад",Склад);
    Запрос.УстановитьПараметр("СкладВАДАН",СкладВАДАН);
    Запрос.УстановитьПараметр("МассивНоменклатуры",МассивНоменклатуры);
    Запрос.УстановитьПараметр("ОПТ",Опт);
    Запрос.УстановитьПараметр("Розница",Розница);

    Запрос.Текст = "ВЫБРАТЬ
    | ТоварыНаСкладах.Склад,
    | ТоварыНаСкладах.ВНаличии,
    | СпрНоменклатура.Наименование,
    | СпрНоменклатура.НаименованиеПолное,
    | СпрНоменклатура.Код,
    | СпрНоменклатура.Производитель,
    | ЦеныНоменклатуры.Период,
    | ЦеныНоменклатуры.Номенклатура,
    | ЦеныНоменклатуры.ВидЦены,
    | ЦеныНоменклатуры.Цена,
    | ЦеныНоменклатуры.Валюта
    |ИЗ
    | РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
    | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СпрНоменклатура
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
    | ПО СпрНоменклатура.Ссылка = ТоварыНаСкладах.Номенклатура.Ссылка
    | ПО ЦеныНоменклатуры.Номенклатура = СпрНоменклатура.Ссылка
    |ГДЕ
    | ТоварыНаСкладах.Склад = &Склад
    | И СпрНоменклатура.ЭтоГруппа = ЛОЖЬ
    | И ЦеныНоменклатуры.ВидЦены = &ОПТ
    |
    |СГРУППИРОВАТЬ ПО
    | ТоварыНаСкладах.Номенклатура,
    | ТоварыНаСкладах.Склад,
    | ТоварыНаСкладах.ВНаличии,
    | СпрНоменклатура.Наименование,
    | СпрНоменклатура.НаименованиеПолное,
    | СпрНоменклатура.Код,
    | СпрНоменклатура.Производитель,
    | ЦеныНоменклатуры.Период,
    | ЦеныНоменклатуры.Номенклатура,
    | ЦеныНоменклатуры.ВидЦены,
    | ЦеныНоменклатуры.Цена,
    | ЦеныНоменклатуры.Валюта
    |
    |ОБЪЕДИНИТЬ
    |
    |ВЫБРАТЬ
    | ТоварыНаСкладахВАДАН.Склад,
    | ТоварыНаСкладахВАДАН.ВНаличии КАК ВНаличииВАДАН,
    | СпрНоменклатураВАДАН.Наименование,
    | СпрНоменклатураВАДАН.НаименованиеПолное,
    | СпрНоменклатураВАДАН.Код,
    | СпрНоменклатураВАДАН.Производитель,
    | ЦеныНоменклатуры.Период,
    | ЦеныНоменклатуры.Номенклатура,
    | ЦеныНоменклатуры.ВидЦены,
    | ЦеныНоменклатуры.Цена как Розница,
    | ЦеныНоменклатуры.Валюта
    |ИЗ
    | РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладахВАДАН
    | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СпрНоменклатураВАДАН
    | ПО ТоварыНаСкладахВАДАН.Номенклатура.Ссылка = СпрНоменклатураВАДАН.Ссылка,
    | РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
    |ГДЕ
    | ТоварыНаСкладахВАДАН.Склад = &СкладВАДАН
    | И ЦеныНоменклатуры.ВидЦены = &Розница";
```
---
Предлагаю отталкиваться от этого:

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

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

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

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

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВТ_СЦенами.Ссылка,
    ВТ_СЦенами.Наименование,
    ВТ_СЦенами.Розница,
    ВТ_СЦенами.Цена,
    ЕСТЬNULL(ОстатокВадан.КоличествоОстаток, 0) КАК Вадан,
    ЕСТЬNULL(ОстатокНаОсновномСкладе.КоличествоОстаток, 0) КАК ВНаличии
    ИЗ
    ВТ_СЦенами КАК ВТ_СЦенами
    ЛЕВОЕ СОЕДИНЕНИЕ ОстатокНаОсновномСкладе КАК ОстатокНаОсновномСкладе
    ПО ВТ_СЦенами.Ссылка = ОстатокНаОсновномСкладе.Номенклатура
    ЛЕВОЕ СОЕДИНЕНИЕ ОстатокВадан КАК ОстатокВадан
    ПО ВТ_СЦенами.Ссылка = ОстатокВадан.Номенклатура
```
---
а в чем проблема открыть консоль запросов?
Вместо левого надо правое юзать наверное)) А так есть и другой вариант.
---
Проблема в том, что новичок
Даже не слышал про консоль запросов. где ее брать и как использовать. И правда - где?
Замена левого соединения на правое ничего не дало :(
---
раз начинающий советую от простого к сложному двигаться - то есть для начала сделать запрос к одной таблице - в твоем случае РегистрНакопления.ТоварыНаСкладах.Остатки
---
Нужно в запросе выбрать и вывести в отчет всю номенклатуру.
Коли всю номенклатуру надо получить, то таблица "Справочник.Номенклатура" должна быть основной, а все остальное левыми соединениями к ней цеплять.
---
ОК, Спасибо
Упросим запрос

```1c
    Запрос.Текст = "ВЫБРАТЬ
    | ТоварыНаСкладах.Склад,
    | ТоварыНаСкладах.ВНаличии,
    | СпрНоменклатура.Ссылка,
    | СпрНоменклатура.Наименование,
    | СпрНоменклатура.НаименованиеПолное,
    | СпрНоменклатура.Код,
    | СпрНоменклатура.Производитель,
    | ЦеныНоменклатуры.Период,
    | ЦеныНоменклатуры.Номенклатура,
    | ЦеныНоменклатуры.ВидЦены,
    | ЦеныНоменклатуры.Цена,
    | ЦеныНоменклатуры.Валюта,
    | ВЫБОР
    | КОГДА ЦеныНоменклатуры.ВидЦены = &Розница ТОГДА
    | ЦеныНоменклатуры.Цена
    | ИНАЧЕ
    | 0
    | КОНЕЦ КАК Розница
    |ИЗ
    | Справочник.Номенклатура КАК СпрНоменклатура
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
    | ПО СпрНоменклатура.Ссылка = ТоварыНаСкладах.Номенклатура.Ссылка
    | ПО ЦеныНоменклатуры.Номенклатура = СпрНоменклатура.Ссылка
    |ГДЕ
    | ТоварыНаСкладах.Склад = &Склад
    | И СпрНоменклатура.ЭтоГруппа = ЛОЖЬ
    | И ЦеныНоменклатуры.ВидЦены = &ОПТ
    |
    |СГРУППИРОВАТЬ ПО
    | ТоварыНаСкладах.Номенклатура,
    | ТоварыНаСкладах.Склад,
    | ТоварыНаСкладах.ВНаличии,
    | СпрНоменклатура.Наименование,
    | СпрНоменклатура.НаименованиеПолное,
    | СпрНоменклатура.Код,
    | СпрНоменклатура.Производитель,
    | ЦеныНоменклатуры.Период,
    | ЦеныНоменклатуры.Номенклатура,
    | ЦеныНоменклатуры.ВидЦены,
    | ЦеныНоменклатуры.Цена,
    | ЦеныНоменклатуры.Валюта";
```

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

```1c
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
    | ПО ЦеныНоменклатуры.Номенклатура = СпрНоменклатура.Ссылка
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
    | ПО СпрНоменклатура.Ссылка = ТоварыНаСкладах.Номенклатура.Ссылка
```

пользуйтесь конструктором запросов - быстрее научитесь
---
Удалил. Теперь вообще не понятно.
{(22, 7)}: Поле не найдено "СпрНоменклатура"
ПО <<?>>СпрНоменклатура = ТоварыНаСкладах.Номенклатура

```1c
    Запрос.Текст = "ВЫБРАТЬ
    | СпрНоменклатура.Наименование,
    | СпрНоменклатура.НаименованиеПолное,
    | СпрНоменклатура.Код,
    | СпрНоменклатура.Производитель,
    | ТоварыНаСкладах.Склад,
    | ТоварыНаСкладах.ВНаличии,
    | ЦеныНоменклатуры.Период,
    | ЦеныНоменклатуры.Номенклатура,
    | ЦеныНоменклатуры.ВидЦены,
    | ЦеныНоменклатуры.Цена,
    | ЦеныНоменклатуры.Валюта,
    | ВЫБОР
    | КОГДА ЦеныНоменклатуры.ВидЦены = &Розница
    | ТОГДА ЦеныНоменклатуры.Цена
    | ИНАЧЕ 0
    | КОНЕЦ КАК Розница
    |ИЗ
    | Справочник.Номенклатура КАК СпрНоменклатура
    | ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
    | ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
    | ПО СпрНоменклатура = ТоварыНаСкладах.Номенклатура
    | ПО СпрНоменклатура = ЦеныНоменклатуры.Номенклатура
    |ГДЕ
    | ТоварыНаСкладах.Склад = &Склад
    | И СпрНоменклатура.ЭтоГруппа = ЛОЖЬ
    //| И ЦеныНоменклатуры.ВидЦены = &ОПТ
    |
    |СГРУППИРОВАТЬ ПО
    | ТоварыНаСкладах.Номенклатура,
    | ТоварыНаСкладах.Склад,
    | ТоварыНаСкладах.ВНаличии,
    | СпрНоменклатура.Наименование,
    | СпрНоменклатура.НаименованиеПолное,
    | СпрНоменклатура.Код,
    | СпрНоменклатура.Производитель,
    | ЦеныНоменклатуры.Период,
    | ЦеныНоменклатуры.Номенклатура,
    | ЦеныНоменклатуры.ВидЦены,
    | ЦеныНоменклатуры.Цена,
    | ЦеныНоменклатуры.Валюта";
```
---
Предлагаю отталкиваться от этого:

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

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

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

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

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВТ_СЦенами.Ссылка,
    ВТ_СЦенами.Наименование,
    ВТ_СЦенами.Розница,
    ВТ_СЦенами.Цена,
    ЕСТЬNULL(ОстатокВадан.КоличествоОстаток, 0) КАК Вадан,
    ЕСТЬNULL(ОстатокНаОсновномСкладе.КоличествоОстаток, 0) КАК ВНаличии
    ИЗ
    ВТ_СЦенами КАК ВТ_СЦенами
    ЛЕВОЕ СОЕДИНЕНИЕ ОстатокНаОсновномСкладе КАК ОстатокНаОсновномСкладе
    ПО ВТ_СЦенами.Ссылка = ОстатокНаОсновномСкладе.Номенклатура
    ЛЕВОЕ СОЕДИНЕНИЕ ОстатокВадан КАК ОстатокВадан
    ПО ВТ_СЦенами.Ссылка = ОстатокВадан.Номенклатура
```
---
andron77777, тебе огромный плюс в карму за работу!
Это пока сложно для моего понимания.
Я исправил название нескольких полей, как они заданы в нашем конфиге УТ11, вставил запрос в консоль запросов.
Но, к сожалению получаю ошибку

{(22, 28)}: Поле не найдено "ТоварыНаСкладахОстатки.ВНаличии"
ТоварыНаСкладахОстатки.<<?>>ВНаличии

Хотя в регистре накопления ТоварыНаСкладах у нас есть ресурс ВНаличии, который и нужно использовать

Вот получившийся текст запроса

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

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

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

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

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВТ_СЦенами.Ссылка,
    ВТ_СЦенами.Наименование,
    ВТ_СЦенами.Розница,
    ВТ_СЦенами.Цена,
    ЕСТЬNULL(ОстатокВадан.КоличествоОстаток, 0) КАК Вадан,
    ЕСТЬNULL(ОстатокНаОсновномСкладе.ВНаличии, 0) КАК ВНаличии
    ИЗ
    ВТ_СЦенами КАК ВТ_СЦенами
    ЛЕВОЕ СОЕДИНЕНИЕ ОстатокНаОсновномСкладе КАК ОстатокНаОсновномСкладе
    ПО ВТ_СЦенами.Ссылка = ОстатокНаОсновномСкладе.Номенклатура
    ЛЕВОЕ СОЕДИНЕНИЕ ОстатокВадан КАК ОстатокВадан
    ПО ВТ_СЦенами.Ссылка = ОстатокВадан.Номенклатура
```
---
Можете показать структуру регистра "ТоварыНаСкладах"?
---
Доброе утро!
Этого достаточно?
---
Пробуйте написать ТоварыНаСкладахОстатки.ВНаличииОстаток
Платформа по умолчанию добавляет к имени ресурса в таблице остатков слово "Остаток".

Там и дальше по тексту надо поправить, псевдонимы полей остатков. В итоге должно получить что-то, похожее на это:

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

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

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

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

    ////////////////////////////////////////////////////////////­­////////////////////
    ВЫБРАТЬ
    ВТ_СЦенами.Ссылка,
    ВТ_СЦенами.Наименование,
    ВТ_СЦенами.Розница,
    ВТ_СЦенами.Цена,
    ЕСТЬNULL(ОстатокВадан.ВНаличииОстаток, 0) КАК Вадан,
    ЕСТЬNULL(ОстатокНаОсновномСкладе.ВНаличииОстаток, 0) КАК ВНаличии
    ИЗ
    ВТ_СЦенами КАК ВТ_СЦенами
    ЛЕВОЕ СОЕДИНЕНИЕ ОстатокНаОсновномСкладе КАК ОстатокНаОсновномСкладе
    ПО ВТ_СЦенами.Ссылка = ОстатокНаОсновномСкладе.Номенклатура
    ЛЕВОЕ СОЕДИНЕНИЕ ОстатокВадан КАК ОстатокВадан
    ПО ВТ_СЦенами.Ссылка = ОстатокВадан.Номенклатура
```
---
ВНаличииОстаток
БИНГО!!!

Вы мой спаситель! Не знаю, чем отблагодарить.
Сейчас добавлю вознаграждение и торжественно вручу :)
---
Спасибо :)
---
Вам спасибо :)
---
Мне кажется, что вознаграждение ушло не по адресу :)
---
Мда, тут тоже походу нидхелп.
Назначил 2 m$ вознагражения.
Вроде вам отправил.
Но никаких упоминаний об этом с теме не вижу.
Пытаюсь еще раз отправить, получаю сообщение "Казна вознаграждения пуста"
Но единицы с меня списались...
---
Никакого нидхелп :)
Скорее нидрест.
Отправил свой приз себе же.
Единицы уже вернулись, еще раз назначил и отдал.
---
А вот еще вопрос со звёзночкой.
Нужен более хитрый алгоритм формирования значения Вналичии.
- Если товар на дату выгрузки есть в свободном остатке на основном складе, то выводим остаток на основном складе.
- Если товара на дату выгрузки нет в свободном остатке на основном складе, но он есть в свободном остатке на складе ВАДАН, то выводим значение «Под заказ 7 дней»
- Если товара на дату выгрузки нет в свободном остатке на основном складе и нет свободном остатке на складе ВАДАН, то не заполняем это поле

Я в конце запроса исправил формулу значения Вналичии на:
ЕСТЬNULL(ОстатокНаОсновномСкладе.ВНаличииОстаток, ?(ЕСТЬNULL(ОстатокВадан.ВНаличииОстаток, 0)=0,"""",""Под заказ 7 дней"") КАК ВНаличии

Но программа на меня ругается:
{(68, 55)}: Синтаксическая ошибка "?(ЕСТЬNULL(ОстатокВадан.ВНаличииОстаток,"
ЕСТЬNULL(ОстатокНаОсновномСкладе.ВНаличииОстаток, <<?>>?(ЕСТЬNULL(ОстатокВадан.ВНаличииОстаток, 0)=0,"","Под заказ 7 дней") КАК ВНаличии

Неужели в запросах нельзя использовать оператор ?(,,)
Как же тогда решить подобную тривиальную задачу?
---
Вопрос снят.
Разобрался сам, воспользовавшись методикой RTFM

| ВЫБОР
| КОГДА ЕСТЬNULL(ОстатокНаОсновномСкладе.ВНаличииОстаток,0)>0 ТОГДА
| ОстатокНаОсновномСкладе.ВНаличииОстаток
| ИНАЧЕ
| ВЫБОР
| КОГДА ЕСТЬNULL(ОстатокВадан.ВНаличииОстаток, 0)>0 ТОГДА
| ""Под заказ 7 дней""
| ИНАЧЕ
| """"
| КОНЕЦ
| КОНЕЦ КАК ВНаличии