Вообще эта функция была описана
https://olegon.ru/showpost.php?p=34774&postcount=8
и фильтр по классификатору тут
https://olegon.ru/showpost.php?p=118205&postcount=13
В целом, немного подробнее
Код:
PROCEDURE Remains.Calc( I_DATE IN DATE, I_ISADDINGDATA IN BOOLEAN := FALSE, I_DOCSTATEMODE IN NUMBER := 23,
I_CALCMODE IN NUMBER := 0, I_ISALLREMAINS IN BOOLEAN := FALSE )
I_DATE - дата, на конец которой идет расчет
I_ISADDINGDATA - будет ли расчет добавляться к уже существующему.
Иначе предварительно чистится таблица TTRemains.
I_DOCSTATEMODE:
0 - DocState = 0
2 - DocState = 2
23 - DocState >= 2
I_CALCMODE:
0 - автоматически выбрать режим расчета (1/2/3)
1 - считать по всем документам, от закрытого периода до I_DATE
2 - считать от текущих остатков из smgoods -приходы+расходы с датой больше I_DATE
3 - считать от заранее рассчитанных остатков (задание в административном модуле)
I_ISALLREMAINS - все остатки, в том числе и нулевые.
-- для ограниченного набора артикулов предварительно вызвать
-- фильтр по классификатору
supermag.RepTools.LoadClassMatrix(:P_MatrixLoc, :P_Group_All, :P_BGroup, :P_Group_Tree);
-- фильтр по МХ
supermag.RepTools.LoadLoc(:P_Stored_All, :P_Stored_Name, :P_Partner, :P_RgnId, :P_FirstDate);
-- загрузить назначенные фильтры
supermag.RepTools.LoadSQLFilter;
-- (параметры из описания подключения пользовательских отчетов)
-- в SUPERMAG.TTREMAINS артикулы с остатками на конец 13/09/2008
Supermag.Remains.Calc ('13/09/2008', FALSE, 23, 0, FALSE);
-- Для производства
-- в SUPERMAG.TTREMAINSPROD артикулы с остатками на конец 13/09/2008
Supermag.Remains.Calcprod ('13/09/2008', FALSE, 23, 0, FALSE);
Там еще упоминается FixRemIncome.Calc --> ttRemIncome
Код:
PROCEDURE FixRemIncome.Calc( I_DATE IN DATE, I_REUSE IN BOOLEAN := TRUE, I_ISADDINGDATA IN BOOLEAN := FALSE, I_ISALLREMAINS IN BOOLEAN := FALSE )
но чем оно отличается от Remains.Calc - не разбирался.