Delphi és 1c - export és import, delphisite

V1CEnterprise.Application - verzió független kulcs
V77.Application - változatfüggő kulcs
V77S.Application - változatfüggő kulcs, SQL verzió
V77L.Application - változatfüggő kulcs, helyi verzió






V77M.Application - változatfüggő kulcs, hálózati verzió
Például hozzon létre egy OLE objektumot az 1C: Enterprise szerverhez. Az egyszerűség érdekében hozzon létre egy objektumot anélkül, hogy kötelező lenne egy adott verzióra és programfajtára:

eljárás TForm1. Create1C;

onesobj: = createoleobject # 40; 'V1CEnterprise.Application' # 41; ;

onesobj: = UnAssigned;
Ez azonban nem szükséges, mert az alkalmazás bezárásakor az OLE objektum automatikusan megjelenik.
Összefoglalja a tudást: hozzon létre egy "1C: Enterprise" OLE-objektumot, inicializálja és helyesen engedje el:

eljárás TForm1. Create1C;

onesobj: = createoleobject # 40; 'V1CEnterprise.Application' # 41; ;

onesobj. inicializálása # 40; onesobj. rmtrade,

A kapott objektummal való együttműködés
Ésszerű kérdés. Valójában, mindent elindítottak, nem igaz. ) Valójában minden nagyon egyszerű. Az OLE-objektum létrehozása és inicializálása után a következőképpen dolgozhatunk:
Az EvalExpr () módszer használatával,
Az EvalExpr módszer a beépített 1C: Enterprise nyelv paraméterére írt kifejezést értékeli, és a számítás eredményét adja vissza. Egy kifejezés eredménye lehet bármely aggregált adattípus számát, karakterláncát, dátumát vagy értékét.
A CreateObject () módszer használatával,
A CreateObject módszer az 1C: Enterprise rendszer összesített adatobjektumát hozza létre, és visszaküldi a hivatkozást. Ezt a funkciót általában az OLEVariant típusú változó explicit meghatározásával és az összesített adattípus objektumhoz való hozzárendelésével egyidejűleg használják.
Az ExecuteBatch () módszer használata
Az ExecuteBatch módszer végrehajtja a paraméterben írt utasítások sorozatát a beépített 1C: Enterprise nyelvben. A módszer -1-ben tér vissza, ha a mondatok sorrendje sikeres, vagy 0 egyébként.
Az 1C: Enterprise rendszer attribútumainak és módszereinek meghívása OLE Automation kiszolgálóként
Itt van néhány buktató, amelyeket azonnal figyelmeztetni akarok:
Az 1C: Enterprise rendszer attribútumainak és módszereinek használatakor angol nyelvű szinonimákat kell használnia (minden egyes módszerre a "beépített nyelv leírása" részben szerepel)
A létrehozott összesített adattípushoz a Delphi környezetben szükség van egy OLEVariant típusú változóra
Ha a hívott OLE-objektum módszer nem veszi paramétereket (vagy az egyik paraméter is választható), mint a paraméter, amelyet továbbítani kell neki EmptyParam (vagy - Delphi 3 - üres string).
Ahhoz, hogy a tárgy azonosítóinak orosz nyelv típusok összesítik (például kézikönyvek részletek) kell használni a módszert objektum aggregátumtípusok getattrib (), hogy az attribútum értéke, és setattrib () állítsa be az értéket.
Az átfogó ábrázolása a fenti, adok egy példát, amelyben a könyvtár tartalmát „nómenklatúra” teljesen exportált adatbázis tábla (ebben a példában azt feltételezi, hogy már létrehozta az asztal tabla1, akinek mezők megfelelő könyvtárba. 2. táblázat táblázat utal az azonos fizikai tábla tabla1 , és csak a már hozzáadott elemek keresésére szolgál):






eljárás TForm1. exportsprav;

számláló: egész szám; // Az importált rekordok számlálója

onesobj: Olevariant; // A program OLE objektuma 1C: Enterprise

áru, ware2: meglariant; // Aggregátum objektumok

val. edizm, nds, np: meglariant;

pf: egész szám; // Közbenső változók

tábla1. nyissa; // A táblázat megnyitása

2. táblázat. nyissa; // Nyissa meg a táblát2

számláló: = 0; // Nullázza a rekordszámlálót

onesobj: = createoleobject # 40; 'V1CEnterprise.Application' # 41; ; // Hozzon létre egy OLE objektumot

// Hozzon létre a szükséges összesített objektumokat

áru: = onesobj. CreateObject # 40; "Referencia-nómenklatúra" # 41; ;

ware2: = onesobj. CreateObject # 40; "Referencia-nómenklatúra" # 41; ;

edizm: = onesobj. CreateObject # 40; "Referencia" Mérési egységek " # 41; ;

nds: = onesobj. CreateObject # 40; 'Spravochnik.StavkiNDS' # 41; ;

np: = onesobj. CreateObject # 40; 'Spravochnik.StavkiNP' # 41; ;

vigyáz. selectgroup # 40; 1 # 41; ; // Állítsa be a csoportválasztási módot

vigyáz. selectitems # 40; 1 # 41; ; // Nyissa meg a könyvtár elemeinek kiválasztását

míg az áru. GetItem # 40; 1 # 41;> 0 do // Válassza ki az összes elemet

ha az áru. szint # 40; „” # 41; = 1 majd // Ha az első szint egy csoportját választottuk, akkor

Máskülönben a szülőelemet keresjük

ware2. FindItem # 40; vigyáz. getattrib # 40; „Szülő” # 41; # 41; ;

ha a táblázat2. findkey # 40; # 91; ware2. getattrib # 40; „Kód” # 41; # 93; # 41; majd

// Ha már importáltuk ezt az elemet

pf: = táblázat2. fieldbyname # 40; 'ID' # 41;. AsInteger //, megkapjuk a kódját

pf: = -1; // egyébként az elemet az első szint csoportjába helyezzük

ha az áru. deletemark # 40; „” # 41; = 0 majd // Ha az elem nincs törölve, akkor

tábla1. csatolja; // adjon hozzá egy új mezőt az asztalhoz

// Töltse ki a táblázat mezőket a könyvtár elemének megfelelő attribútumainak értékeivel

tábla1. fieldbyname # 40; 'CODE_1S' # 41;. AsInteger: = áru. getAttrib # 40; „Kód” # 41; ;

// Töltse ki a név mezőt

tábla1. fieldbyname # 40; 'NAME' # 41;. AsString: = áru. getAttrib # 40; „Név” # 41; ;

tábla1. fieldbyname # 40; 'PARENT_FOLDER' # 41;. AsInteger: = pf;

tábla1. fieldbyname # 40; 'FULLNAME' # 41;. AsString: = áru. getAttrib # 40; "Teljes név" # 41; ;

// Keresse meg a megfelelő bejegyzést az "intézkedés egységében"

edizm. finditem # 40; vigyáz. getattrib # 40; "Mérési egység" # 41; # 41; ;

// Töltse ki az intézkedés mértékegységét

tábla1. fieldbyname # 40; 'EDIZM' # 41;. AsString: = edizm. getattrib # 40; „Név” # 41; ;

// így kapjuk meg az időszakos követelmények értékét

tábla1. fieldbyname # 40; 'SEBESTOIM' # 41;. AsFloat: =

vigyáz. getAttrib # 40; "Költségár" # 41;. getValue # 40; datetostr # 40; most # 41; # 41; ;

tábla1. fieldbyname # 40; 'PRICEOPT' # 41;. AsFloat: = áru. getAttrib # 40; „Ár” # 41; ;

NDS. finditem # 40; vigyáz. getAttrib # 40; 'StavkaNDS' # 41;. getValue # 40; datetostr # 40; most # 41; # 41; # 41; ;

np. finditem # 40; vigyáz. getAttrib # 40; 'StavkaNP' # 41;. getValue # 40; datetostr # 40; most # 41; # 41; # 41; ;

// Töltse ki a HÉA-kulcs mezőjét

tábla1. fieldbyname # 40; 'STNDS' # 41;. AsFloat: = nds. getAttrib # 40; „Fogadás” # 41; ;

// Töltse ki az NP arány mezőjét

tábla1. fieldbyname # 40; 'STNP' # 41;. AsFloat: = np. getAttrib # 40; „Fogadás” # 41; ;

tábla1. fieldbyname # 40; 'ARTICUL' # 41;. AsString: = áru. getAttrib # 40; „Referencia” # 41; ;

ha Ware. IsGroup # 40; „” # 41; = 1 majd // Ha egy termékcsoportot választottunk ki, akkor

tábla1. fieldbyname # 40; 'IS_FOLDER' # 41;. AsInteger: = 1

tábla1. fieldbyname # 40; 'IS_FOLDER' # 41;. AsInteger: = 0;

inc # 40; pult # 41; ;

következtetés
Sajnálatos módon lehetetlen egy cikkbe illeszteni minden olyan információt, amely hasznos lenne számodra. Próbáltam csak a minimum, amit meg kell szerezni néhány alapvető ismereteket, és lehet az alapja a saját kis felfedezések az integráció területén Delphi és a „1C: Enterprise”.
Írj nekem, tegyél fel kérdéseket, és lehetséges, hogy a cikk hamarosan folytatódik.




Kapcsolódó cikkek