Левое соединение с переменными модуля в запросах #303455


#0 by Fragster
Есть Регистр с измерением типа "тип все ссылки" и список значений в котором хранятся конкретные значения со ссылками на объекты разных типов по которым надо получить остатки, включая нулевые остатки (для выгрузки например в инвентаризацию без доп. обработки). Как это сделать для одного типа - понятно, здесь все решает ЛЕВОЕ СОЕДИНЕНИЕ с отбором по таблице, а вот множественное ЛЕВОЕ СОЕДИНЕНИЕ не получается.
#1 by Scooter
ниче не понятно а вообще-то Регистр с измерением типа "тип все ссылки" - это зло
#2 by Fragster
PS. Это то, что так просто решалось с помощью магического слова ВСЕ в 7.7
#3 by Scooter
неповеришь в v8 это намного проще решается
#4 by Fragster
Ну на самом деле не тип все ссылки, а ссылка либо на элемент справочника, либо на документы 2 разных типов - такова логика процесса
#5 by Fragster
Как??? вот уже пол дня мучаюсь :(
#6 by Scooter
это уже лучше  :) напиши что хочешь получить, а то в ниче не понятно
#7 by ZolotarevAA
Я кажется понял, что нужно автору: вложенный запрос к таблице объектов с наложением фильтра (список значений) + левое соединение таблицы остатков. Запрос на самом деле ерундовый, слишком мутно задача поставлена...
#8 by Fragster
Ну, про вложенные запросы все понятно, только вот отбор у меня правильный не получается. Вот код (только внутренний запрос, если его получить правильно, задача тривиальна): А если так: В результат попадают значения, которых нет в СписокМест
#9 by Defender aka LINN
Не поверишь - тоже "ВСЕ", только в другом месте немного :)
#10 by Fragster
Вот если бы можно было бы использовать СписокМест для левого соединения с нужным запросом... а так вот полный запрос без внутреннего:
#11 by ZolotarevAA
Ничего не понял, но нутром чую - косячный запрос, переписывать надо коренным образом.
#12 by Fragster
ГДЕЕЕ????
#13 by ZolotarevAA
Может, так (вложенный запрос): ВЫБРАТЬ    МестаХранения.Ссылка КАК Место
#14 by Fragster
так - работает, но это простое левое соединение и без внутреннего запроса, но тогда нужно 3 запроса (для этого случая) - по местам хранения, по отгрузкам и по  поставкам
#15 by ZolotarevAA
Согласно указанного вами соединения ПО ОстаткиОстатки.Место = Места.Место               |            И ОстаткиОстатки.Место = Места.Поставка               |            И ОстаткиОстатки.Место = Места.Отгрузка в результате получим остатки только тогда, когда ОстаткиОстатки.Место = Места.Место = Места.Поставка = Места.Отгрузка , т.е это одно и то же "лицо". Не вижу смысла делать несколько полей кроме случая, когда рассматривается декартово произведение Мест, Поставок и Отгрузок - но тогда вообще смысла не вижу.
#16 by Fragster
Хорошо, вот данные остатка регистра: Место|Номенклатура|ЭлементХранения|Количество А-1-1|Тестовая|шт|30 А-1-2|Тестовая|шт|30 Поставка1|Тестовая|шт|330 вот список того, по чему нужны остатки (включая нулевые): А-1-1 Б-1-1 Отгрузка1 Желательно это сделать через 1 запрос. Потому что как сделать через много запросов я и так знаю, а хочется чтобы было красиво.
#17 by Fragster
если эти поля можно соединить "вертикально" вместо левого или правого соединения, то как? причем они уже «соединены» так в одной из переменных в модуле, может быть в запрос как-то можно ее передать?
#18 by Fragster
вверх!
#19 by sapphire
Убивать надо за такие запросы
#20 by Fragster
Всем спасибо, вот так работает:
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С