Спасибо!
Нет быстрой обработи движений пока что (может надо будет сделать), журнал, конечно, пакостит
Сравнил на январе - проигрывает фокс, хотя вроде бы оптимизация есть (примерно в 1,3 раза, иногда больше)
Вот текст запроса из отладки:
SELECT
Рег.Номенклатура as [Товар_1c_type_Справочник_1c_dot_Номенклатура]
,Рег.Склад as [Склад_1c_type_Справочник_1c_dot_Склады]
,SUM(Рег.НачОст) НачОст
,SUM(Рег.Приход) Приход
,SUM(Рег.Расход) Расход
,SUM(Рег.НачОст+Рег.Приход-Рег.Расход) КонОст
FROM
(
SELECT
Итоги.sp408 Номенклатура
,Итоги.sp418 Склад
,Итоги.sp411 НачОст
,0 Приход
,0 Расход
FROM
rg405 Итоги
WHERE
DTOS(Итоги.period)+Итоги.sp408
LIKE (DTOS({d '2011-12-01'})+'_________')
UNION ALL
SELECT
Движения.sp408
,Движения.sp418
,Движения.sp411 * (1 - Движения.debkred * 2)
,0
,0
FROM
ra405 Движения
INNER Join 1SJOURN Жур ON Жур.iddoc = Движения.iddoc
WHERE
DTOS(Жур.date)+Жур.time+Жур.iddoc BETWEEN
DTOS({d '2012-01-01'})+' '+' '
And DTOS({d '2011-12-31'})+'ZZZZZZ'+'ZZZZZZZZZ'
UNION ALL
SELECT
Оборот.sp408
,Оборот.sp418
,0
,Оборот.sp411*(1-Оборот.Debkred)
,Оборот.sp411*Оборот.Debkred
FROM
ra405 Оборот
INNER Join 1SJOURN Жур ON Жур.iddoc = Оборот.iddoc
WHERE
DTOS(Жур.date)+Жур.time+Жур.iddoc BETWEEN
DTOS({d '2012-01-01'})+' '+' '
And DTOS({d '2012-01-31'})+'ZZZZZZ'+'ZZZZZZZZZ'
) Рег
Group by Рег.Номенклатура,Рег.Склад