Форум OlegON > Программы и оборудование для автоматизации торговли > Системы автоматизации торговли > Супермаг Плюс (Супермаг 2000)

Откуда берет данные отчет супермага "остатки" ? : Супермаг Плюс (Супермаг 2000)

26.04.2024 22:21


05.01.2015 14:41
svtl
 
Цитата:
Starter От версии СМ, кстати, тоже зависит работоспособность.
Скорее, не работоспообность, а способ выбора процедуры, расчитывающей эти остатки.
05.01.2015 15:29
svtl
 
В старом отчете Остатки (билдеровском) заполнялось 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;
Таким образом, подготовлена информация для расчета остатков - по каким карточкам и по каким МХ
Часовой пояс GMT +3, время: 22:21.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.