Имя: Пароль:
1C
1С v8
v8: Как из запроса исключить документы которые являются основаниями для других докум?
0 Pavel__SSS
 
21.08.13
12:13
Здравствуйте!
Сделал документ "Сводная реализация" он формируется на основе обычной реализации товаров/услуг.

"Сводная реализация" формируется обработкой по отобранным в форме с помощью запроса документам "реализация".

Вопрос как изменить запрос, что бы в него не входили документы на основе которых уже сформирован сводный документ?
(документы основания входят в одну из табличных частей сводного документа)


ВЫБРАТЬ
    РеализацияТоваровУслуг_РСБУ.Ссылка КАК Ссылка,
    РеализацияТоваровУслуг_РСБУ.Проведен,
    РеализацияТоваровУслуг_РСБУ.Организация,
    РеализацияТоваровУслуг_РСБУ.Дата КАК ДатаДок
ИЗ
    Документ.РеализацияТоваровУслуг_РСБУ КАК РеализацияТоваровУслуг_РСБУ
ГДЕ
    РеализацияТоваровУслуг_РСБУ.Проведен = ИСТИНА
    И РеализацияТоваровУслуг_РСБУ.Организация = &ВыбОрганизация
    И РеализацияТоваровУслуг_РСБУ.Дата МЕЖДУ &ВыбДатаНач И &ВыбДатаКон
1 Pavel__SSS
 
22.08.13
10:37
Вот решение:
    "ВЫБРАТЬ
    |    СводнаяРеализация_РСБУ.Ссылка КАК Док,
    |    СводнаяРеализация_РСБУ.ДокументыОснования
    |ИЗ
    |    Документ.СводнаяРеализация_РСБУ КАК СводнаяРеализация_РСБУ
    |ГДЕ
    |    СводнаяРеализация_РСБУ.ДокументыОснования.ДокументОснование = &текДок
    |    И РеализацияРСБУ.Дата МЕЖДУ &ВыбДатаНач И &ВыбДатаКон";

Вызываю это запрос и роверяю результат:

        РЗ=Запрос2.Выполнить();
        ТЗДокОсн=РЗ.Выбрать();
        Если ТЗДокОсн.Количество()Тогда Продолжить Иначе
.....
КонецЕсли;
2 Pavel__SSS
 
22.08.13
11:01
Только это уже во время обхода результата первого запроса, а хотелось сделать одним запросом, но мозгов не хватает :)
3 John83
 
23.08.13
14:30
ГДЕ
    НЕ РеализацияТоваровУслуг_РСБУ.Ссылка В (документы основания из сводной реализации)
4 Pavel__SSS
 
26.08.13
18:47
(3) John83, да действительно, так уже лучше.
Интересно, а можно ли эту задачу решить с помощью механизмов соединения или объединения запросов?
5 shuhard
 
26.08.13
18:57
(4) Есть NULL чем не устроил на левом джойне ?
6 Pavel__SSS
 
26.08.13
19:11
(5) shuhard Можно подробнее?
7 John83
 
26.08.13
22:40
(6) соединяешь реализацию со своим документом по условию Реализация.Ссылка = ТвойДок.ДокументОснование
и дальше ГДЕ ТвойДок.Ссылка ЕСТЬ NULL
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший