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

Получение остатка в закупочных ценах скриптом. SVARemainsCP : Супермаг Плюс (Супермаг 2000)

17.04.2024 17:29


02.04.2017 23:41
svtl
 
мне кажется, что после выполнения RepTools.LoadClass
в supermag.Rep_Ostatki (внутри) запускается RepTools.LOADSQLFILTER
который прописывает фильтры на основании ранее запущенных LoadClass (а так же LoadLoc)

И тогда для первого случая - у вас все карточки - и получаем остатки по ВСЕМ товарам.
для второго случая - только по товарам из группы 23.1.
т.е.все логично

если использовать штатный вариант - то произв. список артикулов надо занести в ассортимент и
LoadClass запускать дял этого ассортимента

Ну или использовать старый вариант - REMAINS.CALC
тогда перед ее запуском можно вручную сформировать фильтр по артикулам по какому-то критерию -
supermag.SQL_Filter.Set_ArticleFromSQL('select article from supermag.smcard where .....');

Я так делала
03.04.2017 08:06
Starter
 
Цитата:
svtl мне кажется, что после выполнения RepTools.LoadClass
в supermag.Rep_Ostatki (внутри) запускается RepTools.LOADSQLFILTER
который прописывает фильтры на основании ранее запущенных LoadClass (а так же LoadLoc)
Так и есть.


Цитата:
svtl если использовать штатный вариант - то произв. список артикулов надо занести в ассортимент и
LoadClass запускать дял этого ассортимента
Т.е. завести временный ассортимент, потом его чистить, наполнять перед запуском ? И всё скриптами ?


Цитата:
svtl Ну или использовать старый вариант - REMAINS.CALC
Тогда нет цен последнего прихода, а они как раз и нужны. Какая функция в старых версиях отвечала за наполнение ценами последнего прихода ? Еще до появления Rep_ostatki ?
05.10.2023 09:02
olobez
 
Цитата:
svtl ну так чистим фильтры вручную, потом прописываем нужные и запускаем процедуру.
supermag.SQL_Filter.Clear_AllFilters; - почистили

supermag.RepTools.LoadClass(:P_Group_All, :P_BGroup, :P_Group_Tree); -- для артикулов
supermag.RepTools.LoadLoc(:P_Stored_All,:P_Stored_Name,:P_Partner,null,:P_DATE); --для МХ
здесь нужные временные аблицы заполнятся.

и потом в процедуре выполнится
REPTOOLS.LOADSQLFILTER;
Подскажите, пожалуйста, я хочу получить остатки на дату с номером документа прихода.
Выполняю:

Чищу все фильтры, установленные ранее (фильтры действуют в рамках одной сессии?)
supermag.SQL_Filter.Clear_AllFilters;

Нужно установить определенные места хранения, добавив фильтр:
supermag.RepTools.LoadLoc(:P_Stored_All,:P_Stored_Name,:P_Partner,:P_RgnId,:P_FirstDate);
И вот здесь у меня возникает проблема: в каком виде передаются параметры.
Если я нашла правильно:
:P_Stored_All - ставлю 1, т.к. нужно выбрать одно или несколько мест хранений
:P_Stored_Name - строка с ID нужных мест хранения через запятую, например, '2,3,17,28' - не уверена в правильности
:P_Partner - -2, чтобы учитывались все партнеры
:P_RgnId - ?
:P_FirstDate - ?

Вызов процедуры в таком виде вызывает ошибку:
supermag.RepTools.LoadLoc(1, '2,3,17,28', -2, 0, sysdate)

После заполнения фильтра нужно вызывать supermag.RepTools.LoadSQLFilter чтобы этот фильтр применился?

Дальше я планирую выполнить процедуру и уже с таблиц, которые она заполнит, забрать информацию:
supermag.Rep_Ostatki('01.03.2023',0,0,0,2,0,0,0,0);
Часовой пояс GMT +3, время: 17:29.

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