[ОТВЕТИТЬ]
Опции темы
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;
Таким образом, подготовлена информация для расчета остатков - по каким карточкам и по каким МХ
 
"Спасибо" svtl от:
 


Опции темы



Часовой пояс GMT +3, время: 21:44.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.