Eksterne datoteke tabele.

Hi Khabravchans!

U ovom članku želim govoriti o tome kako se uspostavlja integracija sa 1C platformom u mojoj organizaciji. Ono što me je navelo na ovo je skoro potpuno odsustvo tehničke informacije o ovoj temi. Čitajući razne članke i izvještaje na temu povezivanja 1C sa bilo kojim informacionim sistemom, uvjeravate se iznova i iznova da su svi oni marketinške, demonstracije, a nikada tehničke prirode, odražavajući problem i suštinu njegovog rješenja.

Upozoravam vas da metoda ni na koji način ne tvrdi da je univerzalna. Budući da postoji mnogo samih 1C konfiguracija, i informacioni sistemi, jezici i platforme - čak i više, broj mogućih kombinacija je ogroman. Moj cilj je pokazati jedno moguće rješenje.


Kao jezik koji će se integrisati sa 1C, izabrao sam Python. Veoma je pogodan za automatizaciju procesa. Ovo je olakšano minimalističkom sintaksom (kod se kuca vrlo brzo), bogatom standardnom bibliotekom (manje potrebe za modulima trećih strana), cross-platformom - s velikom vjerovatnoćom, kod napisan u Linix OS-u će uspješno raditi u Windows.

Za početak ću iznijeti podatke s kojima ćemo raditi. Organizacija - kompanija za opskrbu električnom energijom u regiji Dalekog istoka - opslužuje oko 400 hiljada pretplatnika, baza je 1C na samopisnoj konfiguraciji. Za svakog pretplatnika pohranjuju se njegova plaćanja, obračuni, potrošene usluge i šeme obračuna, mjerni uređaji, očitanja i mnogi drugi podaci.

Jednom u organizaciji postojao je program napisan u Delphiju koji koristi MSSQL/Firebird kao bazu podataka. U tim slavnim vremenima bilo je moguće spojiti se na bazu podataka koristeći bilo koji jezik i izvršiti mnoge radnje - birati pretplatnike dužnika, primati uplate, snimati očitanja instrumenta. Nije iznenađujuće da kolekcija skripti koje automatizuju rutinu stalno raste. Programeri su mogli izvršiti bilo koju radnju bez otvaranja samog programa.

Nažalost, s prijelazom na 1C, freebie je završio - više se nije bilo moguće izravno povezati s bazom podataka. Općenito, sama 1C platforma je nedjeljiva i slabo je integrirana s drugim sistemima. To je, kako kažu, stvar za sebe. Prilikom učitavanja podataka u 1C, treba imati na umu da ih odatle neće biti tako lako izdvojiti. Ali s obzirom na činjenicu da je organizacija bila obavezna da implementira sisteme plaćanja i Personal Area, moralo se pronaći rješenje.

Glavni zadaci sa kojima sam se suočio bili su mogućnost brzog dobijanja podataka o određenom lični račun- Puno ime, adresa, mjerni uređaji, očitanja instrumenata, plaćanja, naknade. Plus, formiranje dokumenata - čin pomirenja, potvrda o uplati. Dakle, ne postoji mogućnost direktne veze s bazom podataka - svi koji su pregledali 1C bazu podataka na SQL serveru vidjeli su da je to teško shvatiti u masi tabela poput aaa1, aaa2. A graditi upite s takvim imenima tabela i polja jednostavno je nerealno. Osim toga, mnoge 1C tablice (posebno one najvažnije, kao što su rez posljednjeg, ravnoteže i okretanja) su virtualne i razbacane su po različitim fizičkim tablicama, okupljajući se u višestruke spojeve. Ova metoda nije prikladna.

1C platforma pruža mogućnost povezivanja na nju putem COM veze. Kao i mnogi Windows programi, tokom instalacije 1C, dva COM objekta se registruju u sistemu - Automation Server i COM Connector. Možete raditi sa oba objekta koristeći jezik koji podržava COM tehnologiju.

Objekt Automation Server je 1C aplikacija koja se gotovo ne razlikuje od obične klijentske aplikacije. Razlika je u tome što pored toga postoji mogućnost programske kontrole instance aplikacije. Prilikom rada sa objektom COM Connector, pokreće se lagana verzija 1C aplikacije u kojoj nisu dostupni obrasci, kao i funkcije i metode vezane za sučelje i vizuelni efekti. Sama aplikacija se pokreće u režimu "Spoljna veza". Inicijalizacija globalnih varijabli (na primjer, definiranje trenutni korisnik i njegove postavke) moraju se izvršiti u 1C eksternom priključnom modulu. Ako se u načinu vanjske veze pozove funkcija u kodu koja nije dostupna u ovom načinu rada, bit će izbačen izuzetak (koji će biti proslijeđen našoj python skripti). Pozivi nesigurnih funkcija trebaju biti uokvireni konstrukcijama oblika

#Ako NIJE vanjska veza, onda upozorenje("Bok!"); #EndIf

Budući da je rad sa COM objektima tehnologija samo za Windows, nije iznenađujuće što nije uključena u standardnu ​​Python distribuciju. Morat ćete instalirati ekstenziju - skup modula koji pružaju svu potrebnu funkcionalnost za programiranje pod Windowsom u Pythonu. Može se preuzeti kao već sastavljen exe instalater. Samo proširenje omogućava pristup registru, uslugama, ODBC, COM objektima itd. Alternativno, možete odmah instalirati ActiveState Python distribuciju, u kojoj Win32 ekstenzija izlazi iz kutije.

Neko vrijeme sam eksperimentisao sa COM vezom u razvoju web aplikacija, posebno ličnog naloga. Identificirani su sljedeći nedostaci:

COM veza je spora. Niske performanse su dobro poznati minus COM tehnologije.
- Proces uspostavljanja veze sa 1C, ovisno o konfiguraciji, može trajati od 1 do 8 sekundi (u mom slučaju - 6 sekundi). Nepotrebno je reći da će uspostavljanje veze za svaki zahtjev uzrokovati učitavanje svake stranice za 8 sekundi.
- Pošto python web aplikacije rade kao nezavisni serveri, prethodna tačka se može nadoknaditi pohranjivanjem veze u neku globalnu varijablu i vraćanjem u slučaju greške. Kako održati vezu u PHP-u, iskreno, još nisam razmišljao.
- Izgubljena web aplikacija za više platformi.

Na osnovu gore navedenih tačaka, odlučeno je da se promijeni princip interakcije, podijelivši ga na 2 dijela - prvi zavisan od platforme (Windows), istovar podataka 1C u bilo koji prikladan format, a drugi, nezavisan od platforme, sposoban za rad sa podacima bez sumnje u 1C u principu.

Strategija akcije je sljedeća: python skripta se povezuje na 1C, izvršava potrebne upite i prenosi podatke u SQLite bazu podataka. Možete se povezati na ovu bazu podataka iz Python, PHP, Java. Većina naših projekata je na Python-u, a pošto mrzim pisati sirove SQL upite ručno, sav rad sa SQLite bazom podataka obavlja se preko SQLAlchemy ORM. Bilo je potrebno samo opisati strukturu podataka baze podataka u deklarativnom stilu:

Iz sqlalchemy.ext.declarative import declarative_base iz sqlalchemy import Column, Integer, Numeric, DateTime, Unicode, Boolean, LargeBinary, ForeignKey Base = declarative_base() class Abonent(Base): __tablename__ = "abonents Column_ Intey = " Tačno) račun = Kolona(Unicode(32), indeks=Tačno) kod = Kolona(Unicode(32)) adresa = Kolona(Unicode(512)) fio = Kolona(Unicode(256)) izvor = Kolona(Unicode(16) ) psu = Stupac(Unicode(256)) tso = Stupac(Unicode(256)) np = Stupac(Unicode(256)) street = Kolona(Unicode(256)) house = Stupac(Integer) stan = Stupac(Integer) mro = Kolona(Unicode(256)) klasa Plaćanje(Osnova): __tablename__ = "plaćanja" # i tako dalje...

Sada je dovoljno uvesti ovaj modul u bilo koji python projekat i možete raditi s podacima.

Predviđam vaše pitanje - "zašto SQLite"? Glavni razlog je taj što je baza podataka potrebna samo za čitanje, tako da ne treba da brinemo o problemima sa pisanjem u SQLite. Drugo, format ovog DBMS-a je zgodan - pogodnije ga je pregledati (ima ih mnogo besplatne komunalije, uključujući super proširenje za FireFox). Treće, u nekim slučajevima je bilo potrebno pristupiti pretplatnicima sa onih mašina na kojima nema veze sa MySQL serverom. U ovom slučaju, dovoljno je kopirati datoteku SQLite baze podataka i na ovoj mašini ćete imati pristup svim informacijama.

Istovar se vrši jednom dnevno noću. Unos podataka u 1C može se automatizirati na isti način. Na primjer, potrebno je zabilježiti očitanja koja su pretplatnici ostavili na web stranici ličnog računa. U ovom slučaju ponovo se povezujemo na 1C i programski kreiramo i provodimo dokument „Akt uzimanja svjedočenja“. Navest ću kod u nastavku.

Rad sa COM objektima u Pythonu je pomalo neobičan. Prvo, gubi se "pythonicity" koda - pravila za imenovanje varijabli i funkcija u 1C, blago rečeno, ne odgovaraju Zen of Python. Drugo, svi znaju da se 1C objekti često nazivaju ćiriličnim znakovima, što će uzrokovati probleme pri razvoju u Pythonu... ali oni su rješivi. Predlažem da pogledate kod:

Import pythoncom import win32com.client V82_CONN_STRING = "Srvr=v8_server;Ref=v8_db;Usr=korisničko ime;Pwd=megapass;" pythoncom.CoInitialize() V82 = win32com.client.Dispatch("V82.COMConnector").Connect(V82_CONN_STRING)

Kao što možete vidjeti iz koda, klijent je inicijaliziran za rad sa 1C. COM objekt je definiran imenom "V82.COMConnector". Imajte na umu da ovo ime vrijedi za V8.2 platformu, ako imate verziju 8.1, tada će ime biti "V81.COMConnector".

Na inicijaliziranom klijentu pozivamo metodu Connect(), prosljeđujući joj niz veze. Niz se sastoji od imena servera, baze podataka, korisnika i lozinke. Rezultirajući V82 objekt pohranjuje vezu s 1C aplikacijom. Nema metodu Disconnect() ili nešto slično. Da biste prekinuli vezu sa bazom, dovoljno je ukloniti objekat iz memorije pomoću funkcije del () ili dodijeliti varijablu None.

Imajući objekt, možete pristupiti svim poljima i metodama globalnog konteksta 1C, raditi s univerzalnim objektima kao što su TabularDocument, TableValues, itd. Važno je napomenuti da kada radite preko COM veze, 1C radi u režimu "Spoljna veza". Ne uključuje nikakve funkcije za interaktivni rad, kao što su iskačući dijalozi, obavijesti i, što je najvažnije, obrasci. Siguran sam da ćete više puta proklinjati programere konfiguracije jer su umotali najvažniju funkcionalnost u Button1Press() proceduru u modul obrasca dokumenta.

Hajde da pričamo o tako važnoj stvari kao što su atributi ćirilice. Unatoč činjenici da je 1C dvojezično okruženje i da postoji engleski ekvivalent za svaku rusku metodu, prije ili kasnije morat ćete se obratiti atributu ćirilice. Ako u PHP-u ili VBSCript-u to neće uzrokovati probleme,

Postavi Con = CreateObject("v81.COMConnector") Postavi v8 =Con.Connect("Connection string") Postavi AccountsManager = v8.Documents.Accounts.... Postavi AccountsRecord= AccountsManager.CreateItem() AccountsRecord.Account = ... .... AccountsWrite.Write()

Tada će se python kod jednostavno srušiti sa sintaksičkom greškom. sta da radim? Urediti konfiguraciju? Ne, samo koristite metode getattr i setattr. Dodavanjem COM objekta i imena ćiriličnog atributa ovim funkcijama, možete dobiti i postaviti vrijednosti u skladu s tim:

#coding=cp1251 katalog = getattr(V82.Katalozi, "Lični računi")

Važno je sljedeće: imena atributa, kao i parametri funkcija i metoda, moraju biti proslijeđeni u cp1251 kodiranju. Stoga, kako bi se unaprijed izbjegla zabuna kodiranja, ima smisla deklarirati ga na početku datoteke: #coding=cp1251. Nakon toga, možete proslijediti nizove bez brige o njihovom kodiranju. Ali! Svi nizovi primljeni od 1C (rezultati poziva funkcija, zahtjeva) bit će kodirani u UTF-8.

Primjer koda koji izvršava upit u 1C okruženju, ponavlja rezultat i sprema bazu podataka u SQLite:

#coding=cp1251 q = """ SELECT PersonalAccounts.Code AS kod, PersonalAccounts.Building.Location.Name + ", " + PersonalAccounts.ShortAddress AS adresa, PersonalAccounts.Subscriber.Name AS fio, PersonalAccounts.Division.Name AS psu, EXPRESS(KarakteristikePersonalAccountsSliceLast.Value AS Direktorij.Territorial GridOrganizations).Naziv AS tso, PersonalAccounts.Building.Namement.Name AS np,Lični računi.Zgrada.Ulica.Naziv AS ulica,PersonalAccounts.Accounts.HP.PersonalAccounts.Account. Dression. Retor. Ime kao mro iz priručnika Licenzacija kao facijalni prikaz lijevog spoja registra. Karakteristike signalizacije. Prostori (, vidikapiterizam = vrijednost (referentna knjiga. Vidcharacteric - brušenje ortoganizacije)) kao karakteristike ekspozicija = V82.NewObject( "Upit", q) odabir = query.Execute().Choose() CONN = db.connect() CONN.query(models.Abonent).delete() dok odabir.Next(): abonent = modeli.Abonent() abonent.account = selection.code.strip() abonent.code = selection.code abonent.fio = selection.fio abonent.address = selection.address abonent.psu = selection.psu abonent.tso = selection.tso abonent.source = u"ASRN" abonent.np = selection.np abonent.street = selection.street abonent.house = selection.house abonent.flat = selection.flat abonent.mro = selection.mro CONN.add(abonent) CONN.commit()

Ovdje je CONN sesija povezivanja sa SQLite bazom podataka. Objekat upita je kreiran, njegov tekst je ispunjen. Kao što je gore navedeno, tekst zahtjeva mora biti u cp1251, za koji je kodiranje prvo deklarirano. Nakon što se upit izvrši, svi pretplatnici se brišu u bazi podataka kako se ne bi dodavali duplikati, zatim se dodaju u ciklusu i slijedi konačno urezivanje.

Radeći sa zahtjevima, otkrio sam sljedeća pravila.

Kada birate polja, dajte im latinična imena, bit će mnogo zgodnije pristupiti im preko selektora (tačka), umjesto getattr().
- Odaberite samo primitivne tipove podataka: nizove, brojeve, datume i logičke vrijednosti. Nikada ne birajte veze do objekta (dokumenta, direktorija)! U ovom kontekstu, apsolutno vam nisu potrebne reference i čak su štetne, jer će svaki pristup atributu ili metodi reference rezultirati zahtjevom preko COM veze. Ako pristupite atributima veze u petlji, to će biti izuzetno sporo.
- Ako odaberete polje Datum, ono će biti vraćeno kao PyTime objekt. Ovo poseban tip podatke za prijenos datum-vrijeme u COM konekciju. Nije tako zgodno raditi s njim kao s uobičajenim datumom. Ako prosledite ovaj objekat int(), tada će biti vraćena vremenska oznaka iz koje možete dobiti datetime koristeći fromtimestamp() metodu.

Pogledajmo sada kako se formiraju štampani dokumenti. Činjenica je da potrošaču treba dati priliku da preuzme unaprijed pripremljene dokumente, na primjer, potvrdu o uplati ili akt usaglašavanja. Ovi dokumenti su generirani u 1C u skladu s utvrđenim zahtjevima, njihova implementacija u Python-u će potrajati dosta vremena. Stoga je bolje generirati dokumente u 1C i spremiti ih excel formatu.

Dakle, dokument akta pomirenja se generiše posebnim eksterna obrada. Za one koji nisu upoznati sa 1C terminologijom: obrada je autonomni program koji ima svoj modul, obrasce, predloške, dizajnirane za rad u 1C okruženju. Potrebno je inicijalizirati obradu, popuniti njene detalje i pozvati funkciju koja će nam vratiti tabelarni dokument namijenjen za pregled u 1C. Ovaj dokument mora biti sačuvan u Excel formatu i kopiran na server ili upisan u bazu podataka.

Link = getattr(V82.Catalogs, "SystemReports").FindByDescription("Elen's Verification Act") nav_url = V82.GetURL(link, "Report") name = V82.ExternalReports.Connect(nav_url) ExternalReport = V82.Creportate (ime) setattr(ExternalReport, "PersonalAccount", referenca) table_doc = ExternalReport.GetDoc() path = V82.GetTempFileName("xls") table_doc.Write(path, V82 .SpreadsheetDocumentFileType.XLS) report() report = modeli.Report. .account = reference.Code.strip() report.type = u"act" report.document = open(path, "rb").read() CONN.add(report)

Gornji isječak radi sljedeće. Povezana je obrada koja formira dokument. Obrada se može ugraditi u konfiguraciju, pohraniti na disk ili u 1C bazu podataka (u neku vrstu direktorija). S obzirom da se obrada često mijenja, kako se konfiguracija ne bi ažurirala svaki put, obrada koja se najčešće mijenja se pohranjuje u direktorij “ReportsSystem”, u atribut tipa “skladištenje vrijednosti” sa nazivom Report. Obrada se može inicijalizirati istovarom iz baze podataka na disk i učitavanjem, ili metodom GetURL() u koju trebate proslijediti vezu na element direktorija i ime atributa. Dodjeljujemo vrijednosti atributa rezultirajućem objektu obrade, pozivamo izvezenu funkciju GetDoc() i dobivamo dokument proračunske tablice koji se sprema u privremenu Excel datoteku. Sadržaj ove datoteke je upisan u SQlite bazu podataka.

Posljednja stvar koju treba razmotriti je programski unos podataka u 1C. Pretpostavimo da je potrebno unijeti indikacije od pretplatnika. Da biste to učinili, dovoljno je kreirati i provesti dokument "Akt izvođenja dokaza":

#coding=cp1251 acts = getattr(V82.Documents, "Akt uzimanja iskaza") act = acts.CreateDocument() setattr(act, "Indication", 1024.23) setattr(act, "Subscriber", "Ivanov") # Popunjavanje u ostalim detaljima..djeluj.Napiši()
Sada je unos podataka automatizovan.

Dakle, izložio sam metodu koja se zasniva na programskom učitavanju i preuzimanju podataka pomoću COM veze. Ova metoda uspješno djeluje u mojoj organizaciji skoro godinu dana. Baza, formirana od 1C, opslužuje 3 platna sistema, Internet acquiring (plaćanje karticama putem Interneta), kao i lični račun. Osim toga, razne skripte su povezane s bazom podataka kako bi se automatizirala rutina.

Unatoč nedostacima metode (spora brzina COM veze), općenito funkcionira stabilno. Imamo podatke u obliku nezavisnom od platforme (SQLite) sa kojima se može raditi iz bilo kog jezika. A glavni dio koda je napisan na Pythonu, što znači da su dostupni mnogi alati i tehnike o kojima ne možete ni sanjati u 1C.

Ovo je jedan od mogući načini interakcija sa 1C. Siguran sam da nije novo i vjerovatno je neko već testirao i optimizirao. Međutim, pokušao sam da iznesem što više detalja procesa kako bih vas spasio od zamki u koje sam i sam zakoračio.

Želim vam svima puno sreće i zapamtite da 1C nije tako strašan kao što je naslikan!

U eksternom programu izgrađenom na .NET Framework 4.x, trebate pogledati listu odabranih dokumenata. Korisnik bira vrstu dokumenta, a zatim se formira lista dokumenata u bazi podataka. Reprezentacija veze dokumenta se koristi kao podaci za prikaz.

Sljedeći snimak ekrana prikazuje glavni prozor programa.

Iskorištavanje mogućnosti Automation Client/Server, možemo se povezati na infobazu 1C:Enterprise 8.x iz bilo koje aplikacije i dobiti potrebne podatke. Štaviše, koristeći mogućnosti .NET Frameworka, možemo koristiti sintaksu programskog jezika platforme za rad kroz COM objekat veze.

Pre nego što pređemo direktno na implementaciju programa, pogledajmo neke korisne karakteristike .NET 4.x koje olakšavaju rad sa Automation Client/Server.

.NET 4.x i "dinamički" tip

U verziji .NET 4.x platforme postalo je moguće koristiti dinamički tip"dinamičkih" podataka. Možete saznati više o karakteristikama korištenja ove vrste podataka. pročitajte sljedeći link.

Uopšteno govoreći, "dinamički" tip vam omogućava da radite sa objektima tipa "COM" na pojednostavljen način. Uz njegovu pomoć, pristup svojstvima i metodama objekta vrši se "kroz tačku".

Zar te ne podsjeća ni na šta? Kod sadrži ćirilicu i vrlo je sličan sintaksi programskog jezika platforme.

Implementacija

Implementacija programa je prilično jednostavna. Unosom niza povezivanja infobaze korisnik bira vrstu dokumenta, nakon čega se generiše lista svih dokumenata.

Za uspostavljanje veze koristi se metoda "GetConnection()", koja kreiranu COM vezu sprema u globalnu varijablu. Programski kod metoda je prikazana na sljedećem snimku ekrana:

Prije nego što se lista proširi, pokreće se događaj "DropDown", koji generiše izbornu listu na osnovu zbirke metapodataka dokumenta:

Nakon što korisnik odabere vrijednost sa padajuće liste, " SelectedIndexChanged". Programski kod rukovaoca je sljedeći:


To je sve! Ako je niz veze ispravan i COM objekat "v82connector" je instaliran na mašini, onda kada odaberemo dokument sa liste metapodataka, videćemo puna lista dokumenata odabranog tipa.

Rezultati

Program je kreiran. Kao što vidimo, prilikom razvoja aplikacije za dobijanje podataka iz infobaze 1C:Enterprise, možemo djelomično koristiti sintaksu koja joj je poznata. Sa linka ispod možete preuzeti izvorne datoteke kreiran programski projekat.

8.41 Prilikom definiranja tipa svojstva objektaXDTO informacije o vrsti uključuju:

1. upišite samo ime

2. upišite ime i ime imenskog prostora

3. ime tipa i ime XDTO paketa

4. ukucajte ime i naziv fabrike XDTO

8.42 MenadžerWEB usluge rješavaju problem:

1. upravljanje pulom veza sa info bazama

2. podrška za opise WSDL servisa, implementacija SOAP protokola

3. Podrška za WEB aplikaciju

4. tačni odgovori 1,2

5. tačni odgovori 2.3

6. Odgovori 1,2,3 su tačni

8.43 Objekt konfiguracije" W.E.Na servis" se koristi za:

2. organizacija pristupa web servisima putem statičkog linka

3. eksport funkcionalnost ove infobaze

8.44 Objekt konfiguracije" WSVeza"koristi se za:

1. organiziranje dinamičkog pristupa web servisima

2. organizacija apelacija naweb-usluge ali statična veza

3. eksport funkcionalnosti ove infobaze

8.45 Ako je funkcija koja implementira operacijuWEB usluga vraća vrijednost. Takva vrijednost je definirana (kada se postavlja odgovarajući konfiguracijski objekt) kao da ima tip:

4. XML element

5. objekt ili vrijednostXDTO

6. Odgovori 1, 2, 3 su tačni

8.46 Kada se poziva naWEB servis putem statičkog linka, redoslijed radnji je sljedeći:

1. dobijanje wsdl opisa, postavljanje veze (kreiranje proxyja), pozivanje servisne operacije

2. postavljanje veze (kreiranje proxyja), pozivanje servisne operacije

8.47 Kada se poziva naWEB usluge putem dinamičke veze, redoslijed radnji je sljedeći:

1. primanjewsdl opisi, postavljanje veze (kreiranje proxyja), pristup operaciji usluge

2. postavljanje veze (kreiranje proxyja), pozivanje servisne operacije

3. poziv servisu

8.48 Ako je funkcija koja implementira operacijuWEB usluga, uzima neku vrijednost kao parametar. Takva vrijednost je definirana (kada se postavlja odgovarajući konfiguracijski objekt) kao da ima tip:

4. XML element

5. objekt ili vrijednostXDTO

6. Odgovori 1,2,3 su tačni

8.49 Kako možete odrediti koji planovi razmjene za određeni objekt aplikacije specificiraju automatsku registraciju?

1. U prozoru za uređivanje objekata, odjeljak "Razmjena podataka"

2. Pozivanjem prozora "Properties Palette" za dati objekat

3. Pozivanjem prozora "Dodatni" za ovaj objekat (kartica "Razmjena planova")

4. Sve gore navedeno je tačno

5. Odgovori 1 i 3 su tačni

8.50 Za objekte aplikacije, u prozoru za uređivanje objekata konfiguracije, na kartici "Razmjena podataka", ...

1. objekti, pri promeni kojih ovaj objekat treba da uđe u razmenu

2. objekti koje treba zamijeniti kada se ovaj objekt mijenja

3. planova zamjene, kada se zamjena izvrši, ovaj objekat će biti promijenjen

4. planove razmjene koji će uzeti u obzir promjene u ovom objektu

8.51 UređivanjeOLE-izvode se objekti:

1. Editor proračunskih tablica ugrađen u platformu

2. OLE uređivač objekata ugrađen u platformu

3. Aplikacija koja se odnosi naOLE-objekat

8.52 Eksterni fajlovi dokumenti sa tabelama:

1. Imati XML ekstenziju

2. Imajte produženjeMXL

3. Može imati bilo koji nastavak

4. Ne postoje. Svi dokumenti u tabeli su ugrađeni u Konfiguraciju

8.53 Automatizacija-server "1C:Enterprise 8"...

1. omogućava pristup svim svojstvima i metodama svog globalnog konteksta

2. pruža pristup dodatnim svojstvima i metodama za izvođenje radnji specifičnih za rad u automatiziranom načinu rada

3. omogućava upravljanje aplikacijom sistema 1C:Enterprise8 iz drugih aplikacija, kao i obavljanje radnji sličnih interaktivnim

4. svi dati odgovori su tačni

1. nemoguće

2. u potpunosti implementiran u softveru

3. implementirano korištenjem konfiguracijskog objekta "Planovi razmjene".

4. implementiran od strane čarobnjaka za razmjenu ugrađen u platformu

9. Održavanje aplikativnog rješenja

9.1 Koji je redosljed po kojem se platforma i konfiguracija instaliraju?

1. Prvo morate instalirati platformu, a zatim instalirati konfiguraciju na osnovu predloška

2. Prvo morate instalirati konfiguraciju, a nakon toga platformu

3. Redosled ugradnje nije bitan

9.2 Normalna instalacija platforme "1C:Enterprise 8"...

1. predlaže odvojena instalacija na svakom korisničkom računaru, dalja ažuriranja platforme mogu se izvršiti automatski sa servera

2. uključuje zasebnu instalaciju na svakom korisničkom računaru, dalja ažuriranja platforme mogu se izvršiti samo na svakom korisničkom računaru

3. podrazumeva instalaciju na server sa daljim kopiranjem potrebnih fajlova na računare korisnika, dalje ažuriranje platforme se može izvršiti automatski sa servera

4. uključuje instaliranje lokalne verzije za jednog korisnika

9.3 Šta je potrebno učiniti da se ažurira tehnološka platforma tokom normalne instalacije 1C:Enterprise?

1. U režimu konfiguratora navedite datoteku za ažuriranje

2. Pokrenite instalacijski program koji je uključen u distribuciju

3. Odredite datoteku isporuke u načinu konfiguratora

9.4 Administrativna instalacija...

1. uključuje instalaciju platforme na svaki pojedinačni korisnički računar

2. podrazumeva instalaciju platforme od strane administratora na jednom računaru, uz dalje kopiranje izvršnih fajlova sa njega na korisničke radne stanice lokalna mreža

3. uključuje instalaciju konfiguracije na 1C:Enterprise server, sa definicijom korisnika sa pravima administratorskog pristupa

9.5 Prilikom ažuriranja tehnološke platforme tokom administrativne instalacije 1C:Enterprise...

1. administrator samo treba da ažurira platformu na lokaciji administrativne instalacije, ažuriranje platforme na lokalni računari korisnici mogu napraviti

2. Administrator mora ažurirati platformu na mjestu administrativne instalacije i na svim računarima na lokalnoj mreži, korisnici nemaju pravo ažuriranja

3. Administrator mora ažurirati platformu samo na računarima u lokalnoj mreži, korisnici imaju istu mogućnost

4. Administrator mora ažurirati platformu samo na računarima na lokalnoj mreži, korisnici nemaju takvu mogućnost

9.6 Da li je moguće tokom normalne instalacije 1C: Enterprise in verzija klijent-server, rad klijentskih i serverskih aplikacija različitih izdanja tehnološke platforme?

1. Dozvoljeno

2. Nije dozvoljeno, potrebno je ažurirati i serversku aplikaciju i klijentske aplikacije

3. Dozvoljeno je, potrebno je ažurirati serversku aplikaciju

9.7 Korištenje paketnog načina rada...

1. Omogućava ulazak automatski način rada učitajte/preuzmite, testirajte i ispravite bazu podataka

2. omogućava pokretanje oba načina programa bez interaktivne intervencije

3. omogućava vam da izvršite kontrolu sintakse i provjeru konfiguracije

4. tačan odgovor I i 2

5. tačan odgovor 1,2 i 3

9.8 Opcije pokretanja od komandna linija 1C: Enterprise...

1. definisati baza informacija, korisnik, njegova, lozinka, način pokretanja, pravila za izvođenje određenih operacija u vanjskoj datoteci

2. definirati bazu podataka, korisnika, njegovu, lozinku, startup mod, pravila za izvođenje navedenih operacija navedenih u komandnoj liniji

3. Verpa odgovara I i 2

4. nema tačnog odgovora

9.9 Šta dozvoljava komandna linija?

Sistem 1C:Enterprise može biti pokrenut od strane eksterne aplikacije kao OLE Automation server i omogućava pristup svim atributima i metodama njegovog globalnom kontekstu(Pogledajte „Kontekst izvršenja softverski modul"). Osim toga, 1C:Enterprise OLE server ima dodatne metode, koji se može koristiti za izvršavanje niza operatora ili evaluaciju izraza specificiranog u ugrađenom jeziku 1C:Enterprise.

Da biste pokrenuli sistem 1C:Enterprise kao OLE Automation server iz vanjske aplikacije, izvodi se sljedeći niz radnji:

  • kreira se objekat sa OLE identifikatorom:
    • V1SEnterprise.Application - nezavisna verzija ključa;
    • V77.Application - ključ zavisan od verzije;
    • V77S.Application - ključ ovisan o verziji, SQL verzija;
    • V77L.Application - ključ zavisan od verzije, lokalna verzija;
    • V77M.Aplikacija - ključ zavisan od verzije, mrežna verzija.
  • sistem 1C:Enterprise se inicijalizira metodom Initialize.
  • atributi i metode sistema 1C:Enterprise nazivaju se OLE Automation serverom

Komentar
Budući da je program 1C:Enterprise i OLE Automation server i OLE Automation klijent, moguće je iz 1C:Enterprise pristupiti drugoj kopiji 1C:Enterprise (na primjer, drugoj konfiguraciji) radi razmjene podataka. U osnovi, svi moderni softverski proizvodi podržavaju mehanizam OLE Automation, to se posebno odnosi na MS Office, MS FoxPro i aplikacije napisane na njima, DAO itd., tako da se program 1C:Enterprise može u potpunosti integrirati s njima
.

Komentar
Nelokalizirane verzije eksternih programa koji pristupaju programu 1C:Enterprise putem OLE automatizacije mogu pogrešno tumačiti ruske identifikatore objekata skupnih tipova podataka, na primjer, detalje direktorija. Ova napomena se ne odnosi na MS Office proizvode i programe koji koriste OLE objekte kao jezik za pristup OLE objektima. Microsoft Visual osnovni. Preporučuje se korištenje lokaliziranih verzija softverskih proizvoda, ili koristite identifikatore bez ćiriličkih znakova u konfiguraciji. Za pristup atributima i metodama agregiranih tipova podataka sistema 1C:Enterprise iz vanjskih aplikacija, preporučuje se korištenje njihovih engleskih sinonima
.

Komentar
Svi kreirani objekti OLE automatizacije postoje sve dok postoji varijabla koja sadrži vrijednost ovog objekta. Shodno tome, sam program 1C: Enterprise, koji djeluje kao OLE objekat Automatizacija u drugom programu će ostati u memoriji računara sve dok se vrijednost varijable koja ga sadrži kao objekt ne izbriše ili promijeni
.

Atributi sistema 1C:Enterprise kao servera OLE automatizacije

Sistem 1C:Enterprise kao OLE Automation server pruža pun pristup to my globalnom kontekstu(pogledajte "Kontekst izvršavanja programske jedinice"). Stoga, objekt OLE servera 1C:Enterprise može imati kao svoje atribute: sistemske konstante, vrijednosti navedene u konfiguratoru konstante, transferi, registri, vrste obračuna, grupe tipova proračuna, kao i varijable deklarisane u modulu globalnog programa sa ključna riječ Izvoz.

Pitanje 08.13 ispita 1C: Platforma profesionalna. Za kreiranje objekta koji će se koristiti iz jedne baze podataka 1C:Enterprise 8 za pristup drugoj bazi podataka 1C:Enterprise 8 putem OLE-a, koristite konstruktor:

  1. Nova baza (InitString)
  2. Novi OLEObject
  3. Novi COMObject
  4. Stvaranje takvog objekta se vrši drugim sredstvima.
Ispravna sintaksa je treća

Pitanje 08.51 ispita 1C: Platforma profesionalna. Uređivanje OLE objekata se vrši:
  1. Ugrađeni uređivač tabela
  2. Platformski ugrađeni OLE uređivač objekata
  3. Aplikacija povezana s OLE objektom
Tačan odgovor je treći, pogledajte definiciju OLE objekta.
Pitanje 08.53 ispita 1C: Platforma profesionalna. Server za automatizaciju "1C:Enterprise 8"...
  1. pruža pristup svim svojstvima i metodama svog globalnog konteksta
  2. pruža pristup dodatnim svojstvima i metodama za izvođenje radnji specifičnih za rad u automatiziranom načinu rada
  3. omogućava vam upravljanje aplikacijom sistema 1C:Enterprise 8 iz drugih aplikacija, kao i obavljanje radnji sličnih interaktivnim
  4. svi dati odgovori su tačni
Tačan odgovor je četvrti - Automatizacija daje gotovo potpuni pristup aplikaciji.
Pitanje 08.10 ispita 1C: Platforma profesionalna. U proceduri koja će biti pozvana prilikom povezivanja na bazu podataka preko COM-a, ne možete koristiti:
  1. DocObject=Doc.CreateDocument()
  2. Form.Open()
  3. Zahtjev=Novi zahtjev
  4. Ne postoji tačan odgovor
Tačan odgovor je drugi.

Pitanje 08.03 ispita 1C: Platforma profesionalna. Prilikom pristupa bazi podataka 1C:Enterprise 8 preko OLE-a, izvršava se procedura - definira se obrađivač događaja "Na početku sistema" ...

  1. u aplikacijskom modulu
  2. u vanjskom priključnom modulu
  3. u opštem modulu
  4. u OLE modulu
Tačan odgovor je prvi, Automatizacija vidi modul aplikacije.
Pitanje 08.06 ispita 1C: Platforma profesionalna. Prilikom pristupa bazi podataka 1C:Enterprise 8 preko COMConnector-a, izvršava se procedura - definira se obrađivač događaja "Na početku sistema" ...
  1. u aplikacijskom modulu
  2. u vanjskom priključnom modulu
  3. u opštem modulu
  4. u COM modulu
Tačan odgovor je drugi, za COM su dostupni samo moduli sa atributom "Spoljna veza".

Učitavanje...
Top