edward_K писал(а):310 это вроде нет записи по условию поиска
если писать if getfirst ??? where (( ???? ))=0 то ошибки не будет. Видимо Stepdoc вы не создали или не так ищите. код в студию.
basedocnrec:comp
StepBasenrec:comp
Create view DO1
from Basedoc, Stepdoc
where
((
basedocnrec == basedoc.nrec
));
Create view DO2
from Basedoc, Spstep
;
Create view DO1_sp
from spstep
where
((
spnrec == spstep.nrec
));
Create view DO2_sp
from Basedoc, Stepdoc
where
((
basedocnrec == basedoc.nrec and
StepBasenrec == stepdoc.nrec
))
;
cmbut1:
{
if (DO1.getfirst Basedoc = tsOk)
{
MND := DO1.basedoc.DESCR;
Nomer := DO1.basedoc.NODOC;
Ddoc := DO1.basedoc.ddoc;
HEADORG := DO1.basedoc.Corg;
Bank := DO1.basedoc.Cbank;
GRPOL := DO1.basedoc.Cgrpol;
};
if(DO1_sp.getfirst Spstep = tsOk)
{
NomPP := DO1_sp.spstep.NPP;
Name := DO1_sp.spstep.PRMC;
Barkod := DO1_sp.spstep.CMCUSL;
OtpEd := DO1_sp.spstep.COTPED;
Kolvo := DO1_sp.spstep.KOL;
cena := DO1_sp.spstep.Price;
Summa := DO1_sp.spstep.Summa
NDS := DO1_sp.spstep.NDS;
};
if (DO2.getfirst Basedoc = tsOk and DO2.getfirst Spstep =tsOk)
{
DO2.clearbuffer(DO2.tnbasedoc);
DO2.basedoc.DESCR :=MND;
DO2.basedoc.nodoc :=Nomer;
DO2.basedoc.Ddoc :=Ddoc;
DO2.basedoc.Corg := HEADORG;
DO2.basedoc.CBank := Bank;
DO2.basedoc.CGRPOL := GRPOL;
DO2.basedoc.viddoc := '211';
DO2.basedoc.specyes := '0';
DO2.basedoc.status := '2';
DO2.basedoc.cnote := 0000000000000008h;
DO2.basedoc.VHODNAL := '2';
DO2.basedoc.DIRECT := '1';
DO2.basedoc.TIPMONEY := '1';
DO2.basedoc.PRIOR := '99';
DO2.basedoc.VHSKID := '1';
DO2.basedoc.TARAVOZ := '2';
DO2.basedoc.PROCOPL := '100';
DO2.insert current basedoc;
j:= j + 1;
};
StepBasenrec := DO2.basedoc.nrec;
if(DO2_sp.getfirst Stepdoc = tsOk)
{
DO2_sp.clearbuffer(DO2_sp.tnstepdoc);
DO2_sp.stepdoc.nrec := StepBasenrec;
DO2_sp.insert current StepDoc;
j:= j + 1;
message(StepBasenrec);
};
....
вот всё что с этим связано