0
serzh44
06.12.11
✎
13:52
|
Поискал по форуму, но ничего не нашел, т.к. кратко и емко описать то, что нужно получить в результате.
Запрос строится по вирт. таблице остатков и оборотов. Но есть особенность этого регистра в конфигурации: движения прихода и расхода могут делаться со знаком минус. Мне нужно получить модифицированные обороты прихода и расхода: если движения расхода меньше 0, то считать его приходом и брать со знаком минус, если движение прихода меньше нуля, то считать его расходом и брать со знаком минус. В регистре несколько измерений, поэтому при различных группировках, получаем разные обороты.
Например, есть такие движения (A, B, C - измерения):
1) + А1 В1 С1 1000
2) - А1 B1 С2 -2000
3) + A1 B1 C3 1000
4) - A1 B1 C4 1000
Если вывести обороты только по измерению A, получим:
Приход: 1 и 3 движение дают в сумме 2000 + сумма 1 и 4 движений -1000 с противоположным знаком = 2000 + 1000 = 3000
Если вывести все группировки, получим:
Приход: 1000 (движ. 1) + 1000 (движ. 3) + 2000 (движ. 2 с противоположным знаком) = 4000
Т.е. при первом расчете не учитывается детализация до измерения C, а должна учитываться, если даже оно выключено из группировки. Вот как это сделать не могу понять. СКД его сама видимо выключает из запроса и обороты получаются без его учета.
|
|
2
serzh44
14.12.11
✎
14:56
|
Спасибо, Получилось. Но вообще мне нужно ещё и остатки вывести. А если строить по физической таблице, то можно ли СКД заставить правильно выводить остатки по группировкам? Таблица остатков в запросе соединяется полным соединением с таблицей оборотов по физической таблице. Таблица оборотов содержит регистратора и период. Пробовал соединять двумя способами:
1) Остатки брал тоже по регистраторам и периодам из виртуальной таблицы остатков и оборотов.
2) То же самое, но без регистраторов и периодов.
И в том и в другом случае получается ерунда. Суммы выводятся совсем не те.
|
|