рд╣рдо рдЪрдпрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ

рдЫрд╡рд┐

рд╡рд┐рднрд┐рдиреНрди рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЗрдирдкреБрдЯ рдХрд╛ рдХрд╛рд░реНрдп рдЕрдХреНрд╕рд░ рдЙрдарддрд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░, рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдПрдХ рд╢реАрд░реНрд╖рдХ рдФрд░ рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд╣реЛрддреА рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХрд┐рд╕реА рд╡рд╕реНрддреБ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрддреНрдкрд╛рдж) рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░, рдПрдХ рдирд┐рдпрдорд┐рдд рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝ рдФрд░ рд╣рдЯрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЕрдкрдиреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдРрд╕реА рдпреЛрдЬрдирд╛ рд╣рдореЗрд╢рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЙрддреНрдкрд╛рджреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдПред

рдХрд╛рд░реНрдп


рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджрд░реНрдЬ рдХрд░рддреЗ рд╕рдордп, рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕реЗрдЯ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЗрд╕рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдРрд╕реА рд╡рд╕реНрддреБрдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рджрд┐рдЦрд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдЬрд▓реНрджреА рд╕реЗ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ (рдФрд░ рдмрд╛рд╣рд░ рдХрд░рдиреЗ) рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдХреЙрд▓рдо рдореЗрдВ, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдЗрд╕реЗ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкрд░ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рджрд┐рдЦрд╛рдирд╛ рднреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдФрд░ рдЕрдВрдд рдореЗрдВ, рд╡рд╕реНрддреБ рдХреЗ рд╕рд╛рде, рдЕрдХреНрд╕рд░ рдЗрд╕рдХреА рдорд╛рддреНрд░рд╛ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдЖрдЗрдП рддреАрди рдкреНрд░рдХрд╛рд░ рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬреЛ рдЕрдХреНрд╕рд░ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ:

  1. рдХреНрд░рдп рдЖрджреЗрд╢ ред рдРрд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдЖрдкреВрд░реНрддрд┐рдХрд░реНрддрд╛ рд╕реЗ рдСрд░реНрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╕рднреА рд╕рд╛рдорд╛рдиреЛрдВ рдХреА рд╕реВрдЪреА рджрд┐рдЦрд╛рдирд╛ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реИред рдХреЙрд▓рдо рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд╕рдВрддреБрд▓рди, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЕрдВрддрд░рд╛рд▓ рдХреЗ рд▓рд┐рдП рдмрд┐рдХреНрд░реА, рдЦрд░реАрдж рдФрд░ рдмрд┐рдХреНрд░реА рдХреЗ рд▓рд┐рдП рдСрд░реНрдбрд░ рдХреА рдЧрдИ рдорд╛рддреНрд░рд╛ рдХреЛ рджрд┐рдЦрд╛рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред
  2. рдмрд┐рдХреНрд░реА рдЖрджреЗрд╢ ред рдпрд╣рд╛рдВ, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░, рдЙрди рд╕рд╛рдорд╛рдиреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдЬреЛ рдЪрдпрдирд┐рдд рдЧреЛрджрд╛рдо рдХреЗ рд╕рдВрддреБрд▓рди рдкрд░ рд╣реЛрддреА рд╣реИ рдФрд░ рдЪрдпрдирд┐рдд рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдмрд┐рдХреНрд░реА рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛрддреА рд╣реИред рд╡рд░реНрддрдорд╛рди рдХреАрдорддреЛрдВ рдХреЛ рднреА рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
  3. рд╕рдВрддреБрд▓рди рдореЗрдВ рдмрджрд▓рд╛рд╡ ред рдЗрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░рд╛рд╢рд┐ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рд╡рд┐рд╕рдВрдЧрддрд┐рдпреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд╢реЗрд╖ рд░рд╛рд╢рд┐ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рднреА рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рдЖрдорддреМрд░ рдкрд░ рдЪрдпрди рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрддреБрд▓рди рджрд░реНрдЬ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕реА рд╕рдордп, рдПрдХ рдЙрддреНрдкрд╛рдж рдХреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдФрд░ рд╡рд░реНрддрдорд╛рди рд╕рдВрддреБрд▓рди рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЗ рдмрд░рд╛рдмрд░ рд░рд╛рд╢рд┐ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдирд┐рд░реНрдгрдп


рдЕрдЧрд▓рд╛, рдореИрдВ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХреИрд╕реЗ рдЦреБрд▓реЗ рдФрд░ рдореБрдХреНрдд lsFusion рдордВрдЪ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрд╕ рддрд░реНрдХ рдХреЛ рдЬрд▓реНрджреА рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдП ред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдЪрд▓реЛ рдЦрд░реАрдж рдЖрджреЗрд╢ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рдмрдирд╛рддреЗ рд╣реИрдВред

рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдорд╛рдирдХ CRUD рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдЙрддреНрдкрд╛рдж рдЧрд╛рдЗрдб рдЬреЛрдбрд╝реЗрдВ:
CLASS Product '' ;
name '' = DATA STRING [ 50 ] (Product);

FORM product ''
OBJECTS p = Product PANEL
PROPERTIES (p) name

EDIT Product OBJECT p //
;

FORM products ''
OBJECTS p = Product
PROPERTIES (p) READONLY name
PROPERTIES (p) NEWSESSION NEW , EDIT , DELETE

LIST Product OBJECT p // ,
;

NAVIGATOR {
NEW products;
}

рд╣рдо рдПрдХ рдЖрдкреВрд░реНрддрд┐рдХрд░реНрддрд╛ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рд╕рдВрдкрд╛рджрди рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдо рдЙрди рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рдЪреБрдирдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджреЗрддреЗ рд╣реИрдВ рдЬрд┐рдирдХреЗ рд╕рд╛рде рд╡рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
CLASS Supplier '' ;
name '' = DATA STRING [ 50 ] (Supplier);

in '' = DATA BOOLEAN (Supplier, Product); // TRUE,

FORM supplier ''
OBJECTS s = Supplier PANEL
PROPERTIES (s) name

OBJECTS p = Product //
PROPERTIES in(s, p), name(p) READONLY //

EDIT Supplier OBJECT s
;

FORM suppliers ''
OBJECTS s = Supplier
PROPERTIES (s) READONLY name
PROPERTIES (s) NEWSESSION NEW , EDIT , DELETE

LIST Supplier OBJECT s
;

NAVIGATOR {
NEW suppliers;
}

рдЖрджреЗрд╢ рддрд░реНрдХ рдХреЛ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╕рд╛рде рдШреЛрд╖рд┐рдд рдХрд░реЗрдВ:
CLASS Order '' ;
date '' = DATA DATE (Order);
number '' = DATA INTEGER (Order);

supplier '' = DATA Supplier (Order);
nameSupplier '' (Order o) = name(supplier(o));

CLASS OrderDetail ' ' ;
order '' = DATA Order (OrderDetail) NONULL DELETE ;

рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдЙрддреНрдкрд╛рдж рдФрд░ рдорд╛рддреНрд░рд╛ рдЬреЛрдбрд╝реЗрдВ:
product '' = DATA Product (OrderDetail);
nameProduct '' (OrderDetail d) = name(product(d));

quantity '-' = DATA NUMERIC [ 14 , 3 ] (OrderDetail);

рд╣рдо рдСрд░реНрдбрд░ рдПрдбрд┐рдЯрд┐рдВрдЧ рдлреЙрд░реНрдо рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рд╕реАрдзреЗ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ рдЬреЛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдПред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдСрд░реНрдбрд░ рдХреЛ рд╕реНрд╡рдпрдВ рдФрд░ рдЙрд╕рдХреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЗрд╕рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
FORM order ''
OBJECTS o = Order PANEL
PROPERTIES (o) date, number, nameSupplier

OBJECTS d = OrderDetail
PROPERTIES (d) nameProduct, quantity, NEW , DELETE
FILTERS order(d) = o

EDIT Order OBJECT o
;

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдореЗрдВ рдСрд░реНрдбрд░ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рд╣рдЯрд╛рдиреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдирдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдорд┐рд▓рддрд╛ рд╣реИред
рдЕрдЧрд▓рд╛ рд╣рдо рдЪрдпрди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдЬреЛ рд╣рдореЗрдВ рдЗрд╕ рдлрд╝реЙрд░реНрдо рдореЗрдВ рдЪрд╛рд╣рд┐рдПред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ рд╕рднреА рд╕рд╛рдорд╛рдиреЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдлреЙрд░реНрдо рдкрд░ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдХреЗрд╡рд▓ рдЙрдиреНрд╣реАрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЪрдпрдирд┐рдд рдЖрдкреВрд░реНрддрд┐рдХрд░реНрддрд╛ рд╕реЗ рдСрд░реНрдбрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ:
EXTEND FORM order
OBJECTS p = Product
PROPERTIES name(p) READONLY
FILTERS in(supplier(o), p) //
;

рд╣рдордиреЗ рдбрд┐рдЬрд╝рд╛рдЗрди рд╕реЗрдЯ рдХрд┐рдпрд╛ рддрд╛рдХрд┐ рдСрд░реНрдбрд░ рд▓рд╛рдЗрдиреЛрдВ рдФрд░ рдЪрдпрди рдХреЛ рдПрдХ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЯреИрдм рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП:
DESIGN order {
OBJECTS {
NEW pane { //
fill = 1 ; //
type = TABBED ; // ,
MOVE BOX (d); //
MOVE BOX (p) { //
caption = '' ;
}
}
}
}

рд╣рдо рд╕рдВрдмрдВрдзрд┐рдд рдХреЙрд▓рдо рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдорд╛рддреНрд░рд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдФрд░ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрдХ рдЧреБрдг рдмрдирд╛рддреЗ рд╣реИрдВ:
quantity '-' (Order o, Product p) =
GROUP SUM quantity(OrderDetail d) BY order(d), product(d);
lastOrderDetail ' ' (Order o, Product p) =
GROUP LAST OrderDetail d ORDER d BY order(d), product(d);

рдкрд╣рд▓реА рд╕рдВрдкрддреНрддрд┐ рдЗрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдЗрд╕ рдЖрджреЗрд╢ рдФрд░ рдЙрддреНрдкрд╛рдж рдХреЗ рд▓рд┐рдП рдорд╛рддреНрд░рд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреА рд╣реИред рджреВрд╕рд░рд╛ рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рдкрд╛рддрд╛ рд╣реИ (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рдЙрддреНрдкрд╛рдж рдХреЗ рд╕рд╛рде рдХрдИ рд▓рд╛рдЗрдиреЗрдВ рджрд░реНрдЬ рдХрд░ рд╕рдХрддрд╛ рд╣реИ)ред
рдЕрдЧрд▓рд╛, рд╣рдо рдПрдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рдЪрдпрди рдЯреИрдм рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдХреЙрд▓рдо рдореЗрдВ рдореВрд▓реНрдп рджрд░реНрдЬ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдЧреА:
changeQuantity ' -' (Order o, Product p) {
INPUT q = NUMERIC [ 14 , 3 ] DO { //
IF lastOrderDetail(o, p) THEN { // ,
IF q THEN //
quantity(OrderDetail d) <- q IF d = lastOrderDetail(o, p)
WHERE order(d) = o AND product(d) = p; //
ELSE // -
DELETE OrderDetail d WHERE order(d) = o AND product(d) == p;
} ELSE
IF q THEN
NEW d = OrderDetail { //
order(d) <- o;
product(d) <- p;
quantity(d) <- q;
}
}
}

рдЕрдВрдд рдореЗрдВ, рд╣рдо рдкреНрд░рдкрддреНрд░ рдореЗрдВ рдПрдХ рдХреЙрд▓рдо рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЬреЛ рдЙрд╕ рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЙрд╕рдХреЗ рдореВрд▓реНрдп рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
EXTEND FORM order
PROPERTIES (o, p) quantity ON CHANGE changeQuantity(o, p)
;

рдпрд╣ рдХреЗрд╡рд▓ рдЖрджреЗрд╢реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдПрдХ рдлреЙрд░реНрдо рдЦреАрдВрдЪрдиреЗ рдФрд░ рдирд╛рд╡рд┐рдХ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ:
FORM orders ''
OBJECTS o = Order
PROPERTIES (o) READONLY date, number
PROPERTIES (o) NEWSESSION NEW , EDIT , DELETE
;

NAVIGATOR {
NEW orders;
}

рдкрд░рд┐рдгрд╛рдореА рд░реВрдк рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:

рдЫрд╡рд┐

рдХрд┐рд╕реА рднреА рдЯреИрдм рдореЗрдВ рдХрд┐рдП рдЧрдП рдХреЛрдИ рднреА рдкрд░рд┐рд╡рд░реНрддрди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рджреВрд╕рд░реЗ рдХреЛ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗред

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдИрдЖрд░рдкреА рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ, рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреЙрд▓рдо рдФрд░ рдЕрдиреНрдп рддрддреНрд╡реЛрдВ рдХреЛ рдлреЙрд░реНрдо рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ , рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

рдЫрд╡рд┐


рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЕрдиреНрдп рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХреА рдЬрд╛рддреА рд╣реИред

1C


1 рд╕реА рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдиреНрдпрд╛рд╕реЛрдВ рдореЗрдВ, рдЪрдпрди рддрд░реНрдХ рдореЗрдВ рдХреБрдЫ рдЕрдВрддрд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд┐рджреНрдзрд╛рдВрдд рдХрдореЛрдмреЗрд╢ рдПрдХ рд╣реА рд╣реИред рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╕рдВрдкрд╛рджрди рдлрд╝реЙрд░реНрдо рдкрд░ рдПрдХ рдЪрдпрди рдмрдЯрди рд╣реИ, рдЬреЛ рдорд╛рд▓ рдХреА рдкрд╕рдВрдж рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрд╡рд╛рдж рд▓рд╛рддрд╛ рд╣реИ:

рдЫрд╡рд┐

рдЗрд╕ рд╕рдВрд╡рд╛рдж рдореЗрдВ, рдЖрдк рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдорд╛рд▓ рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

рдЫрд╡рд┐

рдЗрд╕ рддрдВрддреНрд░ рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рджреЛ рдЕрд╕реБрд╡рд┐рдзрд╛рдПрдБ рд╣реИрдВред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдЙрддреНрдкрд╛рдж рдХреА рдорд╛рддреНрд░рд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП (рдФрд░ рдЕрдХреНрд╕рд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрд╕ рдорд╛рддреНрд░рд╛ рдХреЛ рдЬрд╛рдирддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╡рд╣ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ), рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдЙрддреНрдкрд╛рдж рдкрд░ рдбрдмрд▓-рдХреНрд▓рд┐рдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЙрд╕реЗ рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдлрд┐рд░ рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдорд╛рддреНрд░рд╛ рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЙрддреНрдкрд╛рджреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЙрддреНрдкрд╛рдж рдкрд╣рд▓реЗ рд╣реА рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдХрд┐рд╕ рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рддрд░рд╣ рдХреА рдпреЛрдЬрдирд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЛ "рдЦрд╛рддреА рд╣реИ", рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдПрдХ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╕реНрдХреНрд░реАрди рдкрд░ рджреЛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рджреВрд╕рд░реЗ, рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рд╕реАрдзреЗ рдЬреЛрдбрд╝ рджрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдпрджрд┐ рдЖрдк рдлрд┐рд░ рд╕реЗ рдЪрдпрди рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЪрдпрди "рдЦрд░реЛрдВрдЪ рд╕реЗ" рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдиреАрдЪреЗ рджреА рдЧрдИ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдХреЛрдИ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдирд╣реАрдВ рджрд┐рдЦрд╛рдПрдЧрд╛, рдФрд░ рдкреБрди: рдЪрдпрди рдХреЗ рд╕рдордп рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдХрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдХреНрдпрд╛ рдирд╣реАрдВ рд╣реИред рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд┐рдпрдо рдХрд╛ рднреА рдЙрд▓реНрд▓рдВрдШрди рдХрд░рддрд╛ рд╣реИ: рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдЧрд▓рддреА рд╣реБрдИ рд╣реИ, рддреЛ рдЙрд╕реЗ рд╡рд╛рдкрд╕ рдЬрд╛рдиреЗ рдФрд░ рддреНрд░реБрдЯрд┐ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣рд╛рдВ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╡рд╣ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдРрдб рдмрдЯрди рджрдмрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрд╕реА рдбреЗрдЯрд╛ рд╡рд╛рд▓реЗ рд╕рд╛рдорд╛рдиреЛрдВ рдХреЗ рдЪрдпрди рдкрд░ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рд▓реМрдЯ рдкрд╛рдПрдЧрд╛ред

рд╣рд╛рд▓рд╛рдВрдХрд┐, 1 рд╕реА рдореЗрдВ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЖрдк рдЙрдкрд░реЛрдХреНрдд рдпреЛрдЬрдирд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, рд╕рд╛рдЗрдЯ рдкрд░ рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдбреЗрдореЛ рдХреЗ рд╕рд╛рде рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рдПрдХ рдЕрдиреНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

Microsoft Dynamics 365


рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рд░рд┐рдЯреЗрд▓ рд▓рд┐рдпрд╛ (рдХреЗрд╡рд▓ рдЗрд╕рдореЗрдВ рдореБрдЭреЗ https://trials.dynamics.com рдкрд░ рдЙрдкрд▓рдмреНрдз рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдорд┐рд▓реА)ред рдЗрд╕рдореЗрдВ, рдЖрдк рдЦрд░реАрдж рдЖрджреЗрд╢ рдлреЙрд░реНрдо рдкрд░ рдЪрдпрди рдХреЛ рджреЛ рддрд░реАрдХреЛрдВ рд╕реЗ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

рдЫрд╡рд┐

рдкрд╣рд▓рд╛ рдмрдЯрди 1 рд╕реА рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдмрд╣реБрдд рдХрдо рдХреЙрд▓рдо рд╣реИрдВ), рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЙрд╕ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреВрдВрдЧрд╛ред

рджреВрд╕рд░рд╛ рдмрдЯрди рдЙрди рдЙрддреНрдкрд╛рджреЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрд╡рд╛рдж рд▓рд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдорд╛рддреНрд░рд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреЙрд▓рдо рдореЗрдВ рджрд░реНрдЬ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдЕрдЬреАрдм рддрд░реАрдХреЗ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдХреЗрд╡рд▓ рдЙрддреНрдкрд╛рдж рдХреЛрдб рд╡рд╣рд╛рдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ (рдирд╛рдо рдХреЗ рдмрд┐рдирд╛ рднреА)ред рдмреЗрд╢рдХ, рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡рд╣рд╛рдВ рдЕрдиреНрдп рдХреЙрд▓рдо рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореВрд▓ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рджреЗрдЦрдирд╛ рдереЛрдбрд╝рд╛ рдЕрдЬреАрдм рд╣реИред

рджреВрд╕рд░реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ Microsoft рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдбрд┐рдЬрд╛рдЗрди рд╕реЗ рдЗрддрдирд╛ рджреВрд░ рдЪрд▓рд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рд╡реЗ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдбреЗрдЯрд╛, рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдЯреНрд░рд┐рдХреНрд╕ рдФрд░ рдШрдЯрдирд╛рдУрдВ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рд░рди рдмрдирд╛рдПред рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

рдЫрд╡рд┐

рд╕рд╛рдорд╛рдиреНрдп рдХреАрдмреЛрд░реНрдб рдСрдкрд░реЗрд╢рди рдХреЗ рджреМрд░рд╛рди, рдбреЗрдЯрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрдврд╝рдиреЗ рдкрд░ рд╡рд░реНрддрдорд╛рди рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрд╕реА рд╕рдордп, рдЖрдк рд╕рднреА рдИрд╡реЗрдВрдЯ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣реА рдкреНрд░рд╡реЗрд╢ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдиреНрдпрдерд╛ рдорд╛рддреНрд░рд╛ рдпрд╛ рддреЛ рдмрд┐рд▓реНрдХреБрд▓ рджрд░реНрдЬ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ, рдпрд╛ рдЧрд▓рдд рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рджрд░реНрдЬ рдХреА рдЧрдИ рд╣реИред рдЗрд╕рдХреЗ рд╕рд╛рде рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рд░рд╣рд╕реНрдп рдмрдирд╛ рд╣реБрдЖ рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдХреБрдЫ рд▓реЛрдЧ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдареАрдХ рд╣реИ, рдпрд╛ рдпрд╣ рдбреЗрдореЛ рдХреА рд╕реАрдорд╛рдПрдБ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ рд╕рдм рдХреБрдЫ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдирд┐рд╖реНрдХрд░реНрд╖


рдПрдХ рдЕрд▓рдЧ рдЪрдпрди рдЯреИрдм рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд░реНрдгрд┐рдд рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЗрдирдкреБрдЯ рдпреЛрдЬрдирд╛ рд╣рдорд╛рд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЧрдИ рдереАред

рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдпрд╣ рдЕрд╡рдзрд╛рд░рдгрд╛ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рд╕реЗ рдЬрдЯрд┐рд▓ рд╣реЛ рд╕рдХрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрддреНрдкрд╛рдж рд╕реВрдЪреА рдХреЗ рдмрдЬрд╛рдп, рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдорд╛рддреНрд░рд╛ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╡рд╛рд▓реЗ рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВред рдпрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╡реЗрдпрд░рд╣рд╛рдЙрд╕ рдереЗ, рдФрд░ рдХреЙрд▓рдо рдореЗрдВ рдЗрди рдЧреЛрджрд╛рдореЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдорд╛рддреНрд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред

рдЗрд╕ рддрд░рд╣ рдХреА рдпреЛрдЬрдирд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╣реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдПрдХ рд░рд╛рдЬреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреА рд╡рд░реНрддрдорд╛рди рд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рдЗрд╕реЗ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЯреИрдм рдореЗрдВ рджреЛ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдорд╛рд▓ рдХреЗ рд╕рд╛рде рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдФрд░ рдЖрдкрдХреЛ рддрдерд╛рдХрдерд┐рдд "рдЕрдирдВрдд рд╕реНрдХреНрд░реЙрд▓" рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рд╕реЙрд░реНрдЯ рдХрд░рдиреЗ рдФрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреА рдЬрд╛рддреА рд╣реИ (рдФрд░ рдпрд╣ рд╕рд░реНрд╡рд░ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдирд╣реАрдВ, рддрд╛рдХрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рдбреЗрдЯрд╛ рдХреЛ рд╡рд╣рд╛рдВ рди рдЦреАрдВрдЪреЗрдВ)ред рдпрд╣ рд╕рдм рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧреИрд░-рддреБрдЪреНрдЫ рдХрд╛рд░реНрдп рдмрди рдЬрд╛рддрд╛ рд╣реИред

LsFusion рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдореЗрдВ, рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЖрдк рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ, рддреЛ рдЖрдк рдХреЛрдб рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рдкреЗрдЬ рдкрд░ рдСрдирд▓рд╛рдЗрди рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рд╕рдВрдкреВрд░реНрдг рд╕реНрд░реЛрдд рдХреЛрдб рд╣реИ, рдЬрд┐рд╕реЗ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЯреИрдм рдкрд░ рдбрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдкреНрд▓реЗ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ:

рд╕реНрд░реЛрдд рдХреЛрдб
CLASS Product '' ;
name '' = DATA STRING [ 50 ] (Product);

FORM product ''
OBJECTS p = Product PANEL
PROPERTIES (p) name

EDIT Product OBJECT p //
;

FORM products ''
OBJECTS p = Product
PROPERTIES (p) READONLY name
PROPERTIES (p) NEWSESSION NEW , EDIT , DELETE

LIST Product OBJECT p // ,
;

NAVIGATOR {
NEW products;
}

CLASS Supplier '' ;
name '' = DATA STRING [ 50 ] (Supplier);

in '' = DATA BOOLEAN (Supplier, Product); // TRUE,

FORM supplier ''
OBJECTS s = Supplier PANEL
PROPERTIES (s) name

OBJECTS p = Product //
PROPERTIES in(s, p), name(p) READONLY //

EDIT Supplier OBJECT s
;

FORM suppliers ''
OBJECTS s = Supplier
PROPERTIES (s) READONLY name
PROPERTIES (s) NEWSESSION NEW , EDIT , DELETE

LIST Supplier OBJECT s
;

NAVIGATOR {
NEW suppliers;
}

CLASS Order '' ;
date '' = DATA DATE (Order);
number '' = DATA INTEGER (Order);

supplier '' = DATA Supplier (Order);
nameSupplier '' (Order o) = name(supplier(o));

CLASS OrderDetail ' ' ;
order '' = DATA Order (OrderDetail) NONULL DELETE ;

product '' = DATA Product (OrderDetail);
nameProduct '' (OrderDetail d) = name(product(d));

quantity '-' = DATA NUMERIC [ 14 , 3 ] (OrderDetail);

FORM order ''
OBJECTS o = Order PANEL
PROPERTIES (o) date, number, nameSupplier

OBJECTS d = OrderDetail
PROPERTIES (d) nameProduct, quantity, NEW , DELETE
FILTERS order(d) = o

EDIT Order OBJECT o
;

EXTEND FORM order
OBJECTS p = Product
PROPERTIES name(p) READONLY
FILTERS in(supplier(o), p) //
;

DESIGN order {
OBJECTS {
NEW pane { //
fill = 1 ; //
type = TABBED ; // ,
MOVE BOX (d); //
MOVE BOX (p) { //
caption = '' ;
}
}
}
}

quantity '-' (Order o, Product p) =
GROUP SUM quantity(OrderDetail d) BY order(d), product(d);
lastOrderDetail ' ' (Order o, Product p) =
GROUP LAST OrderDetail d ORDER d BY order(d), product(d);

changeQuantity ' -' (Order o, Product p) {
INPUT q = NUMERIC [ 14 , 3 ] DO { //
IF lastOrderDetail(o, p) THEN { // ,
IF q THEN //
quantity(OrderDetail d) <- q IF d = lastOrderDetail(o, p)
WHERE order(d) = o AND product(d) = p; //
ELSE // -
DELETE OrderDetail d WHERE order(d) = o AND product(d) == p;
} ELSE
IF q THEN
NEW d = OrderDetail { //
order(d) <- o;
product(d) <- p;
quantity(d) <- q;
}
}
}

EXTEND FORM order
PROPERTIES (o, p) quantity ON CHANGE changeQuantity(o, p)
;

FORM orders ''
OBJECTS o = Order
PROPERTIES (o) READONLY date, number
PROPERTIES (o) NEWSESSION NEW , EDIT , DELETE
;

NAVIGATOR {
NEW orders;
}

Source: https://habr.com/ru/post/hi464487/


All Articles