Запрос к регистру СвободныеОстатки (Вывести всю номенклатуру и все склады)
Доброго времени суток, уважаемые коллеги!
Подскажите, пожалуйста, как правильно составить следующий запрос:
Необходимо чтобы результатом запроса была таблица следующего содержания:
<Номенклатура> <Склад> <Остаток>
Вроде задача не сложная, однако, необходимо получить таблицу со всей номенклатурой, по всем складам и даже, если остаток 0, то вывести результат в таблицу.
Например:
Уголь - Основной слкад - 14
Уголь - Розничный склад - 0.
На данный момент использую следующий запрос:
Работает прекрасно, но для того, чтобы сработало нужно передать параметр - Номенклатура.
Мне нужны остатки всей номенклатуры, соответственно сначала я делаю запрос к справочнику "Номенклатура", затем исполняю этот запрос, ВНИМАНИЕ В ЦИКЛЕ (что естественно очень плохо, но задачу нужно было решить быстро, решил, как смог).
Хочу исправить свой "хвост" и сделать нормально, однако уже всю голову сломал, как правильно это сделать.
Подскажите.
Подскажите, пожалуйста, как правильно составить следующий запрос:
Необходимо чтобы результатом запроса была таблица следующего содержания:
<Номенклатура> <Склад> <Остаток>
Вроде задача не сложная, однако, необходимо получить таблицу со всей номенклатурой, по всем складам и даже, если остаток 0, то вывести результат в таблицу.
Например:
Уголь - Основной слкад - 14
Уголь - Розничный склад - 0.
На данный момент использую следующий запрос:
ВЫБРАТЬ
| Склады.Ссылка КАК Ссылка, | ЕСТЬNULL(СвободныеОстаткиОстатки.ВНаличииОстаток, 0) КАК ВНаличииОстаток, | ЕСТЬNULL(СвободныеОстаткиОстатки.Номенклатура, &Номенклатура) КАК Номенклатура |ИЗ | РегистрНакопления.СвободныеОстатки.Остатки(, Номенклатура = &Номенклатура) КАК СвободныеОстаткиОстатки | ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Склады КАК Склады | ПО СвободныеОстаткиОстатки.Склад = Склады.Ссылка |ГДЕ | НЕ Склады.Ссылка = &Ссылка | И Склады.ЭтоГруппа = ЛОЖЬ | И Склады.Родитель = &Родитель |
---|
Скрытый текст |
Работает прекрасно, но для того, чтобы сработало нужно передать параметр - Номенклатура.
Мне нужны остатки всей номенклатуры, соответственно сначала я делаю запрос к справочнику "Номенклатура", затем исполняю этот запрос, ВНИМАНИЕ В ЦИКЛЕ (что естественно очень плохо, но задачу нужно было решить быстро, решил, как смог).
Хочу исправить свой "хвост" и сделать нормально, однако уже всю голову сломал, как правильно это сделать.
Подскажите.
По теме из базы знаний
Найденные решения
(1) Выбрать всю номенклатуру и склад и соединиться с таблицей остатков.
Примерно так
Примерно так
ВЫБРАТЬ
| Склады.Ссылка КАК Склад,
| Номенклатура.Ссылка КАК Номенклатура
|Поместить Таб
|ИЗ
|Справочник.Склады КАК Склады,
|Справочник.Номенклатура КАК Номенклатура
|;
|ВЫБРАТЬ
|Таб.Склад,
|Таб.Номенклатура,
| ЕСТЬNULL(СвободныеОстаткиОстатки.ВНаличииОстаток, 0) КАК ВНаличииОстаток
|ИЗ
| Таб КАК Таб
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстатки.Остатки КАК СвободныеОстаткиОстатки
| ПО Таб.Склад = СвободныеОстаткиОстатки.Склад
| И Таб.Номенклатура = СвободныеОстаткиОстатки.Номенклатура
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Выбрать всю номенклатуру и склад и соединиться с таблицей остатков.
Примерно так
Примерно так
ВЫБРАТЬ
| Склады.Ссылка КАК Склад,
| Номенклатура.Ссылка КАК Номенклатура
|Поместить Таб
|ИЗ
|Справочник.Склады КАК Склады,
|Справочник.Номенклатура КАК Номенклатура
|;
|ВЫБРАТЬ
|Таб.Склад,
|Таб.Номенклатура,
| ЕСТЬNULL(СвободныеОстаткиОстатки.ВНаличииОстаток, 0) КАК ВНаличииОстаток
|ИЗ
| Таб КАК Таб
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстатки.Остатки КАК СвободныеОстаткиОстатки
| ПО Таб.Склад = СвободныеОстаткиОстатки.Склад
| И Таб.Номенклатура = СвободныеОстаткиОстатки.Номенклатура
Показать
(2)
Большое спасибо, как то у меня видимо проблема с логикой мышления..
ВЫБРАТЬ
| Склады.Ссылка КАК Склад,
| Номенклатура.Ссылка КАК Номенклатура
|Поместить Таб
|ИЗ
|Справочник.Склады КАК Склады,
|Справочник.Номенклатура КАК Номенклатура
|;
|ВЫБРАТЬ
|Таб.Склад,
|Таб.Номенклатура,
| ЕСТЬNULL(СвободныеОстаткиОстатки.ВНаличииОстаток, 0) КАК ВНаличииОстаток
|ИЗ
| Таб КАК Таб
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстатки.Остатки КАК СвободныеОстаткиОстатки
| ПО Таб.Склад = СвободныеОстаткиОстатки.Склад
| И Таб.Номенклатура = СвободныеОстаткиОстатки.Номенклатура
Показать| Склады.Ссылка КАК Склад,
| Номенклатура.Ссылка КАК Номенклатура
|Поместить Таб
|ИЗ
|Справочник.Склады КАК Склады,
|Справочник.Номенклатура КАК Номенклатура
|;
|ВЫБРАТЬ
|Таб.Склад,
|Таб.Номенклатура,
| ЕСТЬNULL(СвободныеОстаткиОстатки.ВНаличииОстаток, 0) КАК ВНаличииОстаток
|ИЗ
| Таб КАК Таб
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстатки.Остатки КАК СвободныеОстаткиОстатки
| ПО Таб.Склад = СвободныеОстаткиОстатки.Склад
| И Таб.Номенклатура = СвободныеОстаткиОстатки.Номенклатура
Большое спасибо, как то у меня видимо проблема с логикой мышления..
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот