Подскажите с написанием Запроса.

Новая тема
"Доброго времени суток. давно тут не был ;) Подскажите с написанием запроса, что то понедельник. туплю. ИБ не типовая
Дано :
Документы.ЗаказПокупателя
Документы.ОтгрузкаМашины (в котором есть табличная часть в которую добавляют ЗаказПокупателя) а может и сразу 10. То есть когда отправляют машину, то в табличную часть этого документа добавляют заказыПокупателя который типо в этой машине.

Как правильно построить запрос. Что бы в "Результате" мне отобрать Все ЗаказыПокупателя, которые существуют в базе, но их нету Ни в одном дкоументе (в табличной части документа) ОтгрузкаМашины ??

Хух вроде старался понятно написать.

заранее спасибо"
о, ясно солнце прорезалось. доброго вечера!
понятно-то понятно, только поздновато. вместе с местом работы и часовой пояс сменили?
Это да, кругласуточно работаю теперь)))

ВЫБРАТЬ
   ЗаказПокупателя.Ссылка
ИЗ
   Документ.ЗаказПокупателя КАК ЗаказПокупателя
ГДЕ
   ЗаказПокупателя.ПометкаУдаления = ЛОЖЬ

УПОРЯДОЧИТЬ ПО
   ЗаказПокупателя.Дата

Это он отбирает все существующие не помечены на удаления..
Теперь из этих нужно отобрать только те, которых нет во всех вторых документах (в их табличных частях))
вот тут я и туплю)
ВЫБРАТЬ ЗаказПокупателя.Ссылка ИЗ Документ.ЗаказПокупателя КАК ЗаказПокупателя
ГДЕ НЕ ЗаказПокупателя.Ссылка В (ВЫБРАТЬ ОтгрузкаМашиныКузов.ЗаказПокупателя ИЗ Документ.ОтгрузкаМашины.Кузов КАК ОтгрузкаМашиныКузов) И ЗаказПокупателя.ПометкаУдаления = ЛОЖЬ



Можно так, только это неправильно. Так не делается. Более корректный способ решения:
Создать какой нибудь регистр накопления "Заказы к доставке" (а еще лучше "Товары по заказам к доставке"), в который писать приход при каком то условии, например, при оформлении реализации на основании заказа покупателя, и писать расход при оформлении какого нибудь путевого листа или что там у вас, а!, "Отгрузка машины". Чтобы узнать что мы еще покупателю не доставили будет проще простого, обычный запрос к остаткам по регистру на нужный момент и не придется заставлять программу перебирать все табличные части всех отгрузок, это же неоптимально, а если у вас огромная база в 20Гб, оно сколько времени делаться то будет?
ну или хотя бы галку "погружено в машину" в документе Заказы предусмотреть, чтобы просто перебрать доки по заказам и не сравнивать табличные части, которая естесственно ставиться\убирается при проведении\распроведении документов для машины. Можно сделать как поле-ссылку на кокретный документ на машину, чтобы видеть цепочку заказ-отгрузка в подчиненности документов.
Это если с регистрами не дружишь.
Только не как ты предложил, вон пфр только через 3 года опомнилось что так делать нельзя.
ребят это все разово. за 2-3 года нашли пару косяков. и хотят их убрать. далее ессесно сделаем или "галку" и тд
просто ранее этого не предусмотрели. теперь опомнились.
Примерно так:


ВЫБРАТЬ	ЗаказПокупателя.Ссылка КАК ЗаказПокупателя,ОтгрузкаМашины.Ссылка КАК ОтгрузкаМашиныИЗ Документы.ЗаказПокупателя КАК ЗаказПокупателя ЛЕВОЕ СОЕДИНЕНИЕ Документы.ОтгрузкаМашины.Заказы КАК ОтгрузкаМашиныЗаказыПО (ОтгрузкаМашиныЗаказы.Заказ = ЗаказПокупателя.Ссылка)ГДЕ ОтгрузкаМашиныЗаказы.Заказ ЕСТЬ NULL 
И ЗаказПокупателя.ПометкаУдаления = ЛОЖЬ
УПОРЯДОЧИТЬ ПО
ЗаказПокупателя.Дата
всем спасибки. сделал пока так
ВЫБРАТЬ ЗаказПокупателя.Ссылка ИЗ Документ.ЗаказПокупателя КАК ЗаказПокупателя
ГДЕ НЕ ЗаказПокупателя.Ссылка В (ВЫБРАТЬ ОтгрузкаМашиныКузов.ЗаказПокупателя ИЗ Документ.ОтгрузкаМашины.Кузов КАК ОтгрузкаМашиныКузов) И ЗаказПокупателя.ПометкаУдаления = ЛОЖ

и булево поставил, которое ставится автоматом на ЗаказеПокупателя если он добавлен в машину. =) и убирается если удален.
Вова, что ты предлагаешь это ужасно. :)
Зачем делать регистр если уже есть ТЧ? Ради чего в базу вводить доп.объект. Зачем делать Приход/расход если можно в документе "ОтгрузкаМашины" поставить реквизит типа "Булево" "Отгружена"? Крайне не рациональная архитектура.
Запрос нужно делать через соединение, как Петров-Водкин написал выше, тогда и не надо будет перебирать ТЧ документов.
Не согласен. Потом напишу почему, пока занят.
Читают тему
(гостей: 1)

Быстрый переход