По причине дополнение в периоде может быть выполнено только по одному полю

: 14.06.2007

. , , , . .

, , .

:

.,
.,
.,
.,
.,
.,
.,
.,
.
..(, , , , )

:

По причине дополнение в периоде может быть выполнено только по одному полю

.. .

, :

:= 01.02.2002 0:00:00
= 28.02.2002 23:59:59
01.02189-53136
02.021365141
05.02141-3138
13.02138101239
14.02239-4235
15.02235-25210
18.02210-19191
22.0219130221
24.02221-12209
26.02209-12197
28.02197197
1898197

По причине дополнение в периоде может быть выполнено только по одному полю

, , , , .

, .

По причине дополнение в периоде может быть выполнено только по одному полю

:

:= 01.02.2002 0:00:00
= 28.02.2002 23:59:59
01.02189-53136
02.021365141
03.02141141
04.02141141
05.02141-3138
06.02138138
07.02138138
08.02138138
09.02138138
10.02138138
11.02138138
12.02138138
13.02138101239
14.02239-4235
15.02235-25210
16.02210210
17.02210210
18.02210-19191
19.02191191
20.02191191
21.02191191
22.0219130221
23.02221221
24.02221-12209
25.02209209
26.02209-12197
27.02197197
28.02197197
1898197

По причине дополнение в периоде может быть выполнено только по одному полю

, , .

, , . » » » » . , , .

, :

.,
.,
.,
.,
. ,
.
..(, , , )

.

:

:= 01.03.2002 0:00:00
= 31.03.2002 23:59:59
17.03.2002 0:00:0052
20.03.2002 0:00:0020
72

:

:= 01.03.2002 0:00:00
= 31.03.2002 23:59:59
17.03.2002 0:00:0052
18.03.2002 0:00:00
19.03.2002 0:00:00
20.03.2002 0:00:0020
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:0052
18.03.2002 0:00:00
19.03.2002 0:00:00
20.03.2002 0:00:0020
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:0052
18.03.2002 0:00:00
19.03.2002 0:00:00
20.03.2002 0:00:0020
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:0052
18.03.2002 0:00:00
19.03.2002 0:00:00
20.03.2002 0:00:0020
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:0067
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:004
11.01.2002 0:00:0029
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:0021
17.01.2002 0:00:00
18.01.2002 0:00:003
19.01.2002 0:00:00
20.01.2002 0:00:00
21.01.2002 0:00:001
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:009
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:00128
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:0053
02.02.2002 0:00:00
03.02.2002 0:00:00
04.02.2002 0:00:00
05.02.2002 0:00:003
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:004
15.02.2002 0:00:0025
16.02.2002 0:00:00
17.02.2002 0:00:00
18.02.2002 0:00:0019
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:0012
25.02.2002 0:00:00
26.02.2002 0:00:0012
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:0072
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:0052
18.03.2002 0:00:00
19.03.2002 0:00:00
20.03.2002 0:00:0020
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:0067
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:004
11.01.2002 0:00:0029
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:0021
17.01.2002 0:00:00
18.01.2002 0:00:003
19.01.2002 0:00:00
20.01.2002 0:00:00
21.01.2002 0:00:001
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:009
30.01.2002 0:00:00
31.01.2002 0:00:00
01.02.2002 0:00:00128
01.02.2002 0:00:0053
02.02.2002 0:00:00
03.02.2002 0:00:00
04.02.2002 0:00:00
05.02.2002 0:00:003
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:004
15.02.2002 0:00:0025
16.02.2002 0:00:00
17.02.2002 0:00:00
18.02.2002 0:00:0019
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:0012
25.02.2002 0:00:00
26.02.2002 0:00:0012
27.02.2002 0:00:00
28.02.2002 0:00:00
01.03.2002 0:00:0072
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:0052
18.03.2002 0:00:00
19.03.2002 0:00:00
20.03.2002 0:00:0020
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 авторов за месяц

Кто онлайн

Облако тэгов

Инструменты

Дополнительно

Источник

Читайте также:  Что может быть причиной венерических заболеваний