Имя: Пароль:
1C
 
Разветвленное условие в запросе
0 LivingStar
 
15.06.19
14:21
Запросом выбираются данные.

Есть НачДата и КонДата которые передаются в параметры.

В запросе условие накладывается на поля НачалоПериода и ОкончаниеПериода

    |    И (СЦентр_ЗагрузкаМастеров.Документ.ПланДатаНачала >= &НачДата
    |    И СЦентр_ЗагрузкаМастеров.Документ.ПланДатаОкончания >= &КонДата)

КонДата = НачДата + 7 дней. То есть попадут документы у которых ОкончаниеПериода больше чем КонДата + 7 дней.

Как наложить ещё условие, что бы попадали документы у которых ОкончаниеПериода <= КонДата ?
1 LivingStar
 
15.06.19
14:24
|    И (СЦентр_ЗагрузкаМастеров.Документ.ПланДатаНачала >= &НачДата
    |        И (СЦентр_ЗагрузкаМастеров.Документ.ПланДатаОкончания >= &КонДата ИЛИ
    |           СЦентр_ЗагрузкаМастеров.Документ.ПланДатаОкончания <= &КонДата))

можно ли так?
2 vde69
 
15.06.19
14:36
используй Выбор

где
выбор .... тогда Истина
выбор .... тогда Ложь
3 LivingStar
 
15.06.19
14:58
(2) Понял, а как это будет выглядеть?

У меня в голове пока не укладывается.

Одно условие такое. Другое такое. Они практически друг друга исключающие.
4 LivingStar
 
16.06.19
07:03
(2) может быть вопрос я не совсем ясно описал?
5 СлавяНоарий
 
16.06.19
07:49
|    И ( (СЦентр_ЗагрузкаМастеров.Документ.ПланДатаНачала >= &НачДата
    |    И СЦентр_ЗагрузкаМастеров.Документ.ПланДатаНачала<= &КонДата)
    | или (СЦентр_ЗагрузкаМастеров.Документ.ПланДатаОкончания >= &НачДата
    |    И СЦентр_ЗагрузкаМастеров.Документ.ПланДатаОкончания <= &КонДата) )


    |    И ( (СЦентр_ЗагрузкаМастеров.Документ.ПланДатаНачала МЕЖДУ &НачДата И &КонДата
    |    Или СЦентр_ЗагрузкаМастеров.Документ.ПланДатаОкончания МЕЖДУ &НачДата И &КонДата )
6 СлавяНоарий
 
16.06.19
07:50
(5) Это если частичное совпадение интервалов. Если надо чтобы целиком интервал попадал

  |    И (СЦентр_ЗагрузкаМастеров.Документ.ПланДатаНачала >= &НачДата
    |    И СЦентр_ЗагрузкаМастеров.Документ.ПланДатаОкончания <= &КонДата)
7 LivingStar
 
16.06.19
08:17
(5) (6) Тут вопрос такой.

На форме есть период. Там планируется выбирать по 3 дня к примеру. Например,-
14.06.2019 - 17.06.2019.

Есть 2 документа. У одного ПланДатаНачала 14.06.2019, ПланДатаОкончания 16.06.2019
У другого ПланДатаНачала 14.06.2019, ПланДатаОкончания 11.09.2019.

Как сделать что бы они оба попали в выборку? Так как в выбранный период 14.06.2019 - 17.06.2019. Они оба в действии.
Ну и разные подобные ситуации. Важно что бы в выборке оказались документы которые действуют по
ПланДатаНачала, ПланДатаОкончания. Может есть и  3-й документ у которого
ПланДатаНачала 04.06.2019, ПланДатаОкончания 15.06.2019. И он тоже должен попасть в выборку, и тд.
8 rphosts
 
16.06.19
08:19
(0) "смешалось всё в доме Облонских" в вашем куске запроса вижу .ПланДатаНачала и .ПланДатаОкончания, в тексте толкуете про НачалоПериода и ОкончаниеПериода. То-ли это другие поля, тогда на кой здесь этот кусок запроса, толи что. Давайте вы сами разберётесь а потом будете постить.

(7) ГДЕ (несколько условий через предикат И) ИЛИ (несколько условий через предикат И)
9 LivingStar
 
16.06.19
08:20
ПланДатаНачала - НачалоПериодп
ПланДатаОкончания  - ОкончаниеПериода

не корректно выразился изначально.
10 LivingStar
 
16.06.19
08:22
(8)
ПланДатаНачала - НачалоПериода
ПланДатаОкончания  - ОкончаниеПериода

В документе есть ПланДатаНачала, ПланДатаОкончания. В запросе устанавливаются значения НачДата, КонДата.
Думаю может как то в коне ещё оперировать этими значениями. Передавая в запрос разные.
Или в самом запросе как то ими управлять и самой выборкой.
11 rphosts
 
16.06.19
08:36
(10) устанавливаются в запросе параметры. Сдай уж наконец профа по платформе!
12 rphosts
 
16.06.19
08:37
если так нужно - можешь и разные передавать, можешь как во второй части (8) написано сделать
13 LivingStar
 
16.06.19
08:39
(12) Бывает делаешь а запрос то не выбирает!
Вот и хочу узнать как правильнО!
14 rphosts
 
16.06.19
09:12
(13) запрос делает тебе в точности так как напишешь его, а у тебя каша в голове согласно (0). Сначала наведи порядок в мыслях потом иди кодить и только в атком порядке
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший