В старом отчете Остатки (билдеровском) заполнялось 3 таблицы поэтапно - сначала ttremains (процедурой Supermag.Remains.Calс), потом ttostatki1 и ttostatki2 (для посл. приходов и для цен - учетных и/или по приходам) - т.е. расчитывались цены последних приходов и цены учетные.
В новом варианте отчета в процедуру, судя по всему, включили все три этапа - т.е. заполняется таблица ttostatki (вместо заполнения ttremains или выбора smgoods), далее - ttostatki1 и ttostatki2.
Несколько плюсов, в том числе и то, что остаки на дату и остатки текущие - это один и тот же отчет, а не два, как было раньше.
Но если использовать готовую функцию в своих отчетах - то Supermag.Remains.Calс остается очень удобным инструментом, т.к., в зависимости от входных парметров, позволяет указывать статус документов, используемых в расчетах, пополнять таблицу (т.е. записать остатки на 2 разные даты, например) и т.п.
На выходе только одна таблица заполнена - ttremains.
Тут нужно помнить, что перед запуском любой из процедур следует корректно поработать с sql-фильтром - определить перечень МХ и карточек товара, для которых остатки будут считаться.
Процедуры
Supermag.RepTools.LoadLoc и Supermag.RepTools.LoadClassMatrix,
которые выполняются перед запуском основной процедуры расчета,
именно это и делают. Т.е. они заполняют таблицы ttidgroup и ttloclist,
следуя заданным параметрам.
Ну и
supermag.RepTools.LoadSQLFilter формирует данные о том, откуда брать информацию -
из временных таблиц или из основных.
Я иногда это вручную делаю:
-- чистим все фильтры
supermag.sql_filter.clear_allfilters;
-- карточки товаров
IF <если выборка из ttidgroup>
THEN
supermag.sql_filter.set_articlefromsql (
'select article from supermag.ttidgroup');
ELSE
supermag.sql_filter.set_articlefromsql (
'select article from supermag.smcard c');
END IF;
-- места хранения
IF <если выборка из ttloclist>
THEN
supermag.sql_filter.set_locfromsql ('select id from TTLocList');
ELSE
supermag.sql_filter.set_locfromsql ('select id from smstorelocations where ... ');
END IF;
Таким образом, подготовлена информация для расчета остатков - по каким карточкам и по каким МХ