Külső táblázatfájlok.

Szia Khabravchans!

Ebben a cikkben arról szeretnék beszélni, hogy az 1C platformmal való integráció hogyan jön létre a szervezetemben. Ami erre késztetett, az a szinte teljes hiánya volt technikai információ erről a témáról. Az 1C bármilyen információs rendszerrel való összekapcsolásáról szóló különféle cikkek és jelentések olvasása során újra és újra meggyőződhet arról, hogy ezek mind marketing jellegűek, bemutató jellegűek, és soha nem technikai jellegűek, tükrözve a problémát és annak megoldásának lényegét.

Figyelmeztetem, hogy a módszer semmiképpen sem állítja, hogy univerzális. Mivel sok 1C konfiguráció létezik, és információs rendszerek, nyelvek és platformok – még ennél is több, a lehetséges kombinációk száma óriási. Célom egy lehetséges megoldás bemutatása.


Az 1C-vel integrálható nyelvként a Pythont választottam. Kiválóan alkalmas folyamatautomatizálásra. Ezt segíti elő a minimalista szintaxis (a kód nagyon gyorsan begépelhető), a gazdag szabványkönyvtár (kevésbé kell külső modulokra), cross-platform - nagy valószínűséggel a Linix OS-ben írt kód sikeresen fog működni Ablakok.

Kezdésként felvázolom azokat az adatokat, amelyekkel dolgozni fogunk. A szervezet - a távol-keleti régió áramszolgáltató vállalata - körülbelül 400 ezer előfizetőt szolgál ki, az alap az 1C, saját maga által írt konfiguráción. Minden egyes előfizető esetében eltárolódnak a fizetései, időbeli elhatárolásai, igénybe vett szolgáltatásai és számítási sémái, mérőkészülékei, leolvasásai és sok egyéb adat.

Egyszer a szervezetben volt egy Delphiben írt program, amely az MSSQL / Firebird adatbázist használta. Azokban a dicsőséges időkben bármilyen nyelven lehetett csatlakozni az adatbázishoz, és számos műveletet végrehajtani - az adós előfizetők kiválasztása, a beérkezett kifizetések postázása, a műszerleolvasások rögzítése. Nem meglepő, hogy a rutint automatizáló szkriptek gyűjteménye folyamatosan bővül. A programozók bármilyen műveletet végrehajthatnak a program megnyitása nélkül.

Sajnos az 1C-re való átállással az ingyenesség véget ért - már nem lehetett közvetlenül csatlakozni az adatbázishoz. Általában maga az 1C platform oszthatatlan, és rosszul integrálódik más rendszerekkel. Ez, ahogy mondani szokták, önmagában való dolog. Amikor adatokat tölt be az 1C-be, emlékezni kell arra, hogy onnan nem lesz olyan egyszerű kinyerni őket. De tekintettel arra, hogy a szervezetnek fizetési rendszereket kellett bevezetnie és Személyes terület, megoldást kellett találni.

A fő feladatok, amelyekkel szembe kellett néznem, az volt, hogy gyorsan le tudjak szerezni egy adott adatot személyes fiók- Teljes név, cím, mérőeszközök, műszerleolvasások, fizetések, díjak. Plusz, a formáció a dokumentumok - egy aktus a megbékélés, fizetési nyugta. Tehát nincs lehetőség az adatbázishoz való közvetlen kapcsolatra - mindenki, aki átnézett az 1C adatbázison az SQL-kiszolgálón, látta, hogy nehéz kitalálni az olyan táblák tömegében, mint aaa1, aaa2. És ilyen tábla- és mezőnevekkel lekérdezéseket készíteni egyszerűen irreális. Ezen túlmenően sok 1C tábla (különösen a legfontosabbak, mint például az utolsó vágása, egyenlegek és fordulatok) virtuális, és szétszórva vannak a különböző fizikai táblákon, és több csatlakozásban gyűlnek össze. Ez a módszer nem megfelelő.

Az 1C platform lehetőséget biztosít arra, hogy COM-kapcsolaton keresztül csatlakozzon hozzá. Mint sok Windows program, az 1C telepítése során két COM objektumot regisztrálnak a rendszerben - Automation Server és COM Connector. Mindkét objektummal dolgozhat olyan nyelven, amely támogatja a COM technológiát.

Az Automation Server objektum egy 1C alkalmazás, amely szinte semmiben sem különbözik a szokásos kliens alkalmazásoktól. A különbség az, hogy ezen kívül lehetőség van az alkalmazáspéldány programozott vezérlésére. Amikor a COM Connector objektummal dolgozik, elindul az 1C alkalmazás könnyű verziója, amelyben nem állnak rendelkezésre űrlapok, valamint az interfészhez kapcsolódó funkciók és módszerek. vizuális effektek. Maga az alkalmazás "Külső kapcsolat" módban indul el. Globális változók inicializálása (például definiálása jelenlegi felhasználóés beállításai) az 1C külső csatlakozómodulban kell végrehajtani. Ha külső kapcsolati módban olyan függvényt hívunk meg a kódban, amely ebben a módban nem érhető el, kivételt dobunk (amit a python szkriptünknek adunk át). A nem biztonságos függvények hívásait az űrlap konstrukcióival kell keretezni

#Ha NEM KülsőKapcsolat, Akkor Figyelmeztetés ("Helló!"); #EndIf

Mivel a COM-objektumokkal való munkavégzés csak Windows-technológia, nem meglepő, hogy nem szerepel a szabványos Python-terjesztésben. Telepítenie kell egy bővítményt - egy olyan modulkészletet, amely minden szükséges funkciót biztosít a Windows alatti programozáshoz a Pythonban. Letölthető már összerakott exe telepítőként. Maga a kiterjesztés hozzáférést biztosít a rendszerleíró adatbázishoz, szolgáltatásokhoz, ODBC-hez, COM-objektumokhoz és így tovább. Alternatív megoldásként azonnal telepítheti az ActiveState Python disztribúciót, amelyben a Win32 bővítmény már a dobozból származik.

Egy ideig kísérleteztem a COM kapcsolattal a webes alkalmazások fejlesztése során, különös tekintettel a személyes fiókra. A következő hátrányokat azonosították:

A COM kapcsolat lassú. Az alacsony teljesítmény a COM technológia jól ismert hátránya.
- Az 1C-vel való kapcsolat létrehozásának folyamata a konfigurációtól függően 1-8 másodpercig tarthat (az én esetemben - 6 másodperc). Mondanom sem kell, hogy az egyes kérésekhez kapcsolódó kapcsolat létrehozásával minden oldal 8 másodpercen belül betöltődik.
- Mivel a python webes alkalmazások független szerverként működnek, az előző pont kompenzálható azzal, hogy valamilyen globális változóban tároljuk a kapcsolatot, és hiba esetén visszaállítjuk. Őszintén szólva még nem gondolkodtam, hogyan lehet kapcsolatot fenntartani PHP-ben.
- Elveszett többplatformos webalkalmazás.

A fent felsorolt ​​pontok alapján úgy döntöttek, hogy megváltoztatják az interakció elvét, 2 részre osztva - az első platformfüggő (Windows), az 1C adatok bármilyen kényelmes formátumba történő kirakása, a második pedig platformfüggetlen, amely képes adatokkal dolgozni anélkül, hogy elvileg bármit is sejtene az 1C-ről.

A cselekvési stratégia a következő: a python szkript csatlakozik az 1C-hez, végrehajtja a szükséges lekérdezéseket és feltölti az adatokat az SQLite adatbázisba. Ehhez az adatbázishoz Pythonból, PHP-ből, Java-ból csatlakozhat. A legtöbb projektünk pythonban van, és mivel utálok kézzel írni nyers SQL-lekérdezéseket, az SQLite adatbázissal végzett minden munka az SQLAlchemy ORM-en keresztül történik. Csak az adatbázis adatszerkezetét kellett deklaratív stílusban leírni:

Az sqlalchemy.ext.declarative import deklaratív_alapból az sqlalchemy importból Oszlop, egész szám, numerikus, DateTime, Unicode, logikai, LargeBinary, ForeignKey Base = deklaratív_bázis() osztály Abonent(Base): __tablename__ = "abonens True) account = Oszlop(Unicode(32), index=True) kód = Oszlop(Unicode(32)) cím = Oszlop(Unicode(512)) fio = Oszlop(Unicode(256)) forrás = Oszlop(Unicode(16) ) psu = Oszlop(Unicode(256)) tso = Oszlop(Unicode(256)) np = Oszlop(Unicode(256)) utca = Oszlop(Unicode(256)) ház = Oszlop(Integer) lakás = Oszlop(Integer) mro = Oszlop(Unicode(256)) osztály Fizetés(Alap): __táblanév__ = "kifizetések" # és így tovább...

Most elég importálni ezt a modult bármely python projektbe, és már dolgozhat az adatokkal.

Előre látom a kérdését - "miért az SQLite"? Ennek fő oka az, hogy az adatbázisra csak az olvasáshoz van szükség, így nem kell aggódnunk az SQLite-ba való írással kapcsolatos problémák miatt. Másodszor, ennek a DBMS-nek a formátuma kényelmes - kényelmesebb a megtekintése (sok van ingyenes közművek, beleértve a FireFox szuper kiterjesztését). Harmadszor, bizonyos esetekben el kellett érni az előfizetőket azokról a gépekről, amelyeken nincs kapcsolat a MySQL szerverrel. Ebben az esetben elég az SQLite adatbázis fájlt másolni, és ezen a gépen minden információhoz hozzáférhet.

A kirakodás naponta egyszer, éjszaka történik. Az adatok 1C-be történő bevitele ugyanúgy automatizálható. Például rögzíteni kell az előfizetők által a személyes fiók webhelyén hagyott leolvasásokat. Ebben az esetben ismét csatlakozunk az 1C-hez, és programozottan létrehozzuk és végrehajtjuk a „Tanúságtételi aktus” dokumentumot. Az alábbiakban megadom a kódot.

A COM-objektumokkal való munka Pythonban kissé szokatlan. Először is, a kód „pytonicitása” elvész - az 1C változók és függvények elnevezésére vonatkozó szabályok enyhén szólva nem felelnek meg a Python Zenének. Másodszor, mindenki tudja, hogy az 1C objektumokat gyakran cirill karaktereknek nevezik, ami problémákat okoz a Pythonban való fejlesztés során ... de megoldhatók. Azt javaslom, nézd meg a kódot:

Import pythoncom import win32com.client V82_CONN_STRING = "Srvr=v8_szerver;Ref=v8_db;Usr=felhasználónév;Pwd=megapass;" pythoncom.CoInitialize() V82 = win32com.client.Dispatch("V82.COMConnector").Connect(V82_CONN_STRING)

Amint a kódból látható, az ügyfél inicializálva van az 1C-vel való együttműködésre. A COM objektumot a "V82.COMConnector" név határozza meg. Kérjük, vegye figyelembe, hogy ez a név a V8.2 platformra érvényes, ha 8.1-es verziója van, akkor a név "V81.COMConnector" lesz.

Az inicializált kliensen meghívjuk a Connect() metódust, átadva neki a kapcsolódási karakterláncot. A karakterlánc a szerver nevéből, az adatbázisból, a felhasználóból és a jelszóból áll. Az eredményül kapott V82 objektum tárolja a kapcsolatot az 1C alkalmazással. Nincs benne Disconnect() metódus vagy ilyesmi. Az alapról való leválasztáshoz elegendő az objektumot a del () függvénnyel eltávolítani a memóriából, vagy a változót None-ra rendelni.

Objektum birtokában hozzáférhet az 1C globális kontextus bármely mezőjéhez és metódusához, és olyan univerzális objektumokkal dolgozhat, mint a TabularDocument, TableValues ​​stb. Fontos megjegyezni, hogy amikor COM-kapcsolaton keresztül dolgozik, az 1C "Külső kapcsolat" módban működik. Nem tartalmaz semmilyen interaktív munka funkciót, például felugró párbeszédpaneleket, értesítéseket és, ami a legfontosabb, űrlapokat. Biztos vagyok benne, hogy többször is átkozni fogja a konfigurációs fejlesztőket, amiért a Button1Press() eljárás legfontosabb funkcióit becsomagolják a dokumentum űrlap modulban.

Beszéljünk egy olyan fontos dologról, mint a cirill attribútumok. Annak ellenére, hogy az 1C kétnyelvű környezet, és minden orosz módszernek van angol megfelelője, előbb-utóbb a cirill attribútumhoz kell fordulnia. Ha PHP-ben vagy VBSCriptben ez nem okoz problémát,

Set Con = CreateObject("v81.COMConnector") Set v8 =Connect("Kapcsolódási karakterlánc") Set AccountsManager = v8.Documents.Accounts.... Set AccountsRecord= AccountsManager.CreateItem() AccountsRecord.Account = ... .... AccountsWrite.Write()

Ekkor a python kód egyszerűen összeomlik egy szintaktikai hibával. Mit kell tenni? Szerkeszti a konfigurációt? Nem, csak használja a getattr és setattr metódusokat. Ha ezeknek a függvényeknek egy COM objektumot és egy cirill attribútumnevet adunk át, akkor ennek megfelelően kaphatunk és állíthatunk be értékeket:

#coding=cp1251 katalógus = getattr(V82.Katalógusok, "Személyes fiókok")

A következők fontosak: az attribútumneveket, valamint a függvény- és metódusparamétereket a cp1251 kódolásban kell átadni. Ezért a kódolási zavarok elkerülése érdekében célszerű a fájl elején deklarálni: #coding=cp1251. Ezt követően átadhatja a karakterláncokat anélkül, hogy aggódnia kellene a kódolásuk miatt. De! Az 1C-től kapott összes karakterlánc (a függvényhívások eredményei, kérések) UTF-8 kódolású lesz.

Példa egy olyan kódra, amely végrehajt egy lekérdezést az 1C környezetben, iterálja az eredményt, és elmenti az adatbázist SQLite-ba:

#coding=cp1251 q = """ SELECT PersonalAccounts.Code AS kód, PersonalAccounts.Building.Location.Name + ", " + PersonalAccounts.ShortAddress AS cím, PersonalAccounts.Subscriber.Name AS fio, PersonalAccounts.Division.Name AS psu, EXPRESS(CharacteristicsPersonal AccountsSliceLast. Value AS Directory.Territorial GridOrganizations).Név AS tso, PersonalAccounts.Building.Settlement.Name AS np,SzemélyesSzámlák.Épület.Utca.Name AScount,Személyes.Számla.Személyes.Aszm. Dression. Retor. Név mint mro referenciakönyvből Litsensation, mint arckifejezés a regiszter bal oldali kapcsolatáról A jelzés jellemzői. A szóközök (, vidicapiterizmus = érték (referenciakönyv. Vidcharacteric -grining orthoganization)) mint a regiszter jellemzői expozíció. = V82.NewObject( "Lekérdezés", q) kiválasztás = query.Execute().Choose() CONN = db.connect() CONN.query(models.Abonent).delete() while selection.Next(): abonent = modellek.Abonent() abonent.account = kiválasztás.kód.strip() abonent.code = kiválasztás.kód abonent.fio = kiválasztás.fio abonent.address = kiválasztás.cím abonent.psu = kiválasztás.psu abonent.tso = kiválasztás.tso abonent.source = u"ASRN" abonent.np = kiválasztás.np abonent.street = kiválasztás.utca abonent.house = kiválasztás.ház abonent.flat = kiválasztás.flat abonent.mro = Selection.mro CONN.add(abonent) CONN.commit()

Itt a CONN a kapcsolódási munkamenet az SQLite adatbázissal. Létrejön egy lekérdezési objektum, a szövege kitöltésre kerül. Amint fentebb megjegyeztük, a kérés szövegének cp1251-ben kell lennie, amelyhez a kódolást először deklarálják. A lekérdezés végrehajtása után minden előfizető törlődik az adatbázisból, nehogy duplikátumokat adjanak hozzá, majd egy ciklusban hozzáadják őket, és következik a végső véglegesítés.

A kérések kezelése során a következő szabályokat fedeztem fel.

A mezők kijelölésénél adjunk latin nevet, sokkal kényelmesebb lesz a getattr( helyett) szelektoron (dot) keresztül elérni őket.
- Csak primitív adattípusokat válasszon: karakterláncok, számok, dátumok és logikai értékek. Soha ne válasszon hivatkozásokat egy objektumra (dokumentumra, könyvtárra)! Ebben az összefüggésben abszolút nincs szükség hivatkozásokra, sőt káros is, mert a hivatkozás attribútumához vagy metódusához való bármilyen hozzáférés egy COM-kapcsolaton keresztüli kérést eredményez. Ha ciklusban éri el a hivatkozás attribútumait, az rendkívül lassú lesz.
- Ha kiválaszt egy Dátum mezőt, az PyTime objektumként jelenik meg. Ez speciális típus adatok a dátum-idő átviteléhez COM-kapcsolaton keresztül. Nem olyan kényelmes vele dolgozni, mint a szokásos dátumidővel. Ha ezt az objektumot átadja az int()-nek, akkor egy időbélyeg jelenik meg, amelyből a fromtimestamp() metódussal lekérheti a datetime-ot.

Most nézzük meg, hogyan készülnek a nyomtatott dokumentumok. A helyzet az, hogy a fogyasztónak lehetőséget kell adni arra, hogy letöltse az előre elkészített dokumentumokat, például fizetési bizonylatot vagy egyeztető aktust. Ezeket a dokumentumokat az 1C-ben állítják elő a megállapított követelményeknek megfelelően, megvalósításuk Pythonban sok időt vesz igénybe. Ezért jobb a dokumentumokat 1C-ben generálni és elmenteni excel formátumban.

Tehát az egyeztetési aktus dokumentumot egy speciális generálja külső feldolgozás. Azok számára, akik nem ismerik az 1C terminológiát: a feldolgozás egy autonóm program, amely saját modullal, űrlapokkal, sablonokkal rendelkezik, amelyeket az 1C környezetben való futtatásra terveztek. Inicializálni kell a feldolgozást, ki kell tölteni az adatait, és meghívni egy függvényt, amely visszaküldi nekünk az 1C-ben való megtekintésre szánt táblázatos dokumentumot. Ezt a dokumentumot Excel formátumban kell elmenteni és a szerverre másolni vagy az adatbázisba írni.

Link = getattr(V82.Catalogs, "SystemReports").FindByDescription("Elen ellenőrzési törvény") nav_url = V82.GetURL(link, "Report") name = V82.ExternalReports.Connect(nav_url) ExternalReports = V82.CreateReport (név) setattr(Külső Jelentés, "Személyes fiók", hivatkozás) table_doc = KülsőJelentés.GetDoc() elérési út = V82.GetTempFileName("xls") table_doc.Write(elérési út, V82 .SpreadsheetDocumentFileType.XLS) jelentés = model. .account = referencia.Code.strip() report.type = u"act" report.document = open(elérési út, "rb").read() CONN.add(jelentés)

A fenti részlet a következőket teszi. A dokumentumot alkotó feldolgozás össze van kapcsolva. A feldolgozás beépíthető a konfigurációba, tárolható lemezen vagy 1C adatbázisban (valamilyen könyvtárban). Mivel a feldolgozás gyakran változik, hogy a konfiguráció ne frissüljön minden alkalommal, a leggyakrabban változó feldolgozás a „ReportsSystem” könyvtárban, az „értéktár” típusú Report nevű attribútumban kerül tárolásra. A feldolgozás inicializálható úgy, hogy kirakjuk az adatbázisból a lemezre és betöltjük, vagy a GetURL() metódussal, amelybe át kell adni egy hivatkozást a könyvtárelemre és az attribútum nevére. Az eredményül kapott feldolgozó objektumhoz attribútumértékeket rendelünk, meghívjuk az exportált GetDoc() függvényt, és kapunk egy táblázatkezelő dokumentumot, amelyet egy ideiglenes Excel fájlba mentünk. Ennek a fájlnak a tartalma az SQLite adatbázisba van írva.

Az utolsó dolog, amit figyelembe kell venni, az adatok programozott bevitele az 1C-be. Tételezzük fel, hogy kötelező az előfizetőktől származó jelzések megadása. Ehhez elegendő létrehozni és lefolytatni a „Bizonyítási aktus” dokumentumot:

#coding=cp1251 acts = getattr(V82.Dokumentumok, "Tanússágfelvételi aktus") act = acts.CreateDocument() setattr(act, "Indication", 1024.23) setattr(act, "előfizető", "Ivanov") # Kitöltés egyéb részletekben. ...act.Write()
Most az adatbevitel automatizált.

Tehát felvázoltam egy módszert, amely az adatok programozott fel- és letöltésén alapul COM-kapcsolaton keresztül. Ez a módszer közel egy éve működik sikeresen szervezetemben. Az 1C-ből kialakított bázis 3 fizetési rendszert, internetes elfogadást (kártyás fizetés az interneten keresztül), valamint személyes számlát szolgál ki. Ezenkívül különféle szkriptek csatlakoznak az adatbázishoz, hogy automatizálják a rutint.

A módszer hiányosságai ellenére (a COM-kapcsolat lassú sebessége) általában stabilan működik. Adataink vannak platformfüggetlen formában (SQLite), amelyekkel bármilyen nyelvről dolgozhatunk. A kód fő része pedig Pythonban van írva, ami azt jelenti, hogy számos olyan eszköz és technika áll rendelkezésre, amiről 1C-ben még csak álmodni sem lehet.

Ez az egyik lehetséges módjai kölcsönhatás az 1C-vel. Biztos vagyok benne, hogy nem új, és valószínűleg valaki már tesztelte és optimalizálta. Igyekeztem azonban a folyamat minél több részletét felvázolni, hogy megkíméljem Önt azoktól a buktatóktól, amelyekbe én magam léptem bele.

Sok szerencsét kívánok mindenkinek, és ne feledje, hogy az 1C nem olyan ijesztő, mint ahogy le van festve!

A .NET Framework 4.x-re épített külső programban meg kell tekintenie a kiválasztott dokumentumok listáját. A felhasználó kiválasztja a dokumentum típusát, majd létrejön az adatbázisban lévő dokumentumok listája. Megjelenítési adatként a dokumentumhivatkozás-ábrázolást használják.

A következő képernyőkép a program főablakát mutatja.

Lehetőségek kihasználása Automation Client/Server, bármilyen alkalmazásból csatlakozhatunk az 1C:Enterprise 8.x infobázishoz és megkaphatjuk a szükséges adatokat. Sőt, a .NET-keretrendszer képességeit kihasználva a platform programozási nyelvének szintaxisát használhatjuk a kapcsolat COM-objektumán keresztüli munkához.

Mielőtt közvetlenül a program megvalósításához kezdene, nézzük meg a .NET 4.x néhány hasznos funkcióját, amelyek megkönnyítik az Automation Client/Serverrel való munkát.

.NET 4.x és a "dinamikus" típus

A .NET 4.x platform verziójában lehetővé vált a használat dinamikus típus"dinamikus" adatok. További információ az adattípus használatának funkcióiról. olvassa el az alábbi linket.

Általánosságban elmondható, hogy a "dinamikus" típus lehetővé teszi a "COM" típusú objektumokkal való egyszerűsített munkát. Segítségével egy objektum tulajdonságaihoz és módszereihez való hozzáférés "ponton keresztül" történik.

Nem emlékeztet semmire? A kód cirill betűt tartalmaz, és nagyon hasonlít a platform programozási nyelvének szintaxisához.

Végrehajtás

A program végrehajtása meglehetősen egyszerű. Az infobase kapcsolódási karakterláncának megadásával a felhasználó kiválasztja a dokumentum típusát, amely után az összes dokumentum listája készül.

A kapcsolat létrehozásához a "GetConnection()" metódust használjuk, amely a létrehozott COM-kapcsolatot egy globális változóba menti. Program kód A módszer a következő képernyőképen látható:

A lista kibontása előtt a "DropDown" esemény aktiválódik, amely kiválasztási listát hoz létre a dokumentum metaadatainak gyűjteménye alapján:

Miután a felhasználó kiválasztott egy értéket a legördülő listából, a " SelectedIndexChanged". A kezelő program kódja a következő:


Ez minden! Ha a csatlakozási karakterlánc helyes és a "v82connector" COM objektum telepítve van a gépen, akkor amikor kiválasztunk egy dokumentumot a metaadatok listájából, látni fogjuk teljes lista a kiválasztott típusú dokumentumokat.

Eredmények

A program elkészült. Amint látjuk, az 1C:Enterprise infobázisból adatok beszerzésére szolgáló alkalmazás fejlesztésekor részben használhatjuk az általa ismert szintaxist. Az alábbi linkről letöltheti forrás fájlok létrehozott programprojektet.

8.41 Egy objektumtulajdonság típusának meghatározásakorXDTO A típusinformáció a következőket tartalmazza:

1. csak típusnév

2. típusnév és névtérnév

3. írja be a nevét és az XDTO csomag nevét

4. típusnév és XDTO gyári név

8.42 MenedzserWEB szolgáltatások megoldják a problémát:

1. kapcsolatkészlet kezelése infobázisokkal

2. WSDL szolgáltatásleírások támogatása, a SOAP protokoll megvalósítása

3. WEB alkalmazások támogatása

4. helyes válaszok 1,2

5. helyes válaszok 2.3

6. Az 1,2,3 válaszok helyesek

8.43 Konfigurációs objektum" MI.A szolgáltatáshoz" a következőkre szolgál:

2. a webszolgáltatásokhoz való hozzáférés szervezése statikus linken keresztül

3. ennek az információs bázisnak az exportálási funkcióját

8.44 Konfigurációs objektum" WSLink"a következőkre használják:

1. a webszolgáltatásokhoz való dinamikus hozzáférés megszervezése

2. felé irányuló fellebbezések szervezéseweb-szolgáltatások, de statikus link

3. ennek az információs bázisnak az exportálása

8.45 Ha a műveletet megvalósító függvényWEB szolgáltatás értéket ad vissza. Egy ilyen érték (a megfelelő konfigurációs objektum beállításakor) a következő típusú:

4. XML elem

5. tárgy vagy értékXDTO

6. Az 1., 2., 3. válasz helyes

8.46 Amikor hivatkozikWEB szolgáltatás statikus linken keresztül, a műveletek sorrendje a következő:

1. wsdl leírások lekérése, kapcsolat felállítása (proxy létrehozása), szervizművelet hívása

2. kapcsolat létrehozása (proxy létrehozása), szolgáltatási művelet hívása

8.47 Amikor hivatkozikWEB szolgáltatás dinamikus linken keresztül, a műveletek sorrendje a következő:

1. fogadásawsdl leírások, kapcsolat létrehozása (proxy létrehozása), szolgáltatási művelet elérése

2. kapcsolat felállítása (proxy létrehozása), szolgáltatási művelet hívása

3. szervizhívási művelet

8.48 Ha a műveletet megvalósító függvényWEB szolgáltatás, valamilyen értéket vesz fel paraméterként. Egy ilyen érték (a megfelelő konfigurációs objektum beállításakor) a következő típusú:

4. XML elem

5. tárgy vagy értékXDTO

6. Az 1,2,3 válaszok helyesek

8.49 Hogyan határozható meg, hogy egy adott alkalmazásobjektum mely cseretervei határozzák meg az automatikus regisztrációt?

1. Az objektumszerkesztő ablakban az "Adatcsere" szakaszban

2. Az adott objektum "Tulajdonságok paletta" ablakának meghívásával

3. Az objektum "További" ablakának meghívásával ("Cseretervek" lap)

4. A fentiek mindegyike igaz

5. Az 1. és 3. válasz helyes

8.50 Alkalmazásobjektumok esetén a konfigurációs objektum szerkesztő ablakban, az "Adatcsere" lapon, ...

1. objektumok, amelyek megváltoztatásakor ennek az objektumnak a cserébe kell kerülnie

2. objektumok, amelyeket ki kell cserélni az objektum megváltoztatásakor

3. cseretervek, a csere végrehajtásakor ez az objektum megváltozik

4. csereterveket, amelyek figyelembe veszik az objektum változásait

8.51 SzerkesztésOLE- tárgyakat hajtanak végre:

1. A platformba beépített táblázatszerkesztő

2. A platformba beépített OLE objektumszerkesztő

3. Alkalmazás kapcsolódóOLE-tárgy

8.52 Külső fájlok táblázatos dokumentumok:

1. Legyen XML-kiterjesztés

2. Legyen hosszabbításMXL

3. Bármilyen kiterjesztéssel rendelkezhet

4. Ne létezzen. Az összes táblázatkezelő dokumentum be van építve a konfigurációba

8.53 Automatizálás-szerver "1C:Enterprise 8"...

1. hozzáférést biztosít a globális környezet összes tulajdonságához és metódusához

2. hozzáférést biztosít további tulajdonságokhoz és módszerekhez az automatizálási módban végzett munkavégzéshez

3. lehetővé teszi az 1C:Enterprise8 rendszer alkalmazásának kezelését más alkalmazásokból, valamint az interaktívhoz hasonló műveletek végrehajtását

4. minden adott válasz helyes

1. lehetetlen

2. teljes mértékben szoftveresen implementálva

3. az "Exchange Plans" konfigurációs objektum segítségével valósított meg

4. a platformba épített Exchange varázsló által megvalósított

9. Alkalmazási megoldás karbantartása

9.1 Milyen sorrendben történik a platform és a konfiguráció telepítése?

1. Először telepítenie kell a platformot, majd telepítenie kell a konfigurációt a sablon alapján

2. Először telepítenie kell a konfigurációt, majd a platformot

3. A telepítés sorrendje nem számít

9.2 Az "1C:Enterprise 8" platform normál telepítése...

1. javasolja külön telepítés minden felhasználói számítógépen további platformfrissítések hajthatók végre automatikusan a szerverről

2. minden felhasználói számítógépre külön telepítést jelent, további platformfrissítések csak minden felhasználói számítógépen hajthatók végre

3. szerverre történő telepítést foglal magában a szükséges fájlok további másolásával a felhasználók számítógépére, további platformfrissítések automatikusan végrehajthatók a szerverről

4. magában foglalja egy helyi verzió telepítését egy felhasználó számára

9.3 Mit kell tenni a technológiai platform frissítéséhez az 1C:Enterprise normál telepítése során?

1. Konfigurátor módban adja meg a frissítési fájlt

2. Futtassa a disztribúcióhoz mellékelt telepítőt

3. Adja meg a kézbesítési fájlt konfigurátor módban

9.4 Adminisztratív telepítés...

1. magában foglalja a platform telepítését minden egyes felhasználói számítógépre

2. magában foglalja a platform telepítését az adminisztrátor által egy számítógépre, a végrehajtható fájlok további másolásával a felhasználói munkaállomásokra helyi hálózat

3. magában foglalja a konfiguráció telepítését az 1C:Enterprise szerveren, adminisztrátori hozzáférési jogokkal rendelkező felhasználó meghatározásával

9.5 A technológiai platform frissítése során az 1C:Enterprise...

1. a rendszergazdának csak frissítenie kell a platformot az adminisztrációs telepítési helyen, a platform frissítését a címen helyi számítógépek a felhasználók elkészíthetik

2. A rendszergazdának frissítenie kell a platformot az adminisztratív telepítés helyén és a helyi hálózat összes számítógépén, a felhasználóknak nincs joguk frissíteni.

3. Az adminisztrátornak csak a helyi hálózaton lévő számítógépeken kell frissítenie a platformot, a felhasználóknak ugyanilyen lehetőségük van

4. Az adminisztrátornak csak a helyi hálózaton lévő számítógépeken kell frissítenie a platformot, a felhasználóknak erre nincs lehetőségük

9.6 Lehetséges-e az 1C: Enterprise in normál telepítése során? kliens-szerver verzió, a technológiai platform különböző kiadásaihoz tartozó kliens és szerver alkalmazások munkája?

1. Engedélyezett

2. Nem engedélyezett, frissíteni kell a szerveralkalmazást és a kliens alkalmazásokat is

3. Megengedett, szükséges a szerver alkalmazás frissítése

9.7 Kötegelt mód használata...

1. Beengedi automatikus üzemmód töltse fel/le, tesztelje és javítsa az információs bázist

2. lehetővé teszi a program mindkét módjának interaktív beavatkozás nélkül történő futtatását

3. lehetővé teszi szintaktikai ellenőrzés és konfiguráció ellenőrzés végrehajtását

4. I. és 2. helyes válasz

5. helyes válasz 1, 2 és 3

9.8 Indítási lehetőségek innen parancs sor 1C: Vállalati...

1. határozzuk meg információs bázis, user, his, jelszó, indítási mód, meghatározott műveletek végrehajtásának szabályai külső fájlban

2. definiálja a parancssorban megadott infobázist, felhasználót, ő jelszavát, indítási módot, a megadott műveletek végrehajtásának szabályait

3. Verpa I-re és 2-re válaszol

4. nincs helyes válasz

9.9 Mit tesz lehetővé a parancssor?

Az 1C:Enterprise rendszer egy külső alkalmazással OLE Automation szerverként indítható, és hozzáférést biztosít az összes attribútumhoz és metódushoz. globális kontextusban(Lásd: "Végrehajtási környezet szoftver modul Ezen kívül az 1C:Enterprise OLE szerver rendelkezik további módszerek, amely használható operátorok sorozatának végrehajtására vagy a beépített 1C:Enterprise nyelven megadott kifejezések kiértékelésére.

Az 1C:Enterprise rendszer OLE Automation szerverként történő elindításához külső alkalmazásból a következő műveletsort kell végrehajtani:

  • egy objektum OLE azonosítóval jön létre:
    • V1СEnterprise.Application - független kulcsverzió;
    • V77.Alkalmazás - verziófüggő kulcs;
    • V77S.Application - verziófüggő kulcs, SQL verzió;
    • V77L.Application - verziófüggő kulcs, helyi verzió;
    • V77M.Application - verziófüggő kulcs, hálózati verzió.
  • az 1C:Enterprise rendszer inicializálása az Initialize metódussal történik.
  • Az 1C:Enterprise rendszer attribútumait és metódusait OLE Automation szervernek hívják

Megjegyzés
Mivel az 1C:Enterprise program egyben OLE Automation szerver és OLE Automation kliens is, az 1C:Enterprise-ből lehetőség van az 1C:Enterprise egy másik példányához (például egy másik konfigurációhoz) hozzáférni adatcsere céljából. Alapvetően minden modern szoftvertermék támogatja az OLE Automation mechanizmust, ez különösen érvényes az MS Office-ra, MS FoxPro-ra és az ezekre írt alkalmazásokra, DAO-ra stb., így az 1C:Enterprise program teljes mértékben integrálható velük.
.

Megjegyzés
Az 1C:Enterprise programhoz az OLE Automationon keresztül hozzáférő külső programok nem lokalizált verziói helytelenül értelmezhetik az összesített adattípusok orosz objektumazonosítóit, például a címtáradatokat. Ez a megjegyzés nem vonatkozik azokra az MS Office termékekre és programokra, amelyek OLE objektumokat használnak az OLE objektumok elérésének nyelveként. Microsoft Visual alapvető. Lokalizált verziók használata javasolt szoftver termékek, vagy használjon cirill karakterek nélküli azonosítókat a konfigurációban. Az 1C:Enterprise rendszer összesített adattípusainak attribútumainak és metódusainak külső alkalmazásokból való eléréséhez ajánlott az angol szinonimák használata.
.

Megjegyzés
Az összes létrehozott OLE Automation objektum addig létezik, amíg van egy változó, amely tartalmazza az objektum értékét. Következésképpen maga az 1C: Enterprise program, mint OLE objektum Egy másik program automatizálása a számítógép memóriájában marad mindaddig, amíg az azt objektumként tartalmazó változó értéke nem törlődik vagy megváltozik
.

Az 1C:Enterprise rendszer attribútumai OLE Automation szerverként

Rendszer 1C:Enterprise, ahogy az OLE Automation szerver biztosítja teljes hozzáférés az én globális kontextusban(lásd "Programegység végrehajtási kontextus"). Ezért az 1C:Enterprise OLE szerverobjektum attribútumai lehetnek: rendszerállandók, a konfigurátorban megadott értékek állandók, transzferek, regisztereket, számítási típusok, számítási típusok csoportjai, valamint a globális programmodulban deklarált változók -val kulcsszó Export.

Az 1C vizsga 08.13. kérdése: Platform szakember. Egy olyan objektum létrehozásához, amelyet az egyik 1C:Enterprise 8 adatbázisból használunk egy másik 1C:Enterprise 8 információs bázis eléréséhez az OLE-n keresztül, használja a konstruktort:

  1. Új alap (InitString)
  2. Új OLEObject
  3. Új COMObject
  4. Egy ilyen objektum létrehozása más módon történik.
A helyes szintaxis a harmadik

Az 1C vizsga 08.51. kérdése: Platform szakember. Az OLE-objektumok szerkesztése:
  1. Beépített táblázatszerkesztő
  2. Platform beépített OLE objektumszerkesztő
  3. Egy OLE objektumhoz társított alkalmazás
A helyes válasz a harmadik, lásd az OLE objektum definícióját.
Az 1C vizsga 08.53. kérdése: Platform szakember. Automatizálási szerver "1C:Enterprise 8"...
  1. hozzáférést biztosít a globális kontextus összes tulajdonságához és metódusához
  2. hozzáférést biztosít további tulajdonságokhoz és metódusokhoz az automatizálási módban végzett munkavégzéshez
  3. lehetővé teszi az 1C:Enterprise 8 rendszeralkalmazás kezelését más alkalmazásokból, valamint az interaktívhoz hasonló műveletek végrehajtását
  4. minden adott válasz helyes
A helyes válasz a negyedik - az automatizálás szinte teljes hozzáférést biztosít az alkalmazáshoz.
Az 1C vizsga 08.10 kérdése: Platform szakember. Egy adatbázishoz COM-on keresztüli csatlakozáskor meghívott eljárásban nem használhatja:
  1. DocObject=Doc.CreateDocument()
  2. Form.Open()
  3. Request=Új kérés
  4. Nincs helyes válasz
A helyes válasz a második.

Az 1C vizsga 08.03 kérdése: Platform szakember. Amikor az 1C:Enterprise 8 adatbázishoz az OLE-n keresztül hozzáfér, egy eljárás végrehajtásra kerül - a "Rendszer kezdetén" eseménykezelő meghatározva ...

  1. alkalmazás modulban
  2. a külső csatlakozó modulban
  3. az általános modulban
  4. az OLE modulban
A helyes válasz az első, az Automation látja az alkalmazás modult.
Az 1C vizsga 08.06 kérdése: Platform szakember. Az 1C:Enterprise 8 adatbázis elérésekor a COMConnectoron keresztül egy eljárás végrehajtásra kerül - a "Rendszer kezdetén" eseménykezelő meghatározva ...
  1. alkalmazás modulban
  2. a külső csatlakozó modulban
  3. az általános modulban
  4. a COM modulban
A helyes válasz a második, csak a "Külső kapcsolat" attribútummal rendelkező modulok érhetők el COM-hoz.

Betöltés...
Top