Страница 1 из 2

Объектный фейс L_Sklad::Makeorder

Добавлено: 15 июн 2010, 18:16
timaskraft
Возникла необходимость создавать ордера, хочу использовать объектный фейс MakeOrder

В Galdoc нашел описание объектных функций, но некоторые параметры функций остаются загадкой :x .
может кто поделится исходничком, или знает их значения?

нужно пояснение параметров - выделенных бордовым цветом
Формирование приходного ордера
Function MakePrihOrder (pKatSopr : Comp; showMess : Boolean; var firstRozn : Boolean; var prRozn : Boolean; wSkPr : Word; wMode : Word; wParam : Word) : Boolean;

pKatSopr : nrec Katsopr
showMess : выводить ли сообщения
firstRozn : ????? (подозреваю для розницы)
prRozn : ????? ---/-----

wSkPr : Склад/ производство (0/1)
wMode : ?????
wParam : ????

и тоже самое непонятно по формированию расходного ордера
Function MakeRashOrder (pKatSopr : Comp; dForm : Date; Counts : Integer; doDoocen : Boolean; nDescr : Boolean; frmHandle : LongInt; var wMsgForm : Word; wSkPr : Word; wMode : Word; wParam : Word) : Boolean;

Re: Объектный фейс L_Sklad::Makeorder

Добавлено: 15 июн 2010, 18:41
edward_K
вот это может поможет
oMakeOrder.MakeRashOrd(katsopr.nrec,false,katsopr.dsopr,0,0,0,errF.handle)
errf - это форма
Form errF ('errPeres.out', 'errr') with novisual;
wMsgForm - видимо возвращает признак ошибки.

Re: Объектный фейс L_Sklad::Makeorder

Добавлено: 16 июн 2010, 13:01
timaskraft
edward_K писал(а):вот это может поможет
oMakeOrder.MakeRashOrd(katsopr.nrec,false,katsopr.dsopr,0,0,0,errF.handle)
errf - это форма
Form errF ('errPeres.out', 'errr') with novisual;
wMsgForm - видимо возвращает признак ошибки.
Попробую, спасибо.
p.s. решили проблему другим способом - написали алгоритм, который создает ордера на Java скрипте, и вызываем его через Runinterface.

Re: Объектный фейс L_Sklad::Makeorder

Добавлено: 03 июн 2011, 09:54
n0where

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

Function MakeRashOrd (pKatSopr: comp; NeedMsg: boolean; pDateOrd: date; wSkPr, wMode, wParam: word; frmProt: longint): Boolean;
pKatSopr - nRec KATSOPR
NeedMsg - true - выводит message иначе через errrash
pDateOrd - дата ордера
wSkPr
Устанавливается в SklOrder.SP // для склада 0, для производства 1
wMode
Пакетный режим 1, обычный - 0
wParam
1бит аналог #define smetakoladd
2бит аналог #define _USE_SERIAL_
3бит аналог #define g_l_pr_vpp
4бит аналог #define _BoxNeedAuto
5бит аналог #define _prihod_
6бит аналог #define __PAKET_VIP__
frmProt
можно 0

Re: Объектный фейс L_Sklad::Makeorder

Добавлено: 03 июн 2011, 09:57
n0where
edward_K писал(а):wMsgForm - видимо возвращает признак ошибки.
1 бит = 1 - выводить все масаги в форму
2 бит возвращаяет 1, если были ошибки, но не критичные.

Re: Объектный фейс L_Sklad::Makeorder

Добавлено: 08 ноя 2011, 12:40
Dmitry_Sol
По поводу makeprihorder. Там для получения даты оприходования существует event функция omakeorder.canMakeOrder

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

function canmakeorder:date;
 {
  canmakeorder:=katsopr.dsopr;
 }
......

 BindEvent(CanMakeOrder, oMakeOrder.CanMakeOrder);
 oMakeOrder.MakePrihOrder (nrecKatSopr,false,false,false,0,1,32);
 UnBindEvent(CanMakeOrder, oMakeOrder.CanMakeOrder);

Таким образом мы избавляемся от запроса даты оприходования
Чтобы избавиться от запроса склада, необходимо заполнить таблицу soprordb

Re: Объектный фейс L_Sklad::Makeorder

Добавлено: 25 июл 2019, 17:35
Руслан
Можно ли функцией MakePrihOrder оприходовать накладную на приход ГП в модуле "Управление производственной логистикой". Какие тогда параметры указывать? Пытаюсь таким образом:

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

...
 Function CanMakeOrder : date;
{
CanMakeOrder:=dat_per2;
}
...
BindEvent(CanMakeOrder,Obj.CanMakeOrder);
Obj.MakePrihOrder(vKatsoprCreate.katsopr.nrec,false,true,true,0,1,32+128);
UnBindEvent(CanMakeOrder, Obj.CanMakeOrder);  
...

Re: Объектный фейс L_Sklad::Makeorder

Добавлено: 25 июл 2019, 18:26
Den
Насколько помню там CalcOrd.vih можно заюзать
Делал так когда то
1. CalcOrd.Initialization()
2. Вставляешь в InputKatSopr запись , указывая в cSopr нужный katsopr.nrec
2. Дергаешь CalcOrd.RunInter()

Но в свое время была "фишка", что перед этим всем нужно было проверить наличие на складе отдельно нужных разрезов.
А то в минус могло просто списать и все (т.е. RunInter() не контролировал никак наличие)

Re: Объектный фейс L_Sklad::Makeorder

Добавлено: 25 июл 2019, 18:40
Руслан
Это ведь накладная на приход, а не списание, в минус никак не уйти. Если можно пример вызова, пожалуйста.

Re: Объектный фейс L_Sklad::Makeorder

Добавлено: 26 июл 2019, 11:31
Den

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

#include CalcOrd.vih
...
var soCalcOrd: oCalcOrd;
...
if (NullVIPRef(soCalcOrd))
   LoadVIPRef(soCalcOrd,'M_UP::CalcOrd');
soCalcOrd.Initialization();
mtClear(#InputKatSopr,fmNormal);
ClearBuffer(#InputKatSopr);
InputKatSopr.cSopr := KatSopr.nrec;
insert current InputKatSopr;
soCalcOrd.RunInter();
как то так делал, насколько помню
По контролю наличия может погорячился я. Но помоему у заказчика сырье как то контролировалось при списании . Деталей не помню. Уж лет 5 прошло

Re: Объектный фейс L_Sklad::Makeorder

Добавлено: 26 июл 2019, 17:14
Руслан
Ругается на таблицу
Ошибка: Нет такой функции, поля или метода : #INPUTKATSOPR D:\Viper\SRC\MakePrihodGpOrder.vip(стр. 83, поз. 22)
Пробовал добавлять в интерфейс, та же ошибка.

Re: Объектный фейс L_Sklad::Makeorder

Добавлено: 26 июл 2019, 18:52
edward_K
Это какая то времянка. Подправьте под себя

Re: Объектный фейс L_Sklad::Makeorder

Добавлено: 26 июл 2019, 19:33
Руслан
Да. Это table struct и она в CalcOrd.vih описана. Подскажите, пожалуйста, каким образом подправить?

Re: Объектный фейс L_Sklad::Makeorder

Добавлено: 29 июл 2019, 10:16
Руслан
Заметил ещё такую особенность, что по накладной, которую оприходовал и потом отменил ордера, по ней MakePrihOrder отрабатывает. Т.е. функция отрабатывает. Видимо какие-то поля не заполняю при создании накладной.

Re: Объектный фейс L_Sklad::Makeorder

Добавлено: 29 июл 2019, 12:34
Den
Руслан писал(а):Ругается на таблицу
Ошибка: Нет такой функции, поля или метода : #INPUTKATSOPR D:\Viper\SRC\MakePrihodGpOrder.vip(стр. 83, поз. 22)
Пробовал добавлять в интерфейс, та же ошибка.
Во вью нужно добавить InputKatSopr и все должно собраться без ошибок будет.