По причине дополнение в периоде может быть выполнено только по одному полю
Содержание статьи
: 14.06.2007
. , , , . .
, , .
:
.,
.,
.,
.,
.,
.,
.,
.,
.
..(, , , , )
:
.. .
, :
: | = 01.02.2002 0:00:00 | |
= 28.02.2002 23:59:59 |
01.02 | 189 | -53 | 136 |
02.02 | 136 | 5 | 141 |
05.02 | 141 | -3 | 138 |
13.02 | 138 | 101 | 239 |
14.02 | 239 | -4 | 235 |
15.02 | 235 | -25 | 210 |
18.02 | 210 | -19 | 191 |
22.02 | 191 | 30 | 221 |
24.02 | 221 | -12 | 209 |
26.02 | 209 | -12 | 197 |
28.02 | 197 | 197 | |
189 | 8 | 197 |
, , , , .
, .
:
: | = 01.02.2002 0:00:00 | |
= 28.02.2002 23:59:59 |
01.02 | 189 | -53 | 136 |
02.02 | 136 | 5 | 141 |
03.02 | 141 | 141 | |
04.02 | 141 | 141 | |
05.02 | 141 | -3 | 138 |
06.02 | 138 | 138 | |
07.02 | 138 | 138 | |
08.02 | 138 | 138 | |
09.02 | 138 | 138 | |
10.02 | 138 | 138 | |
11.02 | 138 | 138 | |
12.02 | 138 | 138 | |
13.02 | 138 | 101 | 239 |
14.02 | 239 | -4 | 235 |
15.02 | 235 | -25 | 210 |
16.02 | 210 | 210 | |
17.02 | 210 | 210 | |
18.02 | 210 | -19 | 191 |
19.02 | 191 | 191 | |
20.02 | 191 | 191 | |
21.02 | 191 | 191 | |
22.02 | 191 | 30 | 221 |
23.02 | 221 | 221 | |
24.02 | 221 | -12 | 209 |
25.02 | 209 | 209 | |
26.02 | 209 | -12 | 197 |
27.02 | 197 | 197 | |
28.02 | 197 | 197 | |
189 | 8 | 197 |
, , .
, , . » » » » . , , .
, :
.,
.,
.,
.,
. ,
.
..(, , , )
.
:
: | = 01.03.2002 0:00:00 | |
= 31.03.2002 23:59:59 |
17.03.2002 0:00:00 | 52 |
20.03.2002 0:00:00 | 20 |
72 |
:
: | = 01.03.2002 0:00:00 | |
= 31.03.2002 23:59:59 |
17.03.2002 0:00:00 | 52 |
18.03.2002 0:00:00 | |
19.03.2002 0:00:00 | |
20.03.2002 0:00:00 | 20 |
72 |
.. , , .
:
:
: | = 01.03.2002 0:00:00 | |
= 31.03.2002 23:59:59 |
01.03.2002 0:00:00 | |
02.03.2002 0:00:00 | |
03.03.2002 0:00:00 | |
04.03.2002 0:00:00 | |
05.03.2002 0:00:00 | |
06.03.2002 0:00:00 | |
07.03.2002 0:00:00 | |
08.03.2002 0:00:00 | |
09.03.2002 0:00:00 | |
10.03.2002 0:00:00 | |
11.03.2002 0:00:00 | |
12.03.2002 0:00:00 | |
13.03.2002 0:00:00 | |
14.03.2002 0:00:00 | |
15.03.2002 0:00:00 | |
16.03.2002 0:00:00 | |
17.03.2002 0:00:00 | 52 |
18.03.2002 0:00:00 | |
19.03.2002 0:00:00 | |
20.03.2002 0:00:00 | 20 |
21.03.2002 0:00:00 | |
22.03.2002 0:00:00 | |
23.03.2002 0:00:00 | |
24.03.2002 0:00:00 | |
25.03.2002 0:00:00 | |
26.03.2002 0:00:00 | |
27.03.2002 0:00:00 | |
28.03.2002 0:00:00 | |
29.03.2002 0:00:00 | |
30.03.2002 0:00:00 | |
31.03.2002 0:00:00 | |
72 |
, , , . .
/ , , . , , , — — ( ). , — — , — — . , .
: | = 01.03.2002 0:00:00 | |
= 31.03.2002 23:59:59 |
01.03.2002 0:00:00 | |
02.03.2002 0:00:00 | |
03.03.2002 0:00:00 | |
04.03.2002 0:00:00 | |
05.03.2002 0:00:00 | |
06.03.2002 0:00:00 | |
07.03.2002 0:00:00 | |
08.03.2002 0:00:00 | |
09.03.2002 0:00:00 | |
10.03.2002 0:00:00 | |
11.03.2002 0:00:00 | |
12.03.2002 0:00:00 | |
13.03.2002 0:00:00 | |
14.03.2002 0:00:00 | |
15.03.2002 0:00:00 | |
16.03.2002 0:00:00 | |
17.03.2002 0:00:00 | 52 |
18.03.2002 0:00:00 | |
19.03.2002 0:00:00 | |
20.03.2002 0:00:00 | 20 |
21.03.2002 0:00:00 | |
22.03.2002 0:00:00 | |
23.03.2002 0:00:00 | |
24.03.2002 0:00:00 | |
25.03.2002 0:00:00 | |
26.03.2002 0:00:00 | |
27.03.2002 0:00:00 | |
28.03.2002 0:00:00 | |
29.03.2002 0:00:00 | |
30.03.2002 0:00:00 | |
31.03.2002 0:00:00 | |
72 |
, , .
, . , , , , . , . .
: | = 01.03.2002 0:00:00 | |
= 31.03.2002 23:59:59 |
11.03.2002 0:00:00 | |
12.03.2002 0:00:00 | |
13.03.2002 0:00:00 | |
14.03.2002 0:00:00 | |
15.03.2002 0:00:00 | |
16.03.2002 0:00:00 | |
17.03.2002 0:00:00 | 52 |
18.03.2002 0:00:00 | |
19.03.2002 0:00:00 | |
20.03.2002 0:00:00 | 20 |
21.03.2002 0:00:00 | |
22.03.2002 0:00:00 | |
23.03.2002 0:00:00 | |
24.03.2002 0:00:00 | |
72 |
, .
:
, .
, , .. , .
01.01.2002 — 31.03.2002 :
: | = 01.01.2002 0:00:00 | |
= 31.03.2002 23:59:59 |
01.01.2002 0:00:00 | 67 |
01.01.2002 0:00:00 | |
02.01.2002 0:00:00 | |
03.01.2002 0:00:00 | |
04.01.2002 0:00:00 | |
05.01.2002 0:00:00 | |
06.01.2002 0:00:00 | |
07.01.2002 0:00:00 | |
08.01.2002 0:00:00 | |
09.01.2002 0:00:00 | |
10.01.2002 0:00:00 | 4 |
11.01.2002 0:00:00 | 29 |
12.01.2002 0:00:00 | |
13.01.2002 0:00:00 | |
14.01.2002 0:00:00 | |
15.01.2002 0:00:00 | |
16.01.2002 0:00:00 | 21 |
17.01.2002 0:00:00 | |
18.01.2002 0:00:00 | 3 |
19.01.2002 0:00:00 | |
20.01.2002 0:00:00 | |
21.01.2002 0:00:00 | 1 |
22.01.2002 0:00:00 | |
23.01.2002 0:00:00 | |
24.01.2002 0:00:00 | |
25.01.2002 0:00:00 | |
26.01.2002 0:00:00 | |
27.01.2002 0:00:00 | |
28.01.2002 0:00:00 | |
29.01.2002 0:00:00 | 9 |
30.01.2002 0:00:00 | |
31.01.2002 0:00:00 | |
01.02.2002 0:00:00 | |
02.02.2002 0:00:00 | |
03.02.2002 0:00:00 | |
04.02.2002 0:00:00 | |
05.02.2002 0:00:00 | |
06.02.2002 0:00:00 | |
07.02.2002 0:00:00 | |
08.02.2002 0:00:00 | |
09.02.2002 0:00:00 | |
10.02.2002 0:00:00 | |
11.02.2002 0:00:00 | |
12.02.2002 0:00:00 | |
13.02.2002 0:00:00 | |
14.02.2002 0:00:00 | |
15.02.2002 0:00:00 | |
16.02.2002 0:00:00 | |
17.02.2002 0:00:00 | |
18.02.2002 0:00:00 | |
19.02.2002 0:00:00 | |
20.02.2002 0:00:00 | |
21.02.2002 0:00:00 | |
22.02.2002 0:00:00 | |
23.02.2002 0:00:00 | |
24.02.2002 0:00:00 | |
25.02.2002 0:00:00 | |
26.02.2002 0:00:00 | |
27.02.2002 0:00:00 | |
28.02.2002 0:00:00 | |
01.03.2002 0:00:00 | |
02.03.2002 0:00:00 | |
03.03.2002 0:00:00 | |
04.03.2002 0:00:00 | |
05.03.2002 0:00:00 | |
06.03.2002 0:00:00 | |
07.03.2002 0:00:00 | |
08.03.2002 0:00:00 | |
09.03.2002 0:00:00 | |
10.03.2002 0:00:00 | |
11.03.2002 0:00:00 | |
12.03.2002 0:00:00 | |
13.03.2002 0:00:00 | |
14.03.2002 0:00:00 | |
15.03.2002 0:00:00 | |
16.03.2002 0:00:00 | |
17.03.2002 0:00:00 | |
18.03.2002 0:00:00 | |
19.03.2002 0:00:00 | |
20.03.2002 0:00:00 | |
21.03.2002 0:00:00 | |
22.03.2002 0:00:00 | |
23.03.2002 0:00:00 | |
24.03.2002 0:00:00 | |
25.03.2002 0:00:00 | |
26.03.2002 0:00:00 | |
27.03.2002 0:00:00 | |
28.03.2002 0:00:00 | |
29.03.2002 0:00:00 | |
30.03.2002 0:00:00 | |
31.03.2002 0:00:00 | |
01.02.2002 0:00:00 | 128 |
01.01.2002 0:00:00 | |
02.01.2002 0:00:00 | |
03.01.2002 0:00:00 | |
04.01.2002 0:00:00 | |
05.01.2002 0:00:00 | |
06.01.2002 0:00:00 | |
07.01.2002 0:00:00 | |
08.01.2002 0:00:00 | |
09.01.2002 0:00:00 | |
10.01.2002 0:00:00 | |
11.01.2002 0:00:00 | |
12.01.2002 0:00:00 | |
13.01.2002 0:00:00 | |
14.01.2002 0:00:00 | |
15.01.2002 0:00:00 | |
16.01.2002 0:00:00 | |
17.01.2002 0:00:00 | |
18.01.2002 0:00:00 | |
19.01.2002 0:00:00 | |
20.01.2002 0:00:00 | |
21.01.2002 0:00:00 | |
22.01.2002 0:00:00 | |
23.01.2002 0:00:00 | |
24.01.2002 0:00:00 | |
25.01.2002 0:00:00 | |
26.01.2002 0:00:00 | |
27.01.2002 0:00:00 | |
28.01.2002 0:00:00 | |
29.01.2002 0:00:00 | |
30.01.2002 0:00:00 | |
31.01.2002 0:00:00 | |
01.02.2002 0:00:00 | 53 |
02.02.2002 0:00:00 | |
03.02.2002 0:00:00 | |
04.02.2002 0:00:00 | |
05.02.2002 0:00:00 | 3 |
06.02.2002 0:00:00 | |
07.02.2002 0:00:00 | |
08.02.2002 0:00:00 | |
09.02.2002 0:00:00 | |
10.02.2002 0:00:00 | |
11.02.2002 0:00:00 | |
12.02.2002 0:00:00 | |
13.02.2002 0:00:00 | |
14.02.2002 0:00:00 | 4 |
15.02.2002 0:00:00 | 25 |
16.02.2002 0:00:00 | |
17.02.2002 0:00:00 | |
18.02.2002 0:00:00 | 19 |
19.02.2002 0:00:00 | |
20.02.2002 0:00:00 | |
21.02.2002 0:00:00 | |
22.02.2002 0:00:00 | |
23.02.2002 0:00:00 | |
24.02.2002 0:00:00 | 12 |
25.02.2002 0:00:00 | |
26.02.2002 0:00:00 | 12 |
27.02.2002 0:00:00 | |
28.02.2002 0:00:00 | |
01.03.2002 0:00:00 | |
02.03.2002 0:00:00 | |
03.03.2002 0:00:00 | |
04.03.2002 0:00:00 | |
05.03.2002 0:00:00 | |
06.03.2002 0:00:00 | |
07.03.2002 0:00:00 | |
08.03.2002 0:00:00 | |
09.03.2002 0:00:00 | |
10.03.2002 0:00:00 | |
11.03.2002 0:00:00 | |
12.03.2002 0:00:00 | |
13.03.2002 0:00:00 | |
14.03.2002 0:00:00 | |
15.03.2002 0:00:00 | |
16.03.2002 0:00:00 | |
17.03.2002 0:00:00 | |
18.03.2002 0:00:00 | |
19.03.2002 0:00:00 | |
20.03.2002 0:00:00 | |
21.03.2002 0:00:00 | |
22.03.2002 0:00:00 | |
23.03.2002 0:00:00 | |
24.03.2002 0:00:00 | |
25.03.2002 0:00:00 | |
26.03.2002 0:00:00 | |
27.03.2002 0:00:00 | |
28.03.2002 0:00:00 | |
29.03.2002 0:00:00 | |
30.03.2002 0:00:00 | |
31.03.2002 0:00:00 | |
01.03.2002 0:00:00 | 72 |
01.01.2002 0:00:00 | |
02.01.2002 0:00:00 | |
03.01.2002 0:00:00 | |
04.01.2002 0:00:00 | |
05.01.2002 0:00:00 | |
06.01.2002 0:00:00 | |
07.01.2002 0:00:00 | |
08.01.2002 0:00:00 | |
09.01.2002 0:00:00 | |
10.01.2002 0:00:00 | |
11.01.2002 0:00:00 | |
12.01.2002 0:00:00 | |
13.01.2002 0:00:00 | |
14.01.2002 0:00:00 | |
15.01.2002 0:00:00 | |
16.01.2002 0:00:00 | |
17.01.2002 0:00:00 | |
18.01.2002 0:00:00 | |
19.01.2002 0:00:00 | |
20.01.2002 0:00:00 | |
21.01.2002 0:00:00 | |
22.01.2002 0:00:00 | |
23.01.2002 0:00:00 | |
24.01.2002 0:00:00 | |
25.01.2002 0:00:00 | |
26.01.2002 0:00:00 | |
27.01.2002 0:00:00 | |
28.01.2002 0:00:00 | |
29.01.2002 0:00:00 | |
30.01.2002 0:00:00 | |
31.01.2002 0:00:00 | |
01.02.2002 0:00:00 | |
02.02.2002 0:00:00 | |
03.02.2002 0:00:00 | |
04.02.2002 0:00:00 | |
05.02.2002 0:00:00 | |
06.02.2002 0:00:00 | |
07.02.2002 0:00:00 | |
08.02.2002 0:00:00 | |
09.02.2002 0:00:00 | |
10.02.2002 0:00:00 | |
11.02.2002 0:00:00 | |
12.02.2002 0:00:00 | |
13.02.2002 0:00:00 | |
14.02.2002 0:00:00 | |
15.02.2002 0:00:00 | |
16.02.2002 0:00:00 | |
17.02.2002 0:00:00 | |
18.02.2002 0:00:00 | |
19.02.2002 0:00:00 | |
20.02.2002 0:00:00 | |
21.02.2002 0:00:00 | |
22.02.2002 0:00:00 | |
23.02.2002 0:00:00 | |
24.02.2002 0:00:00 | |
25.02.2002 0:00:00 | |
26.02.2002 0:00:00 | |
27.02.2002 0:00:00 | |
28.02.2002 0:00:00 | |
01.03.2002 0:00:00 | |
02.03.2002 0:00:00 | |
03.03.2002 0:00:00 | |
04.03.2002 0:00:00 | |
05.03.2002 0:00:00 | |
06.03.2002 0:00:00 | |
07.03.2002 0:00:00 | |
08.03.2002 0:00:00 | |
09.03.2002 0:00:00 | |
10.03.2002 0:00:00 | |
11.03.2002 0:00:00 | |
12.03.2002 0:00:00 | |
13.03.2002 0:00:00 | |
14.03.2002 0:00:00 | |
15.03.2002 0:00:00 | |
16.03.2002 0:00:00 | |
17.03.2002 0:00:00 | 52 |
18.03.2002 0:00:00 | |
19.03.2002 0:00:00 | |
20.03.2002 0:00:00 | 20 |
21.03.2002 0:00:00 | |
22.03.2002 0:00:00 | |
23.03.2002 0:00:00 | |
24.03.2002 0:00:00 | |
25.03.2002 0:00:00 | |
26.03.2002 0:00:00 | |
27.03.2002 0:00:00 | |
28.03.2002 0:00:00 | |
29.03.2002 0:00:00 | |
30.03.2002 0:00:00 | |
31.03.2002 0:00:00 | |
267 |
, , , .
, — , — .
:
: | = 01.01.2002 0:00:00 | |
= 31.03.2002 0:00:00 | ||
01.01.2002 0:00:00 | 67 |
01.01.2002 0:00:00 | |
02.01.2002 0:00:00 | |
03.01.2002 0:00:00 | |
04.01.2002 0:00:00 | |
05.01.2002 0:00:00 | |
06.01.2002 0:00:00 | |
07.01.2002 0:00:00 | |
08.01.2002 0:00:00 | |
09.01.2002 0:00:00 | |
10.01.2002 0:00:00 | 4 |
11.01.2002 0:00:00 | 29 |
12.01.2002 0:00:00 | |
13.01.2002 0:00:00 | |
14.01.2002 0:00:00 | |
15.01.2002 0:00:00 | |
16.01.2002 0:00:00 | 21 |
17.01.2002 0:00:00 | |
18.01.2002 0:00:00 | 3 |
19.01.2002 0:00:00 | |
20.01.2002 0:00:00 | |
21.01.2002 0:00:00 | 1 |
22.01.2002 0:00:00 | |
23.01.2002 0:00:00 | |
24.01.2002 0:00:00 | |
25.01.2002 0:00:00 | |
26.01.2002 0:00:00 | |
27.01.2002 0:00:00 | |
28.01.2002 0:00:00 | |
29.01.2002 0:00:00 | 9 |
30.01.2002 0:00:00 | |
31.01.2002 0:00:00 | |
01.02.2002 0:00:00 | 128 |
01.02.2002 0:00:00 | 53 |
02.02.2002 0:00:00 | |
03.02.2002 0:00:00 | |
04.02.2002 0:00:00 | |
05.02.2002 0:00:00 | 3 |
06.02.2002 0:00:00 | |
07.02.2002 0:00:00 | |
08.02.2002 0:00:00 | |
09.02.2002 0:00:00 | |
10.02.2002 0:00:00 | |
11.02.2002 0:00:00 | |
12.02.2002 0:00:00 | |
13.02.2002 0:00:00 | |
14.02.2002 0:00:00 | 4 |
15.02.2002 0:00:00 | 25 |
16.02.2002 0:00:00 | |
17.02.2002 0:00:00 | |
18.02.2002 0:00:00 | 19 |
19.02.2002 0:00:00 | |
20.02.2002 0:00:00 | |
21.02.2002 0:00:00 | |
22.02.2002 0:00:00 | |
23.02.2002 0:00:00 | |
24.02.2002 0:00:00 | 12 |
25.02.2002 0:00:00 | |
26.02.2002 0:00:00 | 12 |
27.02.2002 0:00:00 | |
28.02.2002 0:00:00 | |
01.03.2002 0:00:00 | 72 |
01.03.2002 0:00:00 | |
02.03.2002 0:00:00 | |
03.03.2002 0:00:00 | |
04.03.2002 0:00:00 | |
05.03.2002 0:00:00 | |
06.03.2002 0:00:00 | |
07.03.2002 0:00:00 | |
08.03.2002 0:00:00 | |
09.03.2002 0:00:00 | |
10.03.2002 0:00:00 | |
11.03.2002 0:00:00 | |
12.03.2002 0:00:00 | |
13.03.2002 0:00:00 | |
14.03.2002 0:00:00 | |
15.03.2002 0:00:00 | |
16.03.2002 0:00:00 | |
17.03.2002 0:00:00 | 52 |
18.03.2002 0:00:00 | |
19.03.2002 0:00:00 | |
20.03.2002 0:00:00 | 20 |
21.03.2002 0:00:00 | |
22.03.2002 0:00:00 | |
23.03.2002 0:00:00 | |
24.03.2002 0:00:00 | |
25.03.2002 0:00:00 | |
26.03.2002 0:00:00 | |
27.03.2002 0:00:00 | |
28.03.2002 0:00:00 | |
29.03.2002 0:00:00 | |
30.03.2002 0:00:00 | |
31.03.2002 0:00:00 | |
267 |
, , .
Источник
АйТиБложик
В случае если поле, по которому рассчитываем итоги, является полем типа Дата, то возможно дополнение результатов датами в заданном периоде. Делается это при помощи ключевого слова ПЕРИОДАМИ, после которого в скобках указывается вид периода (одно из СЕКУНДА, МИНУТА, ЧАС, ДЕНЬ, НЕДЕЛЯ, МЕСЯЦ, КВАРТАЛ, ГОД, ДЕКАДА, ПОЛУГОДИЕ), начальная и конечные даты интересуемого периода. В случае если начальные и конечные даты не указаны, будут использованы первая и последняя даты, участвующие в результате.
Допустим, мы написали запрос с дополнением дат:
ВЫБРАТЬ
НАЧАЛОПЕРИОДА(_ДемоОстаткиТоваровВМестахХраненияОстаткиИОбороты.Период, МЕСЯЦ) КАК Период,
_ДемоОстаткиТоваровВМестахХраненияОстаткиИОбороты.Номенклатура КАК Номенклатура,
СУММА(_ДемоОстаткиТоваровВМестахХраненияОстаткиИОбороты.КоличествоПриход) КАК КоличествоПриход,
СУММА(_ДемоОстаткиТоваровВМестахХраненияОстаткиИОбороты.КоличествоРасход) КАК КоличествоРасход,
СУММА(_ДемоОстаткиТоваровВМестахХраненияОстаткиИОбороты.КоличествоОборот) КАК КоличествоОборот,
СУММА(_ДемоОстаткиТоваровВМестахХраненияОстаткиИОбороты.КоличествоНачальныйОстаток) КАК КоличествоНачальныйОстаток,
СУММА(_ДемоОстаткиТоваровВМестахХраненияОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток
ИЗ
РегистрНакопления._ДемоОстаткиТоваровВМестахХранения.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Месяц, ДвиженияИГраницыПериода, ) КАК _ДемоОстаткиТоваровВМестахХраненияОстаткиИОбороты
СГРУППИРОВАТЬ ПО
_ДемоОстаткиТоваровВМестахХраненияОстаткиИОбороты.Номенклатура,
НАЧАЛОПЕРИОДА(_ДемоОстаткиТоваровВМестахХраненияОстаткиИОбороты.Период, МЕСЯЦ)
УПОРЯДОЧИТЬ ПО
Период,
Номенклатура
ИТОГИ
СУММА(КоличествоПриход),
СУММА(КоличествоРасход),
СУММА(КоличествоОборот),
СУММА(КоличествоНачальныйОстаток),
СУММА(КоличествоКонечныйОстаток)
ПО
Период ПЕРИОДАМИ(МЕСЯЦ, &НачалоПериода, &КонецПериода)
Если выполнить запрос в консоли запросов, то никакого дополнения дат мы не увидим, хотя запрос написан верно. Особенность дополнения дат в том, что эта конструкция работает только при обходе результата запроса, а консоль запросов применяет метод Выгрузить() к результату запроса и никакого дополнения не происходит.
Пример №1 — выгрузка результата запроса в дерево значений (ДанныеФормыДерево)
Запрос = Новый Запрос;
Запрос.Текст = ПолучитьТекстЗапроса();
Запрос.УстановитьПараметр(«НачалоПериода», Объект.НачалоПериода);
Запрос.УстановитьПараметр(«КонецПериода», Объект.КонецПериода);
ВыборкаПериод = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам);
ЗначениеВРеквизитФормы(ВыборкаПериод, «РезультатЗапроса»);
В данном примере дополнение дат не произойдет, т.к. происходит выгрузка результата запроса. Функция ПолучитьТекстЗапроса() возвращает выше приведенный текст запроса.
Пример №2 — обход результата запроса с последующей загрузкой в дерево значений (ДанныеФормыДерево)
Запрос = Новый Запрос;
Запрос.Текст = ПолучитьТекстЗапроса();
Запрос.УстановитьПараметр(«НачалоПериода», Объект.НачалоПериода);
Запрос.УстановитьПараметр(«КонецПериода», Объект.КонецПериода);
ВыборкаПериод = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, «Период», «Все»);
ЭлементыДерева = ЭтаФорма.РезультатЗапроса.ПолучитьЭлементы();
ЭлементыДерева.Очистить();
Пока ВыборкаПериод.Следующий() Цикл
НовыйЭлементГруппа = ЭлементыДерева.Добавить();
ЗаполнитьЗначенияСвойств(НовыйЭлементГруппа, ВыборкаПериод);
ВыборкаДетальныеЗаписи = ВыборкаПериод.Выбрать();
ЭлементыГруппы = НовыйЭлементГруппа.ПолучитьЭлементы();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
НовыйЭлемент = ЭлементыГруппы.Добавить();
ЗаполнитьЗначенияСвойств(НовыйЭлемент, ВыборкаДетальныеЗаписи);
КонецЦикла;
КонецЦикла;
В данном примере производиться обход результата запроса, причем указывается как должна получаться выборка, с помощью передачи параметров в метод Выбрать(). В этом примере будет производиться дополнение дат.
Источник
Четверг. Вопрос 8
Страницы: 1 2 3 [4] 5 Вниз Автор Тема: Четверг. Вопрос 8 (Прочитано 45952 раз)0 Пользователей и 1 Гость просматривают эту тему. Чтобы сформировать таблицу со всеми датами из этого периода в СКД необходимо использовать механизм дополнения периода. В источниках данных необходимо указать объединение двух запросов. Один запрос к физической таблице с условием по периоду, а второй запрос будет получать срез последних на начало периода. Для периода необходимо указать роль «Период», а для курса указать роль «Остаток». Пример схемы во вложении. Не получилось, не силён в запросах и СКД((( СрезПоследних() можно использовать только с передачей в него заранее готового значения даты, поэтому по-любому сначала нужна выборка по датам, а потом по курсам. запрос будет один с параметром периода. Данные будут браться из периодического регистра с периодом день Сделал с помощью одного набора данных-запрос, пакет из 2х запросов Схему компоновки прикрепляю я не знаю какой механизм надо использовать, но СКД в одном единственном запросе обращаемся к реальной таблице регистра сведений и задаем условие периода Дата >= Период <= Дата В источниках данных СКД будет два набора данных-запрос. Первый набор данных «Даты» — запрос, который генерирует все даты в нужном периоде. Второй набор данных «Курсы» — запрос к регистру сведений КурсыВалют: ВЫБРАТЬ Наборы данных соединяются, как показано на картинке, при этом важно указать «Параметр» — «Дата», чтобы СКД передавала значения (даты) из первого набора данных во второй. Результат (приведен фрагмент регистра сведений и сформированный отчет): Здесь нужно указывать в СКД для группировок дополнение периодов с заданной периодичностью в указанном интервале. Необходимо добавить группировку ПериодДень. В свойствах группировки установить тип дополнения «День» и ввести значения в «Начальную дату периода» и «Конечную дату периода». В источниках данных будет один запрос Есть красивое, на мой взгляд, решение этой задачи одним запросом. ВЫБРАТЬ 0 КАК Цифра ПОМЕСТИТЬ ТабЦифр ОБЪЕДИНИТЬ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВЫБРАТЬ 9 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ДОБАВИТЬКДАТЕ(&ДатаНачала, ДЕНЬ, ТабЦифр1.Цифра + 10 * ТабЦифр2.Цифра + 100 * ТабЦифр3.Цифра + 1000 * ТабЦифр4.Цифра) КАК День ПОМЕСТИТЬ ТабДней ИЗ ТабЦифр КАК ТабЦифр1, ТабЦифр КАК ТабЦифр2, ТабЦифр КАК ТабЦифр3, ТабЦифр КАК ТабЦифр4 ГДЕ ДОБАВИТЬКДАТЕ(&ДатаНачала, ДЕНЬ, ТабЦифр1.Цифра + 10 * ТабЦифр2.Цифра + 100 * ТабЦифр3.Цифра + 1000 * ТабЦифр4.Цифра) <= &ДатаКонца ИНДЕКСИРОВАТЬ ПО День ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТабДней.День ПОМЕСТИТЬ Даты ИЗ ТабДней КАК ТабДней ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ КурсыВалют_1.Дата КАК Дата, КурсыВалют.Валюта КАК Валюта, КурсыВалют.Курс КАК Курс ИЗ (ВЫБРАТЬ Даты.День КАК Дата, КурсыВалют.Валюта КАК Валюта, МАКСИМУМ(КурсыВалют.Период) КАК Период ИЗ Даты КАК Даты ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют ПО (КурсыВалют.Валюта = &ВыбВалюта) И (КурсыВалют.Период <= Даты.День) СГРУППИРОВАТЬ ПО Даты.День, КурсыВалют.Валюта) КАК КурсыВалют_1 ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют ПО (КурсыВалют.Валюта = КурсыВалют_1.Валюта) И (КурсыВалют.Период = КурсыВалют_1.Период) УПОРЯДОЧИТЬ ПО Дата, Валюта, Курс В СКД будут два источника. Первый должен содержать все даты из периода, как их добыть — каждый решает сам. Второй будет содержать курсы валют (срез поледних). Далее соединяем наборы с передачей параметра Дата, и, если надо, то и Валюта.
Сначала необходимо создать набор данных (запрос) с перечнем всех дат, на которые нужно получить курс валют. В большинстве типовых конфигураций есть производственный (или хоть какой-нибудь) календарь, запросом к нему это сделать проще всего. Либо, если никакого календаря совсем нет — вот таким запросом. Дальше возможны варианты:
Итого: либо мы используем 1 набор данных, но тяжелый запрос с дополнительным внутренним. либо 2 набора данных, по 1 запросу в каждом. Как сделать все это без первоначального создания ТаблицыДат — я не знаю. Все даты из диапазона вывести просто, указав для поля ТипДополнения «День» и связав даты периода с параметрами СКД. Но связь наборов данных выполняется раньше дополнения и нужного результата мы не получаем. Если все же можно как-то проще — пожалуйста, расскажите, очень интересно! =) Страницы: 1 2 3 [4] 5 Вверх Теги: Реклама | ПоискПоследние задачи на разработку (фриланс)Последние вакансииТом 10 авторов за месяцКто онлайнОблако тэговИнструментыДополнительно |
Источник