|
Среднее в итогах ; баг или фича ? | ☑ | ||
---|---|---|---|---|
0
Aleks73
25.06.13
✎
10:14
|
1С:Предприятие 8.2 (8.2.13.219)
запрос.Текст = "ВЫБРАТЬ | ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура, | ПартииТоваровНаСкладахОстаткиИОбороты.Период КАК Период, | ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК Количество, | ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьКонечныйОстаток КАК Стоимость |ИЗ | РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты( | &д1, | &д2, | День, | ,) КАК ПартииТоваровНаСкладахОстаткиИОбороты |ИТОГИ | СРЕДНЕЕ(Количество), | СРЕДНЕЕ(Стоимость) |ПО | Номенклатура" ; в итогах - не среднее, а последняя запись по номенклатуре. почему - пока не понимаю. делал даже через вложеннный запрос - результат один... я туплю или такое не сделаешь ? если туплю - в чём ? конечно я выкручусь через пересчет в таблице значений, НО абыдно, слющай ?! ))) |
|||
1
1Cv8_accepted
25.06.13
✎
10:15
|
В рамках периода получается. По всему регистру было бы среднее арифметическое.
|
|||
2
Сергей Д
25.06.13
✎
10:16
|
Про какую-то такую фичу нам говорили на курсах. Типа "если сделать вот так в запросе с регистром накопления, то будет вот так, а не вот так". Не помню только, про что говорили. :(
|
|||
3
1Cv8_accepted
25.06.13
✎
10:16
|
(1) + У тебя периодичность - День.
|
|||
4
Aleks73
25.06.13
✎
10:17
|
(1),(3) Через вложенный запрос получается то же самое
запрос.Текст = "ВЫБРАТЬ | вз.Номенклатура КАК Номенклатура, | вз.Период КАК Период, | вз.Количество КАК Количество, | вз.Стоимость КАК Стоимость |ИЗ | (ВЫБРАТЬ | ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура, | ПартииТоваровНаСкладахОстаткиИОбороты.Период КАК Период, | ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК Количество, | ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьКонечныйОстаток КАК Стоимость | ИЗ | РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты( | &д1, | &д2, | День, | , | Склад В ИЕРАРХИИ (&спис2) | И Номенклатура В ИЕРАРХИИ (&спис)) КАК ПартииТоваровНаСкладахОстаткиИОбороты) КАК вз | |УПОРЯДОЧИТЬ ПО | вз.Номенклатура.Наименование, | Период |ИТОГИ | СРЕДНЕЕ(Количество), | СРЕДНЕЕ(Стоимость) |ПО | Номенклатура" ; |
|||
5
Aleks73
25.06.13
✎
10:20
|
up
|
|||
6
ssh2006
25.06.13
✎
10:27
|
(0) в запросе надо выбирать парное поле сотатка для корректного расчета итогов, посмотри статью на ИТС
|
|||
7
Aleks73
25.06.13
✎
10:50
|
(6) прочитал, сделал парные, тольку - 0.
запрос.Текст = "ВЫБРАТЬ | ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура, | ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК Количество, | ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток, | ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьКонечныйОстаток КАК Стоимость, | ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьНачальныйОстаток КАК СтоимостьНачальныйОстаток, | ПартииТоваровНаСкладахОстаткиИОбороты.ПериодДень |ИЗ | РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты( | &д1, | &д2, | Авто, | , | Склад В ИЕРАРХИИ (&спис2) | И Номенклатура В ИЕРАРХИИ (&спис)) КАК ПартииТоваровНаСкладахОстаткиИОбороты | |УПОРЯДОЧИТЬ ПО | ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура.Наименование |ИТОГИ | СРЕДНЕЕ(Количество), | СРЕДНЕЕ(КоличествоНачальныйОстаток), | СРЕДНЕЕ(Стоимость), | СРЕДНЕЕ(СтоимостьНачальныйОстаток) |ПО | Номенклатура" ; |
|||
8
vicof
25.06.13
✎
10:53
|
(6) Это фича СКД, просто к запросам отношения не имеет
|
|||
9
Aleks73
25.06.13
✎
11:05
|
от сильной печали сделал так... но без толку.
запрос.Текст = "ВЫБРАТЬ | вз.Номенклатура КАК Номенклатура, //| вз.ПериодДень КАК Период, | вз.Количество КАК Количество, | вз.Стоимость КАК Стоимость |ИЗ | (ВЫБРАТЬ | ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура, | ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК Количество, | ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток, | ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьКонечныйОстаток КАК Стоимость, | ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьНачальныйОстаток КАК СтоимостьНачальныйОстаток, | ПартииТоваровНаСкладахОстаткиИОбороты.ПериодДень КАК ПериодДень, | ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор КАК Регистратор | ИЗ | РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты( | &д1, | &д2, | Авто, | , | Склад В ИЕРАРХИИ (&спис2) | И Номенклатура В ИЕРАРХИИ (&спис)) КАК ПартииТоваровНаСкладахОстаткиИОбороты) КАК вз | |УПОРЯДОЧИТЬ ПО | вз.Номенклатура.Наименование //| Период |ИТОГИ | СРЕДНЕЕ(Количество), | СРЕДНЕЕ(Стоимость) |ПО | Номенклатура" ; |
|||
10
Пеппи
25.06.13
✎
11:13
|
Чисто из любопытства вопрос- ты среднее за какой период видеть хочешь?
|
|||
11
Aleks73
25.06.13
✎
11:13
|
(10) месяц
|
|||
12
ssh2006
25.06.13
✎
11:17
|
(8) в общем да, с запросами система сама решает:
"Для того чтобы запрос мог рассчитать итоги по полям остатка необходимо, чтобы в запросе получались оба значения остатка за период: начальный и конечные остатки. В случае, когда в запросе получается только один из остатков и по данному остатку ведется расчет итога, программа неявно добавит в запрос получения данных из информационной базы поле парного остатка." http://its.1c.ru/db/metod81#content:2664:1 В принципе, из этой статьи можно получить объяснение, почему в итогах значение последней записи: "записи упорядочиваются полям первого уровня, по которым еще не осуществлялась группировка и по полям периода, после чего осуществляется обход записей. Первые записи для комбинации полей первого уровня используются для суммирования начального остатка, последние - для расчета конечного остатка." Вероятно, программа рассчитывает среднее от последней по периоду записи, т.е. получает одно последнее значение |
|||
13
hhhh
25.06.13
✎
11:17
|
раньше была фича: NULL неправильно обрабатывало. ДОпустим 100 штук NULL и одна строчка со значением, она делила всё на 101.
|
|||
14
Aleks73
25.06.13
✎
11:18
|
(12) это по конечному остатку. по начальному - наоборот = первая запись.
|
|||
15
Aleks73
25.06.13
✎
11:19
|
(13) она не делит ваще.
|
|||
16
Aleks73
25.06.13
✎
11:22
|
(13) Из любопытства прописал естьнулл - без толку
|
|||
17
ssh2006
25.06.13
✎
11:23
|
(14) в общем это не баг, а фича. Помещай в ВТ и потом уже среднее
|
|||
18
Aleks73
25.06.13
✎
11:24
|
(17) кинь кусок, а то я уже задрался проверять версии.
сижу в пичали. |
|||
19
ssh2006
25.06.13
✎
11:26
|
(4) > Через вложенный запрос получается то же самое
Во вложенном запросе система тоже распознает поля остатка с версии 8.2.10 "Если во вложенном запросе получаются поля остатка, то и во внешнем запросе эти поля считаются полями остатка, и итоги по этим полям рассчитываются как по полям остатка. В режиме совместимости с версией 8.1 поведение не изменилось (поля остатка, полученные из вложенного запроса полями остатка не считаются, и итоги по ним рассчитываются как по обычным полям)." |
|||
20
ssh2006
25.06.13
✎
11:28
|
(18)
ВЫБРАТЬ ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура, ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток, ПартииТоваровНаСкладахОстаткиИОбороты.Период ПОМЕСТИТЬ ДанныеРегистра ИЗ РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(, , День, , Номенклатура = &Номенклатура) КАК ПартииТоваровНаСкладахОстаткиИОбороты ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ДанныеРегистра.Номенклатура КАК Номенклатура, ДанныеРегистра.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток, ДанныеРегистра.Период ИЗ ДанныеРегистра КАК ДанныеРегистра ИТОГИ СРЕДНЕЕ(КоличествоКонечныйОстаток) ПО Номенклатура |
|||
21
Aleks73
25.06.13
✎
11:56
|
(20) Уфф.... Спасибо, доктор ! (С)
официант, триста капель варельянки - и салат ! ... встретишь Джавдета - не трогай его . Он мой. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |