Имя: Пароль:
1C
 
период в запросе
, ,
0 LivingStar
 
17.06.19
08:48
У документа есть поля.

ПланДатаНачала
ПланДатаОкончания

Есть обработка на форме которой есть Планируемый период (тип стандартный период.)

При смене периода и нажатии кнопки пересчитать, выполняется запрос в котором установлено условие на ПланДатаНачала и ПланДатаОкончания документа.

Нужно что бы отбирались документы, у которых выбранный период в ПланДатаНачала и ПланДатаОкончания, попадал в выбранный период на обработке планируемый период.
1 LivingStar
 
17.06.19
08:51
(0+)

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


Как правильно построить условие, подскажите пожалуйста.
2 LivingStar
 
17.06.19
08:52
Чтобы Выезды, в которых ПланДатаНачала 14.06 и ПланДатаОкончания 14.09, попали в планируемый период 17.06-19.06
3 LivingStar
 
17.06.19
08:56
Что даст такое условие?


|    И ( (СЦентр_ЗагрузкаМастеров.Документ.ПланДатаНачала >= &НачДата
|    И СЦентр_ЗагрузкаМастеров.Документ.ПланДатаНачала<= &КонДата)
|    или (СЦентр_ЗагрузкаМастеров.Документ.ПланДатаОкончания >= &НачДата
|    И СЦентр_ЗагрузкаМастеров.Документ.ПланДатаОкончания <= &КонДата) )
|    И ( (СЦентр_ЗагрузкаМастеров.Документ.ПланДатаНачала МЕЖДУ &НачДата И &КонДата
|    Или СЦентр_ЗагрузкаМастеров.Документ.ПланДатаОкончания МЕЖДУ &НачДата И &КонДата )
4 ЗлаяЗая
 
17.06.19
08:56
ПланДатаНачала МЕЖДУ &НачДата И &КонДата
ИЛИ ПланДатаОкончания МЕЖДУ &НачДата И &КонДата
5 LivingStar
 
17.06.19
09:01
(4) Может быть что ПланДатаНачала находится до &НачДата
а ПланДатаОкончания после КонДата

как в этом случае быть?
6 Dotoshin
 
17.06.19
09:01
(2) >>Чтобы Выезды, в которых ПланДатаНачала 14.06 и ПланДатаОкончания 14.09, попали в планируемый период 17.06-19.06

А зачем тебе ПланДатаОкончания, если в отчет должны попасть документы у которых ПланДатаНачала находится в периоде с 17 по 19 июня, или я что-то не понимаю?
7 ЗлаяЗая
 
17.06.19
09:03
(5) а вам как надо?
-обе даты должны попадать в период
-или только первая
-или только вторая
-или одна из 2х?
8 Dotoshin
 
17.06.19
09:03
+(6) думаю надо просто: ПланДатаНачала МЕЖДУ &НачДата И &КонДата
9 Dotoshin
 
17.06.19
09:04
(7) Он по ходу дела сам не понимает как ему надо, отсюда все проблемы...
10 LivingStar
 
17.06.19
09:07
(7)(9) Сейчас разберемся!
11 тарам пам пам
 
17.06.19
09:07
тут судя по (2) нужно такое условие

&НачДата МЕЖДУ ПланДатаНачала И ПланДатаОкончания
ИЛИ &КонДата МЕЖДУ ПланДатаНачала И ПланДатаОкончания
12 LivingStar
 
17.06.19
09:13
(11) Да вот это интересное решение.
То есть попадут документы, у которых ПланДатаНачала и до выбранного периода в планировщике
и заключенная в нем. Так же и дата окончания, как в нем так и после?

а если ПланДатаНачала до выбранного периода? А ПланДатаОкончания после выбранного периода?
13 LivingStar
 
17.06.19
09:16
ПланДатаНачала 14.06.19, в Загрузке мастера ставлю период выполения работ 17.06 с 9 до 10 утра

Я выбираю период в Планировщике 14.06-19.06 - Выезд отображается
Я выбираю период в Планировщике 17.06-19.06 - Выезд не отображается
14 LivingStar
 
17.06.19
09:19
Как быть с (13) ?
15 breezee
 
17.06.19
09:34
Поиграйтесь в консоле запросов. Скачать можно с ИТС, на сколько я помнб юесплатно
16 LivingStar
 
17.06.19
09:38
(15) Важна идея как сделать (13)

или это сработает по условию (11) ?

Так как ПланДатаОкончания = НачДата
17 Dotoshin
 
17.06.19
09:40
(14) Написать простыми русскими словами, что нужно сделать, иначе можно долго гадать, какую задачу нужно решить. Попробуй просто без запросов, условий и прочего кодинга сформулировать, что тебе нужно сделать.
18 Serg_1960
 
17.06.19
09:46
Имхо: автору определиться надо - работает он с днями и/или с часами тоже. Писать ли "Дата МЕЖДУ НачалоПериода(&НачПериода, День) И КонецПериода(&КонПериода, День)" или ".УстановитьПараметр("НачПериода",КонецДня(НачПериода))" - ему решать.
19 LivingStar
 
17.06.19
09:46
(17)

У документа есть поля.

ПланДатаНачала
ПланДатаОкончания

Есть обработка на форме которой есть Планируемый период (тип стандартный период.)

Нужно что бы при выборе планируемого периода, осуществлялась выборка документов, которые попадают в это период.

1. У которых ПланДатаНачала до выбранного периода, ПланДатаОкончания после выбранного периода.
   То есть ПланДатаНачала и ПланДатаНачала действуют в выбранном периоде.

2. Когда ПланДатаНачала до выбранного периода, а ПланДатаОкончания в выбранном периоде.

3. Когда ПланДатаНачала в выбранном периоде, а ПланДатаОкончания после выбранного периода.

4. ну и когда ПланДатаНачала и ПланДатаОкончания в выбранном периоде.
20 Serg_1960
 
17.06.19
09:49
PS: пиши "<=" или ">=" и не мучай нас и себя :))
21 LivingStar
 
17.06.19
09:50
(20) А как именно писать?
22 Dotoshin
 
17.06.19
09:53
(19) То есть тебе нужно выбрать документы у которых ПланДатаНачала или ПланДатаОкончания попадает в планируемый период, либо планируемый период находится в промежутке между ПланДатаНачала и ПланДатаОкончания. Так?
23 LivingStar
 
17.06.19
09:53
(22) Да!
24 1Садовник
 
17.06.19
09:56
(19) ПланДатаНачала <= ПланируемыйПериод.ДатаОкончания И  ПланДатаОкончания >= ПланируемыйПериод.ДатаНачала
25 Dotoshin
 
17.06.19
09:57
(23) Ну так и пиши тогда. (ПланДатаНачала МЕЖДУ &НачДата И &КонДата) или (ПланДатаОкончания МЕЖДУ &НачДата И &КонДата) или (&НачДата >= ПланДатаНачала и &КонДата <= ПланДатаОкончания)
26 LivingStar
 
17.06.19
09:57
(24) (25) Буду пробовать.
27 Dotoshin
 
17.06.19
09:58
+ (25) наоборот вмемто (&НачДата >= ПланДатаНачала и &КонДата <= ПланДатаОкончания) читай
(&НачДата =< ПланДатаНачала и &КонДата => ПланДатаОкончания)
28 Dotoshin
 
17.06.19
10:00
(27) нет все таки первый раз было правмилтьно :)
29 LivingStar
 
17.06.19
10:10
(28) То есть как я понимаю, вот это итоговое условие, при котором должно выполнится (19) ?


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



сейчас набьют тестовых документов будем проверять
30 Dotoshin
 
17.06.19
10:21
(29) Держите нас в курсе :)
31 novichok79
 
17.06.19
13:02
для начала надо чтобы в документе ПланДатаНачала и ПланДатаОкончания были в правильном порядке, как и даты для фильтрации.
далее делаете простое условие в запросе

&ДатаНачала между Т.ПланДатаНачала и Т.ПланДатаОкончания
Или &ДатаОкончания между Т.ПланДатаНачала и Т.ПланДатаОкончания
Или Т.ПланДатаНачала между &ДатаНачала и &ДатаОкончания
Или Т.ПланДатаОкончания между &ДатаНачала и &ДатаОкончания

и за "СЦентр_ЗагрузкаМастеров.Документ.ПланДатаНачала" потом будет больно, если "Документ" составного типа.