Имя: Пароль:
1C
1С v8
Неверные итоги в запросе при объединении
0 John83
 
20.02.13
12:04
УТ 10.3
Есть простейший запрос, итоги по товарам на складах считаются нормально, но итог по товарам в резерве почему-то выводится неверным.
Причем если в объединении сначала поставить товары в резерве, тогда неверные итоги уже по товарам на складах.
Периодичность по регистратору используется, т.к. нужно еще получить период.
Тут возможно что-то сделать? Почему такое поведение?

Скрин для наглядности результата запроса  http://xmage.ru/?v=ykyyky.png

И сам запрос



ВЫБРАТЬ
  ВложенныйЗапрос.Номенклатура КАК Номенклатура,
  ВложенныйЗапрос.КоличествоВРезерве КАК КоличествоВРезерве,
  ВложенныйЗапрос.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток
ИЗ
  (ВЫБРАТЬ
      ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
      0 КАК КоличествоВРезерве,
      ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток
  ИЗ
      РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор, , Номенклатура = &Номенклатура) КАК ТоварыНаСкладахОстаткиИОбороты
 
  ОБЪЕДИНИТЬ ВСЕ
 
  ВЫБРАТЬ
      ТоварыВРезервеНаСкладахОстаткиИОбороты.Номенклатура,
      ТоварыВРезервеНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
      0
  ИЗ
      РегистрНакопления.ТоварыВРезервеНаСкладах.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор, , Номенклатура = &Номенклатура) КАК ТоварыВРезервеНаСкладахОстаткиИОбороты) КАК ВложенныйЗапрос
ИТОГИ
  СУММА(КоличествоВРезерве),
  СУММА(КоличествоКонечныйОстаток)
ПО
  ОБЩИЕ
1 John83
 
20.02.13
12:05
предыдущую тему решил не поднимать, а создать новую - более читабельную
2 GANR
 
20.02.13
12:08
(0) Хм... По-ходу, в одном случае в ИТОГ берется СУММА, а в другом - последний по времени остаток.
3 Xatori
 
20.02.13
12:11
Что то мне кажется что так работать не будет, я бы при таком раскладе, запихнул в Временную таблицу результат запроса и уже там подвёл бы итоги, должно получится
4 John83
 
20.02.13
12:15
(3) так какая разница, если объединение делается во влож. запросе или во врем. таблице? или я неправильно понял?
5 sapphire
 
20.02.13
12:16
ВЫБРАТЬ
  ВложенныйЗапрос.Номенклатура КАК Номенклатура,
  ВложенныйЗапрос.КоличествоВРезерве КАК КоличествоВРезерве,
  ВложенныйЗапрос.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток
ИЗ
  (ВЫБРАТЬ
      ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
      0 КАК КоличествоВРезерве,
      ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток
  ИЗ
      РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор, , Номенклатура = &Номенклатура) КАК ТоварыНаСкладахОстаткиИОбороты
 
  ОБЪЕДИНИТЬ ВСЕ
 
  ВЫБРАТЬ
      ТоварыВРезервеНаСкладахОстаткиИОбороты.Номенклатура,
      ТоварыВРезервеНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
      0
  ИЗ
      РегистрНакопления.ТоварыВРезервеНаСкладах.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор, , Номенклатура = &Номенклатура) КАК ТоварыВРезервеНаСкладахОстаткиИОбороты) КАК ВложенныйЗапрос
ИТОГИ
  СУММА(КоличествоВРезерве),
  СУММА(КоличествоКонечныйОстаток)
ПО
  //ОБЩИЕ
  Номенклатура
6 John83
 
20.02.13
12:19
(5) результат тот же...
7 John83
 
20.02.13
12:20
(2) примерно так и есть, но мне нужно, чтобы по обоим полям брался "последний по времени остаток"
8 GANR
 
20.02.13
12:20
(6) А если в консоли СКД похожее сделать?
9 ptiz
 
20.02.13
12:21
(0) Смирись.
Если делать, то объединением таблиц:
- нач. остатков
- кон. остатков
- оборотов
и так же по другому регистру
10 GLazNik
 
20.02.13
12:22
(0) странный запрос. Детализация по регистратору есть, а в результате его нет. Но при этом есть номенклатура в то время когда запрос строится по конкретной номенклатуре.
И что это за обработка? почему уверенность что ошибка в итогах а не обработке?
11 GLazNik
 
20.02.13
12:23
И да... ОстаткиИОбороты при детализации регистратор не есть хорошо
12 John83
 
20.02.13
12:25
(10) еще будет использоваться период, для получения периодичности по дням, неделям и т.д.
PS вообще хочу этот запрос использовать в унив. отчете
13 Галахад
 
гуру
20.02.13
12:26
(0) Не пленился. Проверил. Итог считается.
14 GLazNik
 
20.02.13
12:29
(12) ну так надо и использовать периодичность день, неделя и т.д. Но все равно не подойдет. Так понимаю тут нужен остаток на каждый день.
15 ssh2006
 
20.02.13
12:33
(0) попробуй добавить поля начального остатка
16 ssh2006
 
20.02.13
12:39
+ еще из upd к какому-то релизу 8.2

"Если в запросе получаются итоги по полям остатков, данные в запросе получаются при помощи объединения и при этом в одной части получаются поля остатка, а в другой части получаются нулевые значения, то в запросе необходимо явно указывать получение полей - периодов, по которым получаются данные из виртуальной таблицы."
17 ssh2006
 
20.02.13
12:41
+ еще из upd инфо к некому релизу:

"Если во вложенном запросе получаются поля остатка, то и во внешнем запросе эти поля считаются полями остатка, и итоги по этим полям рассчитываются как по полям остатка. В режиме совместимости с версией 8.1 поведение не изменилось (поля остатка, полученные из вложенного запроса полями остатка не считаются, и итоги по ним рассчитываются как по обычным полям)."
http://downloads.v8.1c.ru/content/Platform/8_2_17_169/1cv8upd.htm
18 John83
 
20.02.13
13:52
(13) попробовал в УПП - все тоже самое
скорее всего у тебя в заданном периоде одна запись по резерву
19 John83
 
20.02.13
14:00
(15) не помогло
20 John83
 
20.02.13
14:07
(16) "явно указывать получение полей - периодов"
эти типа
ВЫБОР
КОДА КонечныйОстаток = 0 Тогда
ДАТА(1,1,1)
ИНАЧЕ...

???
21 ssh2006
 
20.02.13
14:09
Попробуй выбрать регистраторы
22 ssh2006
 
20.02.13
14:09
(21) 2 (20)
23 John83
 
20.02.13
14:20
(21) все тоже самое
24 ssh2006
 
20.02.13
14:20
(23) а версия платформы какая?
25 John83
 
20.02.13
14:21
(24) сейчас пробую на 8.2.15.301
на 8.2.16.368 - тоже самое
26 ssh2006
 
20.02.13
14:23
+ еще без вложенного запроса, с выбранными регистраторами можно попробовать
27 John83
 
20.02.13
14:30
(26) да пробовал и через врем. таблицу - там вообще цифры непонятные получаются
PS поставил последнюю платформу - все безрезультатно
28 ssh2006
 
20.02.13
14:32
(27) без вложенного я имею ввиду так:

ВЫБРАТЬ
   1 КАК Поле1

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   2
ИТОГИ
   СУММА(Поле1)
ПО
   ОБЩИЕ

и регистраторы чтоб выбраны были
29 ssh2006
 
20.02.13
14:34
(27) > там вообще цифры непонятные получаются

Конечно, система в таком случае не поймет при расчете итогов что это поля остатка
30 John83
 
20.02.13
14:36
(28) так и делаю

ВЫБРАТЬ
   ТоварыВРезервеНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
   0 КАК КоличествоКонечныйОстаток,
   ТоварыВРезервеНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоВРезерве,
   ТоварыВРезервеНаСкладахОстаткиИОбороты.Регистратор КАК Регистратор
ИЗ
   РегистрНакопления.ТоварыВРезервеНаСкладах.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор, , Номенклатура = &Номенклатура) КАК ТоварыВРезервеНаСкладахОстаткиИОбороты

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
   0,
   ТоварыНаСкладахОстаткиИОбороты.Регистратор
ИЗ
   РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор, , Номенклатура = &Номенклатура) КАК ТоварыНаСкладахОстаткиИОбороты
ИТОГИ
   СУММА(КоличествоКонечныйОстаток),
   СУММА(КоличествоВРезерве)
ПО
   ОБЩИЕ
31 ssh2006
 
20.02.13
14:41
Тогда по ходу никак, не работает такая конструкция, в 1с можно написать, вопрос задать.
32 John83
 
20.02.13
14:43
(31) а куда писать подобные вопросы?
сомневаюсь, что на [email protected] ответят...
33 ssh2006
 
20.02.13
14:44
(32) я задавал на [email protected] вопросы по платформе, отвечали
34 ssh2006
 
20.02.13
14:44
+ Данные надо указать рег номер, на который итс оформлен
35 John83
 
20.02.13
14:45
(33) хорошо, попробую
спасибо!!!
36 John83
 
21.02.13
13:44
а вот если объединять реальные таблицы, то никаких проблем с итогами нет...