Имя: Пароль:
1C
 
Помогите разобраться с остатками в запросе
0 blin
 
19.10.04
00:00
Есть регистр накопления ОстаткиНоменклатурыЯчейкиОжидание с измерением Номенклатура и ресурсом ОстатокМинус. Делаю к нему следующий запрос.

ВЫБРАТЬ
Остатки.Номенклатура.Код,
Номенклатура КАК Номенклатура,
Регистратор КАК Регистратор,
Сумма(Остатки.ОстатокМинусНачальныйОстаток) КАК НачОстОжидание,
Сумма(Остатки.ОстатокМинусПриход) как ПриходОжидание,
Сумма(Остатки.ОстатокМинусРасход) как РасходОжидание,
Сумма(Остатки.ОстатокМинусКонечныйОстаток) как КонОстОжидание,
Остатки.Регистратор.Дата
ИЗ
РегистрНакопления.ОстаткиНоменклатурыЯчейкиОжидание.ОстаткиИОбороты(&ДатаНач,&ДатаКон,Регистратор) КАК Остатки
ГДЕ Остатки.Номенклатура В Иерархии(&Номенклатура)
СГРУППИРОВАТЬ ПО Номенклатура,Регистратор
УПОРЯДОЧИТЬ ПО Номенклатура.Код ,Остатки.Регистратор.Дата
ИТОГИ
Сумма(НачОстОжидание),
Сумма(ПриходОжидание),
Сумма(ПриходОжидание),
Сумма(КонОстОжидание)
ПО
Общие,
Номенклатура Иерархия,
Регистратор

Если формирую запрос за период, в котором не было движений, то начальные и конечные остатки берутся не известно откуда (сильно завышены), а если запрос формируется за период, где движения были, то все ОК.
В чем может быть проблема?
1 blin
 
19.10.04
00:08
Забыл сказать релиз 8.0.8.7
2 blin
 
19.10.04
09:12
Под утро осенило.
Наверное Сгруппировать здесь лишнее. Ведь он суммирует данные по группировкам, ну и НачОст и КонОст суммирует из двух строчек, которые всегда есть по пустым регистраторам (я так понимаю, что это какие-то итоги). Убрал Сгруппировать. Получился текст запроса.

ВЫБРАТЬ
Остатки.Номенклатура.Код,
Номенклатура КАК Номенклатура,
Регистратор КАК Регистратор,
Остатки.ОстатокМинусНачальныйОстаток КАК НачОстОжидание,
Остатки.ОстатокМинусПриход как ПриходОжидание,
Остатки.ОстатокМинусРасход как РасходОжидание,
Остатки.ОстатокМинусКонечныйОстаток как КонОстОжидание,
Остатки.Регистратор.Дата
ИЗ
РегистрНакопления.ОстаткиНоменклатурыЯчейкиОжидание.ОстаткиИОбороты(&ДатаНач,&ДатаКон,Регистратор) КАК Остатки
ГДЕ Остатки.Номенклатура В Иерархии(&Номенклатура)
УПОРЯДОЧИТЬ ПО Номенклатура.Код ,Остатки.Регистратор.Дата
ИТОГИ
Сумма(НачОстОжидание),
Сумма(ПриходОжидание),
Сумма(ПриходОжидание),
Сумма(КонОстОжидание)
ПО
Общие,
Номенклатура Иерархия,
Регистратор

Формирую, действительно с остатками все ОК в любом периоде,но...
Задача стоит так.
Есть два регистра накопления ОстаткиНоменклатурыЯчейки и ОстаткиНоменклатурыЯчейкиОжидание с одинаковыми Измерениями Номенклатура и Ресурсом Остаток. В итоговой таблице нужно выводить различные арифметические комбинации Остатков, Приходов и Расходов по этим регистрам. Соответсвтенно составляю текст запроса.

ВЫБРАТЬ
Остатки.Номенклатура.Код,
Номенклатура КАК Номенклатура,
Регистратор КАК Регистратор,
0 КАК НачОст,
0 КАК Приход,
0 КАК Расход,
0 КАК КонОст,
Остатки.ОстатокМинусНачальныйОстаток КАК НачОстОжидание,
Остатки.ОстатокМинусПриход как ПриходОжидание,
Остатки.ОстатокМинусРасход как РасходОжидание,
Остатки.ОстатокМинусКонечныйОстаток как КонОстОжидание,
Остатки.Регистратор.Дата
ИЗ
РегистрНакопления.ОстаткиНоменклатурыЯчейкиОжидание.ОстаткиИОбороты(&ДатаНач,&ДатаКон,Регистратор) КАК Остатки
ОБЪЕДИНИТЬ
ВЫБРАТЬ
Остатки.Номенклатура.Код,
Номенклатура КАК Номенклатура,
Регистратор КАК Регистратор,
Остатки.ОстатокМинусНачальныйОстаток КАК НачОст,
Остатки.ОстатокМинусПриход как Приход,
Остатки.ОстатокМинусРасход как Расход,
Остатки.ОстатокМинусКонечныйОстаток как КонОст,
0 КАК НачОстОжидание,
0 КАК ПриходОжидание,
0 КАК РасходОжидание,
0 КАК КонОстОжидание,
Остатки.Регистратор.Дата
ИЗ
РегистрНакопления.ОстаткиНоменклатурыЯчейки.ОстаткиИОбороты(&ДатаНач,&ДатаКон,Регистратор) КАК Остатки
ГДЕ Остатки.Номенклатура В Иерархии(&Номенклатура)
УПОРЯДОЧИТЬ ПО Номенклатура.Код ,Остатки.Регистратор.Дата
ИТОГИ
Сумма(НачОст),
Сумма(Приход),
Сумма(Расход),
Сумма(КонОст),
Сумма(НачОстОжидание),
Сумма(ПриходОжидание),
Сумма(ПриходОжидание),
Сумма(КонОстОжидание)
ПО
Общие,
Номенклатура Иерархия,
Регистратор

Если в периоде нет движений по какому -либо регистру, то выводит В итогах по номенклатуре НачОст=0, есть движения есть, то все ОК. Почему так? Я так понимаю, что Итоги как раз должны вставлять в итоговую таблицу на уровне номенклатуры сумму, указанную в предложении Итоги в запросе. Или я не прав?
Результаты запроса смотрю в консоле запросов от 1С с выводом в дерево.
3 имхо
 
19.10.04
10:34
итоги они в строке итогов, а в детальных строках детальные записи
4 blin
 
19.10.04
10:37
(3) Так я и говорю про строку итогов. В том-то и дело, что в детальных записях НачОст<>0, а в итоговой строке 0. Ну как такое может быть?