Имя: Пароль:
1C
1С v8
Период отчета вместе с периодом регистратора в запросе.
0 lirt82
 
29.03.19
11:37
Есть отчет у него есть СтандартныйПериод, в запросе этого отчета есть таблица непериодического регистра сведений, у этого регистра есть регистратор документ Договор у этого документа есть период действия договора с...по...Как поставить условие в запросе чтоб в отчет попадали записи регистра у которых период действия документа Договор находится в СтандартнойПериоде отчета? Пример, в доке Договор период действия ДатаНач 30.12.2018 и ДатаКон 31.12.2019, период самого отчета выбрали январь 2019, т.е. в этом случае запись по договору должна попасть в отчет
1 Asmody
 
29.03.19
11:42
(0) А ты нарисуй на оси времени свой период отчета и разные возможные варианты периода действия договора. Если не ошибаюсь, их будет 5.
Тогда условия запроса станут очевидными.
2 lirt82
 
29.03.19
11:43
(1) понял:)
3 Gucci76
 
29.03.19
12:00
НачалоДоговора <= КонецПериода
КонецДоговора >= НачалоПериода
Не?
4 lirt82
 
29.03.19
12:10
(1) да 5 вариантов, 1 - до периода отчета, 2- до периода отчета и входит в период отчета, 3- полностью входит в период отчета, 4- в периоде отчета и выходит за период отчета и 5-за периодом отчета
5 lirt82
 
29.03.19
12:18
(3) вот так правильно
ГДЕ
    И &ДатаНачалаПериодаОтчета МЕЖДУ &ДатаДоговораНач И &ДатаДоговораКон
    И &ДатаОкончанияПериодаОтчета МЕЖДУ &ДатаДоговораНач И &ДатаДоговораКон
6 lirt82
 
29.03.19
12:50
самое смешное..как быть у СтандартногоПериода есть ДатаНачала и ДатаОкончания и у регистра сведений ресурсы ДатаНачала и ДатаОкончания....как условие сделать?:)
7 lirt82
 
29.03.19
12:51
ГДЕ
    &ДатаНачала МЕЖДУ &ДатаНачала И &ДатаОкончания
    И &ДатаОкончания МЕЖДУ &ДатаНачала И &ДатаОкончания
8 DrWatson
 
29.03.19
13:09
(6) В чем вопрос, как обратиться к реквизиту справочника из запроса?
9 lirt82
 
29.03.19
13:12
(8) как условие сделать по ресурсу регистра если у него имя совпадает с именем параметра стандартного периода?
10 catena
 
29.03.19
13:14
(7)Гениально) Теперь попробуйте выпасть из этого условия)) Ну, только если один из параметров NULL))
11 lirt82
 
29.03.19
13:14
&ДатаНачала(СтандартныйПериод) МЕЖДУ &ДатаНачала(ресурс регистра сведений) И &ДатаОкончания(ресурс регистра сведений)
12 kudlach
 
29.03.19
13:14
А зачем ты Даты договора как параметры то передаешь ?

Док.Договор.ДатаНачала МЕЖДУ &ДатаНачала И &ДатаОкончания
И Док.Договор.ДатаОкончания МЕЖДУ &ДатаНачала И &ДатаОкончания
13 catena
 
29.03.19
13:15
(9)ГДЕ
    &ДатаНачала МЕЖДУ Регистр.ДатаНачала И Регистр.ДатаОкончания
    И &ДатаОкончания МЕЖДУ Регистр.ДатаНачала И Регистр.ДатаОкончания
14 kudlach
 
29.03.19
13:16
нет, сорри.   ИЛИ

Док.Договор.ДатаНачала МЕЖДУ &ДатаНачала И &ДатаОкончания
ИЛИ Док.Договор.ДатаОкончания МЕЖДУ &ДатаНачала И &ДатаОкончания

Если И - договор полностью в указанных рамках
15 lirt82
 
29.03.19
13:17
(13) взрыв мозга))))))
&ДатаНачала МЕЖДУ ПериодыДействияДоговоровГПХ.ДатаНачала И ПериодыДействияДоговоровГПХ.ДатаОкончания
16 catena
 
29.03.19
13:19
(14)Ему надо, чтобы период был полностью внутри договора, а не любое попадание договора в период.
17 Sayan_mi
 
29.03.19
13:45
(4) ещё один вариант просмотрели начинается раньше периода отчета и заканчивается после окончания периода отчета. как следствие самый простой вариант ДатаОкончания >= &НачалоПериода И ДатаНачала <= &ОкончаниеПериода
18 lirt82
 
29.03.19
13:57
(17) кстати твой вариант компактнее)))
19 1Сергей
 
29.03.19
14:03
этот вариант ещё в (3) предложили
20 kudlach
 
29.03.19
14:06
(0), (16)

Если думать не хочется:

ГДЕ
(&ДатаНачала МЕЖДУ Док.Договор.ДатаНачала И Док.Договор.ДатаОкончания)
И (&ДатаОкончания  МЕЖДУ Док.Договор.ДатаНачала И Док.Договор.ДатаОкончания)

Период внутри действия договоров

(17) не полностью период внутри договора - Начало периода после окончания договора, _И_ Конец периода ПОСЛЕ Начала договора. Не прилепится.

Нужно пределиться что в чем, И или ИЛИ

ДатаНачДоговора<= &ДатаНачПериода И &ДатаКонПериода <= &ДатаКонДоговора
&ДатаНачПериода <= ДатаНачДоговора И ДатаКонДоговора <= &ДатаКонПериода
ДатаНачДоговора<= &ДатаНачПериода  ИЛИ ДатаКонДоговора <= &ДатаКонПериода
21 lirt82
 
29.03.19
14:13
(19) согласен...ох уж эта невнимательность:)