Пересчет цен

Приемы и подходы, обмен опытом

Модераторы: Screw, larin

Ответить
АлександерK
заказчик
Сообщения: 89
Зарегистрирован: Ср, 19/09/2007 08:48
Имя Фамилия: Александр Киселев
Откуда: Красный Октябрь ОАО ДОК
Контактная информация:

Пересчет цен

Сообщение АлександерK »

У меня 2 вопроса касаемо пересчета цен:

1.Складской учет-Операции-Пересчет цен в расходных ордерах и Управление производственной логистикой-Операции-Пересчет цен в расходных ордерах запускают один и тот же интерфейс или разные? Если разные, то в чем отличие работы?

2.Есть потребность запускать процедуру пересчета цен в расходных ордерах раза 2 в месяц по расписанию планировщика. Хотим создать свой интерфейс, в котором будет вызываться стандартный интерфейс пересчета цен с параметрами (они четко определены), а собственный будем запускать через параметр Galaxy.NowRun.

Подскажите пожалуйста имя стандартного интерфейса и его параметры, желательно еще и описание способа задания параметров (через временные таблицы, маркеры или как-то еще) :-)

Заранее большое спасибо.
den
заказчик
Сообщения: 117
Зарегистрирован: Пт, 26/10/2007 14:16
Имя Фамилия: Денис Кучин
Откуда: Геомостпроект НПО

Сообщение den »

Часть ответотов Вы найдете наверное в L_Sklad.chm
АлександерK
заказчик
Сообщения: 89
Зарегистрирован: Ср, 19/09/2007 08:48
Имя Фамилия: Александр Киселев
Откуда: Красный Октябрь ОАО ДОК
Контактная информация:

Сообщение АлександерK »

Нашел вот что:
Interface L_SKLAD::RecalcSp
Пересчет цен в расходных ордерах (склад, производство)

Параметры
SkPr : Word
Окна
window wPar
Параметры пересчета в ордерах
Информация
Версия : Компонент L_SKLAD 8.10.69.0
Window L_SKLAD::RecalcSp.wPar
Параметры пересчета в ордерах

Структура видимых элементов
Screen scr1
Label L_SCR1_Пересчитать_цены_с: 'Пересчитать цены с:'
PanelInputLine i_SCR1_BEGDATE
PanelCheckBox cb_SCR1_NEEDPICKMC
ClusterItem ci_SCR1_NEEDPICKMC_выбрать_МЦ_для_пересчета 'выбрать МЦ для пересчета'
PanelInputLine i_SCR1_STPICKEDMC
Label L_SCR1_В_случае_невозможности_пересчета: 'В случае невозможности пересчета:'
PanelInputLine i_SCR1_VIDOTKAT
PanelCheckBox cb_SCR1_PRINTONLYIZM
ClusterItem ci_SCR1_PRINTONLYIZM_печатать_только_измененные_ордера 'печатать только измененные ордера'
PanelCheckBox cb_SCR1_WNEDRECALCICN
ClusterItem ci_SCR1_WNEDRECALCICN_Пересчет_цен_в_актах_ИЦН 'Пересчет цен в актах ИЦН'
PanelCheckBox cb_SCR1_USETRANSACTION
ClusterItem ci_SCR1_USETRANSACTION_восстанавливать_данные_при_прерывании_пересчета ' восстанавливать данные при прерывании пересчета'
Button b_SCR1_Продолжить 'Продолжить' cmYes
Button b_SCR1_Отмена 'Отмена' cmCancel
Interface L_SKLAD::RecalcSpAuto
Пересчет средних цен в расходных ордерах без вывода каких либо окон, сообщений
Interface L_SKLAD::RecalcSrPrPeriod
Пересчет цен в расходных ордерах для методики Средние цены за период

Параметры
SkPr : Word
retKOD : Word
Окна
window wPar
window wShowPer
Что породило еще кучу вопросов:
1)Как передать параметры окну wPar интерфейса RecalcSp и какие значения нужно передать интерфейсу, т.е. что соответствует Складу, а что Производству? :roll:
2)С какими параметрами запускается RecalcSpAuto ?
3)Как интерфейсу RecalcSrPrPeriod передать необходимые параметры?

Уважаемые разработчики, ну подскажите кто-нибудь ответ?
den писал(а):Часть ответотов Вы найдете наверное в L_Sklad.chm
АлександерK
заказчик
Сообщения: 89
Зарегистрирован: Ср, 19/09/2007 08:48
Имя Фамилия: Александр Киселев
Откуда: Красный Октябрь ОАО ДОК
Контактная информация:

Сообщение АлександерK »

Аууу... Уважаемые разработчикиииии?? :conf:
gurinovich
топ-софт
Сообщения: 4
Зарегистрирован: Пн, 10/09/2007 13:55
Имя Фамилия: Инна Гуринович
Откуда: ТопСофт
Контактная информация:

Сообщение gurinovich »

1. Параметр SkPr при вызове RecalcSp и отвечает за тип остатков: 0 - склад, 1 - производство.

2. Интерфейс RecalcSpAuto запускает RunInterface(RecalcSp, 0), т.е. пересчет складских остатков без каких-либо сообщений.

3. В RecalcSrPrPeriod есть тот же параметр SkPr
АлександерK
заказчик
Сообщения: 89
Зарегистрирован: Ср, 19/09/2007 08:48
Имя Фамилия: Александр Киселев
Откуда: Красный Октябрь ОАО ДОК
Контактная информация:

Сообщение АлександерK »

Инна, а как передать параметры окну wPar Интерфейса RecalcSp? (период, список МЦ для пересчета, прочие условия) ?

За остальные пояснения спасибо большое. :)
gurinovich писал(а):1. Параметр SkPr при вызове RecalcSp и отвечает за тип остатков: 0 - склад, 1 - производство.

2. Интерфейс RecalcSpAuto запускает RunInterface(RecalcSp, 0), т.е. пересчет складских остатков без каких-либо сообщений.

3. В RecalcSrPrPeriod есть тот же параметр SkPr
gurinovich
топ-софт
Сообщения: 4
Зарегистрирован: Пн, 10/09/2007 13:55
Имя Фамилия: Инна Гуринович
Откуда: ТопСофт
Контактная информация:

Сообщение gurinovich »

Добрый день!
Пример запуска интерфейса и передачу параметров в окно, есть в RecalcSpAuto.vip
Ниже приводится код указанного интерфейса и пояснения:

Код: Выделить всё

// Назначение    : Пересчет средних цен в расходных ордерах без вывода каких либо окон, сообщений
// Параметры     : нет

#include oRecalcPar.vih

#doc
Пересчет средних цен в расходных ордерах без вывода каких либо окон, сообщений
#end

Interface RecalcSpAuto '' doaccept,cyan;
  show at(,50,,60);
Create View
var
  objRecPar : oiRecalcPar;
  frmHRecSP , frmHRecSPErr : longint;
  dtBeg : date;
;
;

form frmRecalcSP('RECALCSP.OUT','RECALCSP') with novisual;
form frmRecSpErr('RECSPERR.OUT','RECSPERR') with novisual;

HandleEvent

cmInit:
  {
    if (NullVipRef(objRecPar) )
      GetVipRef( objRecPar, 'iRecalcPar');


    frmHRecSP := frmRecalcSP.handle;
    frmHRecSPErr := frmRecSpErr.handle;
    dtBeg := date(1,month(cur_date), year(cur_date));

    objRecPar.SetExec(word(1), frmHRecSP, frmHRecSPErr, dtBeg);

    RunInterface(RecalcSp, 0);


    if (not NullVipRef(objRecPar) )
      FreeVipInterface(objRecPar);

    Abort;
    Exit;
  }

end; // HandleEvent
end. // Interface
, где:
  • dtBeg - установка даты, начиная с которой будут пересчитываться цены в ордерах;
    SetExec - передача параметров в интерфейс.
Некоторые параметры окна при таком запуске хранятся в oiRecalcPar по умолчанию:
  • vidOtkat := word(2); - в случае невозможности пересчета - исключить МЦ из пересчета
    printOnlyIzm := word(1); - печатать только измененные ордера
    useTransaction := word(1); - восстанавливать данные при прерывании пересчета
Следует заметить, что одновременно можно запустить только один экземпляр данного интерфейса, в противном случае будут конфликты с параметрами и т.д.
АлександерK
заказчик
Сообщения: 89
Зарегистрирован: Ср, 19/09/2007 08:48
Имя Фамилия: Александр Киселев
Откуда: Красный Октябрь ОАО ДОК
Контактная информация:

Сообщение АлександерK »

Спасибо большое за пример, будем пробовать
Ответить