1c pretvorba podatkov 3 primeri

Pretvorba podatkov 2.0 in 2.1 je tehnološka konfiguracija 1C, ki se izvaja na različicah platforme od 8.1 do 8.3.

Glavna naloga orodja je pisanje pravil za izmenjavo med aplikacijskima rešitvama 1C 8 in 7. Trenutna različica pretvorbe podatkov je danes 3.0.

Pretvorba podatkov je zelo uporabna konfiguracija, z njeno pomočjo lahko rešite ne le vprašanje prenosa informacij iz ene podatkovne baze v drugo, temveč tudi na primer pretvorbo informacij znotraj ene baze podatkov.

Konfiguracija je zelo priročna za uporabo z .

Pretvorba podatkov bo koristna za vsakega programerja: imeti veščine za ustvarjanje pravil izmenjave je resen plus za poklicne spretnosti.

Za učenje dela s konfiguracijo je najbolj primerno reševanje praktičnih problemov. Poskusite si sami izmisliti naloge, na primer: prenesti podatke iz ene baze podatkov v drugo, pretvoriti prodajni dokument v potrdilo o prejemu, »vpisati« tekoča knjigovodska stanja v dokument »vnos stanja« in druge naloge.

Zelo koristno bo razumeti "standardna" pravila izmenjave 1C 8.3, tam lahko pogosto najdete zanimive primere izvajanja nalog.

Za razumevanje osnov boste potrebovali materiale, ki jih bomo obravnavali spodaj.

Video navodila za pretvorbo

Za osnove nastavitve izmenjave podatkov v 1C s konfiguracijo »1C Data Conversion« si oglejte primer v videu:

Gradivo, učbeniki za študij 1C Data Conversion 2.0

Na internetu ni preveč gradiva in dokumentacije, poskušal sem zbrati najbolj pomembna in zanimiva gradiva:

0. Najprej priporočam brezplačen video tečaj Ilje Leontjeva, na voljo je na povezava.

1. Najprej bi svetoval uporabo vgrajene pomoči v konfiguraciji. Res je dobro napisano in tehnično dobro implementirano:

2. Drugi najpomembnejši vir informacij je stran http://www.mykod.info/ (stran je zaprta), specializirana prav za pretvorbo podatkov. Tam lahko prenesete veliko število materialov o pretvorbi.

3. Ločeno bi rad izpostavil učbenik - (avtor - Olga Kuznetsova).

Za nastavitev izmenjave podatkov med različnimi (vključno s samonapisanimi) konfiguracijami v 1C obstaja zelo prilagodljiv mehanizem za nastavitev prenosa informacij - konfiguracija 1C »Pretvorba podatkov« (CD). Poglejmo, kako deluje ta mehanizem, in poskusimo nastaviti pravila izmenjave med dvema tipičnima konfiguracijama:

  • Računovodstvo podjetja (demo različica), izdaja 3.0.30;
  • Upravljanje s plačami in osebjem (demo različica), izdaja 3.0.25.

Konfiguracijsko orodje za nastavitev pravil izmenjave bo različica Data Conversion 2.1.82. Delo se bo izvajalo na ploščadi 8.3.9.

Pomembno je omeniti, da pretvorba podatkov omogoča organiziranje izmenjave ne le med zbirkami podatkov različice 8 programa, temveč tudi med različicama 7 in 8 platforme 1C.

Zagon pomočnika

Po namestitvi konfiguracije »Data Conversion« in njenem zagonu je prvo okno, ki se odpre, pomočnik pri zagonu (slika 1).

Ponovno ga lahko prikličete iz menija Operacije->Obdelava ali iz pomoči, kjer je ta obdelava označena kot ločen ukaz.

Ker ne nameravamo uporabljati standardna pravila prenosa, vendar bomo v naslednjem oknu ustvarili svojega, bomo s seznama izbrali ustrezen element (slika 2).

Slika 2

Poleg ustvarjanja novih pravil izmenjave lahko:


Na tej točki bi si morali vzeti malo odmora od ustvarjanja pravil izmenjave in govoriti o datotekah konfiguracijske strukture.

Datoteke s strukturo metapodatkov

Konfiguracijski paket Conversion vključuje več zunanje zdravljenje, ki vam omogočajo nalaganje strukture metapodatkov v datoteko xml.

Pomembno pravilo! Obdelava razkladanja strukture za različne baze podatkov mora pripadati isti različici CD-ja.

Za različne različice platforme je 1C implementiral drugačno obdelavo raztovarjanja strukture:

  • MD77Exp.ert – omogoča shranjevanje konfiguracijske strukture sedmih baz podatkov v datoteko;
  • MD82EXP.epf – izvozi strukturo baz podatkov, ki se izvajajo na platformah različice 8.0-8.2;
  • MD83EXP.epf – zasnovan za platformo 8.3.

Ker je v pogojih naše naloge potrebno organizirati izmenjavo med bazami podatkov, ki tečejo v izdaji 8.3, bomo uporabili tretjo obdelavo (slika 4).

Slika 4

Tukaj moramo določiti datoteko, v katero bo naložena struktura in lahko konfiguriramo nabor pomožnih tabel, ki bodo sodelovale pri izmenjavi.

Ko sta ciljna in izvorna konfiguracijska datoteka preneseni, je treba informacije iz njiju naložiti v Data Conversion.

Za to:


Za drugo osnovo ponovimo iste korake.

Vrnimo se k našemu pomočniku.

Nadaljujte z delom s pomočnikom

Po dodajanju naših dveh baz podatkov v imenik je videti tako (slika 6).

Nadaljujmo z delom s pomočnikom

V naslednjem oknu (slika 7) moramo izbrati bazo sprejemnika in bazo izvora.

Slika 7

In zdaj smo prišli do okna, v katerem bomo morali določiti, na katerih zakonih in korespondencah bo temeljila naša izmenjava (slika 8).

Slika 8

Program lahko samostojno, z uporabo vgrajenih algoritmov, ustvari izmenjavo podatkov. Z izbiro drugega stikala lahko med samodejno ustvarjenimi pravili izberemo tista, ki so najbolj primerna za rešitev našega problema. Če želimo samostojno določiti, kaj in kako prenesti ter po katerih podrobnostih primerjati podatke, moramo stikalo postaviti v tretji položaj.

Ker želimo ustvariti lastna pravila, bomo ubrali tretjo pot.

Ustvarjanje pravila za izmenjavo med imeniki

Nastavite stikalo na tretji element na seznamu in kliknite gumb »Zaženi«.

Smo v čarovniku za nastavitve za postavko imenika »Pravila za pretvorbo objektov« (slika 9)

Slika 9

V izvorni bazi podatkov moramo izbrati objekt, katerega podatke bomo sinhronizirali.

V zbirki podatkov prejemnika je tabela, kamor bodo šli ti podatki.

Na naslednji stopnji se moramo odločiti za parametre nalaganja:

  • Katere podrobnosti bodo uporabljene za iskanje ujemanja;
  • Kaj narediti z obstoječimi elementi;
  • Ali ustvariti manjkajoče elemente;
  • Kako ravnati s povezavami;
  • Katera pravila uporabiti za oštevilčenje novih elementov.

In naloži parametre.

Če se odločimo za samodejno ujemanje podatkov, bomo ta korak preskočili.

Na koncu moramo izdelana pravila naložiti na disk (slika 10).

Sl.10

Izmenjava podatkov

Nadaljnjo izmenjavo podatkov bomo izvajali s pomočjo obdelave V8Exchan83.epf (slika 11), ki je prav tako vključena v paketu dostave. Uporaba standardne izmenjave podatkov, ki je del konfiguracije ali samonapisane obdelave, pri uporabi pravil, ustvarjenih v CD-ju, lahko povzroči nastanek izjemne situacije.

Slika 11

In še enkrat: izjemno pomembno je, da se različica datoteke za nalaganje, konfiguracija in obdelava izmenjave ujemajo in so vzeti iz iste dostave, le v tem primeru se boste čim bolj zaščitili pred vsemi vrstami težav.

V vsakem primeru, če preverjanje pravilnosti prenosa podatkov pokaže prisotnost konfliktnih situacij in napak, vam obdelava prenosa omogoča izbris teh podatkov iz baze podatkov.

Verjetno se je vsak strokovnjak 1C srečal s potrebo po prenosu podatkov iz ene informacijske baze v drugo. V primeru, da so konfiguracije različne, morate napisati pravila za pretvorbo podatkov. Ta pravila so ustvarjena v konfiguraciji 1C "Pretvorba podatkov".

Podatke lahko prenašate tudi z uporabo. V mnogih konfiguracijah 1C 8.3 obstaja tipična funkcionalnost za nastavitev sinhronizacije podatkov med različnimi konfiguracijami in brezhibno integracijo s 1C Document Flow.

Ko pa je treba podatke prenesti med popolnoma enakimi konfiguracijami, lahko poenostavite svojo nalogo in uporabite standardno obdelavo za nalaganje in nalaganje prek XML. Upoštevajte, da ta metoda, tako kot pretvorba podatkov, primerja predmete med seboj po edinstvenem identifikatorju (GUID) in ne po imenu.

To obdelavo lahko prenesete na disk ITS ali na povezavah:

Je univerzalen in primeren za vsako konfiguracijo.

Oglejmo si primer razkladanja imenika "Nomenklatura" iz ene informacijske baze 1C 8.3 Računovodstvo 3.0 v drugo. Predpogoj bo izbor s strani matične (skupine) »Lesarstvo«.

Nalaganje podatkov iz 1C v XML

Pojdite v informacijsko bazo, iz katere se bodo podatki prenesli (vir). Vsekakor jih preverite in upoštevajte vse možne pogoje, da se izognete neželenim posledicam.

Odprite obdelavo nalaganja in prenosa Podatki XML(Ctrl+O).

Zanima nas zavihek »Naloži«. Najprej določite ime datoteke, v katero se bodo podatki naložili, in pot do shranjevanja. V tem primeru se podatki naložijo »v datoteko na strežniku«.

V glavi obdelave lahko konfigurirate obdobje, za katero se bo izvajala izbira. Prav tako lahko za periodične vpisnike določite način uporabe izbora po obdobjih. Če je treba skupaj z dokumenti naložiti premike, se nastavi ustrezna zastavica. V tem primeru preobremenimo imenik, zato v glavi ni treba ničesar konfigurirati.

Preidimo na izbiro podatkov za nalaganje. V tabelarnem delu obrazca za obdelavo izberite potrditvena polja za konfiguracijske objekte, ki jih želite prenesti.

Stolpec »Razloži po potrebi« označuje, ali je potrebno ponovno naložiti ta predmet, če se nanj sklicuje atribut imenika, ki ga ponovno nalagamo. Na primer, položaj predmeta, ki ga nalagate, ima mersko enoto, ki je ni v ciljni zbirki podatkov. Če je zastavica v stolpcu »Naloži po potrebi« označena nasproti referenčne knjige z merskimi enotami, bo ustvarjen nov položaj. V nasprotnem primeru bo vrednost atributa "<Объект не найден>« in njegov enolični identifikator.

V preprostem primeru brez izbir bo nastavitev preobremenitve elementov videti takole.

IN v tem primeru izbrati morate le elemente, ki se nahajajo v mapi »Lesarstvo«.

Podobna obdelava za 8.2 vam omogoča, da nastavite izbire za vsak konfiguracijski objekt v priročni obliki. V 8.3 žal ni te funkcionalnosti. Eden od izhodov v tej situaciji bi bil, da na zavihku »Dodatni predmeti za razkladanje« izberete potrebne elemente.

Predmete tukaj lahko dodate ročno (gumb »Dodaj«) ali na zahtevo (»Dodaj po zahtevi ...«). Če jih je veliko, je boljša druga možnost.

V tem primeru bo zahteva naslednja. Izpolnite parametre, po preverjanju podatkov dokončajte zahtevo in kliknite na gumb “Izberi rezultat”.

Ko določite vse potrebne objekte in dodatne elemente za nalaganje, kliknite na gumb “Naloži podatke”. Vstopili bodo datoteko XML, katerega ime in pot sta bila navedena prej. Rezultati te operacije bodo prikazani v sporočilih.

V tem primeru je bilo potrebno razbremeniti samo 3 položaje, razbremenjenih pa je bilo pet. To je zato, ker je bila nasproti imenika »Nomenklatura« v stolpcu »Naloži po potrebi« nastavljena zastavica. Skupaj s potrebnimi položaji so bili njihovi starši preobremenjeni.

Nalaganje imenika iz XML

Po uspešnem prenosu podatkov iz izvorne konfiguracije v datoteko XML odprite ciljno bazo podatkov. Struktura predmetov in njihove podrobnosti se morajo ujemati. V tem primeru se prenos izvede med dvema standardnima konfiguracijama 1C: Računovodstvo 3.0.

Odprite obdelavo v bazi prejemnika. Ta obdelava uporablja se tako za nalaganje kot za nalaganje podatkov. Pojdite na zavihek »Prenos« in določite pot do datoteke XML, v katero so bili podatki predhodno preneseni. Po tem kliknite gumb »Prenesi podatke«.

Rezultat prenosa bo prikazan v sporočilih. V našem primeru je šlo vse dobro.

Imenik »Nomenklatura« v prejemni bazi podatkov ni bil izpolnjen. Zdaj ima pet elementov: tri nomenklaturne položaje in dve skupini.

Selitev podatkov med različnimi konfiguracijami ni nepomembna naloga. Kot vedno obstaja več rešitev, vendar niso vse optimalne. Poskusimo razumeti nianse prenosa podatkov in izbrati univerzalno strategijo za reševanje takšnih težav.

Problem migracije podatkov (govorimo zgolj o izdelkih podjetja 1C) iz ene rešitve v drugo ni nastal včeraj. Podjetje 1C odlično razume, s kakšnimi težavami se soočajo razvijalci pri ustvarjanju migracij, zato poskuša na vse možne načine pomagati z orodji.

Med razvojem platforme je podjetje uvedlo vrsto univerzalnih orodij, pa tudi tehnologij, ki poenostavljajo prenos podatkov. Vgrajeni so v vse standardne rešitve in problem migracij med enakimi konfiguracijami je na splošno odpravljen. Zmago ponovno potrjuje tesna integracija standardnih rešitev.

Pri prehodih med nestandardnimi rešitvami je situacija nekoliko bolj zapletena. Širok izbor tehnologij omogoča razvijalcem, da samostojno izberejo optimalen način za rešitev problema z njihovega vidika.

Oglejmo si nekaj izmed njih:

  • izmenjava preko besedilnih datotek;
  • uporaba menjalnih načrtov;
  • itd.

Vsak od njih ima svoje prednosti in slabosti. Če povzamem, glavna pomanjkljivost bo njegova natančnost. Neodvisno izvajanje migracijskih algoritmov je polno znatnih časovnih stroškov, pa tudi dolgega postopka odpravljanja napak. O nadaljnji podpori takim odločitvam niti ne želim govoriti.

Kompleksnost in visoki stroški podpore so spodbudili podjetje 1C, da je ustvarilo univerzalno rešitev. Tehnologije, ki omogočajo čim bolj poenostavljen razvoj in podporo migracijam. Posledično je bila ideja izvedena v obliki ločene konfiguracije - "Pretvorba podatkov".

Pretvorba podatkov - standardna rešitev, neodvisna konfiguracija. Vsak uporabnik z naročnino na “ITS:Prof” lahko ta paket popolnoma brezplačno prenese s strani za podporo uporabnikom ali diska ITS. Namestitev v teku na standarden način- kot vse druge standardne rešitve iz 1C.

Zdaj pa malo o prednostih rešitve. Začnimo z najpomembnejšim – vsestranskostjo. Rešitev ni prilagojena določenim konfiguracijam/različicam platforme. Deluje enako dobro tako s standardnimi konfiguracijami kot s konfiguracijami po meri. Razvijalci imajo univerzalno tehnologijo in standardiziran pristop k ustvarjanju novih migracij. Vsestranskost rešitve omogoča pripravo migracij tudi za platforme, ki niso 1C:Enterprise.

Drugi velik plus so vizualni pripomočki. Preproste migracije so ustvarjene brez programiranja. Da, da, brez ene vrstice kode! Samo zaradi tega je vredno porabiti čas za enkratno učenje tehnologije in nato večkratno uporabo neprecenljivih veščin.

Tretja prednost, ki bi jo izpostavil, je odsotnost omejitev pri distribuciji podatkov. Razvijalec sam izbere način dostave podatkov v konfiguracijo sprejemnika. Že takoj sta na voljo dve možnosti: nalaganje v datoteko xml in neposredna povezava z informacijsko bazo (COM/OLE).

Študij arhitekture

Da lahko pretvorba podatkov dela čudeže, že vemo, kakšne so tehnične prednosti, pa še ni povsem jasno. Prva stvar, ki jo morate razumeti, je, da vsaka migracija (pretvorba) podatkov temelji na pravilih izmenjave. Pravila izmenjave so običajna xml datoteka, ki opisuje strukturo, v katero bodo naloženi podatki iz informacijske varnosti. Storitvena obdelava, ki nalaga/prenaša podatke, analizira pravila izmenjave in na podlagi njih izvede nalaganje. Med nalaganjem pride do obratnega procesa.

Konfiguracija “CD” je nekakšen vizualni konstruktor, s pomočjo katerega razvijalec ustvari pravila izmenjave. Ne ve, kako prenesti podatke. Za to je odgovorna dodatna obdelava zunanjih storitev, vključena v distribucijski paket CD-jev. Obstaja jih več (XX v imenu datoteke je številka različice platforme):

  • MDXXExp.epf- obdelava omogoča nalaganje opisa strukture informacijske baze v xml datoteko. Opis strukture se naloži na CD za nadaljnjo analizo in izdelavo menjalnih pravil.
  • V8ExchanXX.epf- nalaga/prenaša podatke iz informacijske baze v skladu s pravili izmenjave. V večini tipičnih konfiguracij je obdelava prisotna takoj po namestitvi (glejte točko menija »Storitev«). Obdelava je univerzalna in ni vezana na nobene posebne konfiguracije/pravila.

V redu, zdaj pa na podlagi vsega zgoraj navedenega opredelimo stopnje razvoja nove konverzije:

  1. Opredelitev naloge. Jasno je treba razumeti, katere podatke je treba prenesti (iz katerih konfiguracijskih objektov) in, kar je najpomembneje, kam jih prenesti.
  2. Priprava opisov konfiguracijskih struktur (Source/Sink) za naknadno nalaganje na CD. Težavo reši servisna obdelava MDXXExp.epf.
  3. Nalaganje pripravljenih opisov struktur v informacijsko varnost.
  4. Ustvarjanje pravil izmenjave z uporabo vizualnega orodja CD.
  5. Izvajanje nalaganja/prenosa v skladu z ustvarjenimi pravili pretvorbe podatkov z obdelavo V8ExchanXX.epf.
  6. Odpravljanje napak v pravilih izmenjave (če je potrebno).

Najenostavnejša pretvorba

Za predstavitev bomo potrebovali dve nameščeni konfiguraciji. Odločil sem se za možnost: »Trade Management« 10. izdaja in majhno doma napisano rešitev. Naloga bo prenos podatkov iz standardne konfiguracije "UT". Za kratkost poimenujmo samostojno napisano rešitev "Sink" in upravljanje trgovine "Source". Začnimo reševati problem s prenosom elementov iz imenika "Nomenklatura".

Najprej si oglejmo shemo pretvorbe podatkov in ponovno preberimo seznam dejanj, ki jih je treba izvesti. Nato zaženemo konfiguracijo »Vir« in v njej odpremo obdelavo storitve MD82Exp.epf.

Vmesnik za obdelavo nima obilice nastavitev. Uporabnik mora le navesti tipe metapodatkovnih objektov, ki ne bodo vključeni v opis strukture. V večini primerov teh nastavitev ni treba spreminjati, ker Ni posebnega smisla razbremeniti premike z uporabo akumulacijskih registrov (kot primer).

Pravilneje je oblikovati gibanje med držanjem dokumentov v sprejemniku. Vse premike bo opravil sam dokument po prenosu. Drugi argument v obrambo privzetih nastavitev je zmanjšanje velikosti datoteke z nalaganjem.

Nekateri dokumenti (zlasti tipične konfiguracije) tvorijo premike po več registrih. Če razložite vse te stvari, bo nastala datoteka XML prevelika. To lahko oteži kasnejši transport in nalaganje v sprejemno bazo. Večja kot je podatkovna datoteka, več jih boste potrebovali pomnilnik z naključnim dostopom da ga obdelamo. Med prakso sem imel priložnost naleteti na nespodobno velike datoteke za nalaganje. Takih datotek ni bilo mogoče razčleniti s standardnimi orodji.

Torej pustimo vse privzete nastavitve in naložimo opis konfiguracije v datoteko. Podoben postopek ponovimo za drugo podlago.

Odprite CD in izberite v glavnem meniju “Imeniki” -> “Konfiguracije”. V imeniku so shranjeni opisi struktur vseh konfiguracij, ki jih je mogoče uporabiti za ustvarjanje konverzij. Opis konfiguracije naložimo enkrat, nato pa ga lahko večkrat uporabimo za ustvarjanje različnih konverzij.

V oknu imenika kliknite gumb » Dodaj” in v oknu, ki se prikaže, izberite datoteko, ki opisuje konfiguracijo. Označite polje »Naloži v novo konfiguracijo« in kliknite gumb »Naloži«. Podobna dejanja izvajamo z opisom strukture druge konfiguracije.

Zdaj ste pripravljeni za ustvarjanje pravil izmenjave. V glavnem meniju CD-ja izberite “Imeniki” -> “Pretvorbe”. Dodaj nov element. V oknu za ustvarjanje nove konverzije morate določiti: izvorno konfiguracijo (izberite UT) in ciljno konfiguracijo (izberite “Sprejemnik”). Nato odprite zavihek »Napredno« in izpolnite naslednja polja:

  • ime datoteke pravil izmenjave - ustvarjena pravila izmenjave bodo shranjena pod tem imenom. Ime datoteke lahko kadar koli spremenite, vendar je najbolje, da ga nastavite zdaj. To bo prihranilo čas v prihodnosti. Pravila za demo primer sem poimenoval: “rules-ut-to-priemnik.xml”.
  • ime - ime pretvorbe. Ime je lahko čisto poljubno, omejil sem se na »Demo. UT do sprejemnika."

To je to, kliknite »V redu«. Takoj se pred nami prikaže okno, ki nas prosi, da samodejno ustvarimo vsa pravila. Če se strinjate s tako mamljivo ponudbo, bo poveljnik dobil ukaz, da samodejno analizira opis izbranih konfiguracij in neodvisno ustvari pravila izmenjave.

Takoj postavimo piko na "i". Čarovnik ne bo mogel ustvariti ničesar resnega. Vendar te možnosti ne bi smeli zanemariti. Če je treba vzpostaviti izmenjavo med enakimi konfiguracijami, bodo storitve strokovnjaka zelo koristne. Za naš primer je bolj primeren ročni način.

Oglejmo si podrobneje okno »Nastavitve pravil izmenjave«. Vmesnik se morda zdi nekoliko zmeden - veliko število zavihkov, natrpanih s kontrolniki. Pravzaprav vse ni tako težko, na to norost se začneš navaditi po nekaj urah dela z aplikacijo.

Na tej stopnji nas zanimata dva zavihka: »Pravila za pretvorbo objektov« in »Pravila za nalaganje podatkov«. Najprej moramo konfigurirati pravila ujemanja, tj. primerjajte objekte dveh konfiguracij. Na drugem določite možne objekte, ki bodo uporabniku na voljo za nalaganje.

V drugi polovici zavihka »Pravila za pretvorbo objektov« je dodatna plošča z dvema zavihkoma: »Pretvorba lastnosti« in » Pretvarjanje vrednosti" Prvi bo izbral lastnosti (podrobnosti) izbranega predmeta, drugi pa je potreben za delo z vnaprej določenimi vrednostmi (na primer vnaprej določeni elementi imenika ali elementi oštevilčenja).

Odlično, zdaj pa ustvarimo pravila pretvorbe za imenike. To dejanje lahko izvedete na dva načina: uporabite čarovnika za sinhronizacijo objektov (gumb »«) ali ročno dodajte korespondenco za vsak predmet.

Da bi prihranili prostor, bomo uporabili prvo možnost. V oknu čarovnika počistite kljukico skupine » Dokumentacija” (zanimajo nas samo imeniki) in razširite skupino “ Imeniki" Previdno se pomikamo po seznamu in si ogledamo imena referenčnih knjig, ki jih je mogoče primerjati.

V mojem primeru obstajajo trije takšni imeniki: Nomenklatura, Organizacije in Skladišča. Obstaja tudi imenik, imenovan Clients, ki ima enak namen kot » Nasprotne stranke"iz konfiguracije" UT" Res je, da jih mojster zaradi različnih imen ni mogel primerjati.

To težavo lahko odpravimo sami. V oknu najdemo " Ujemanje predmetov" Referenčna knjiga " Stranke« in v stolpcu »Vir« izberite imenik »Nasprotne stranke«. Nato potrdite polje v stolpcu »Vrsta« in kliknite gumb »V redu«.

Čarovnik za sinhronizacijo objektov bo ponudil samodejno ustvarjanje pravil za pretvorbo lastnosti vseh izbranih objektov. Lastnosti bomo poimensko primerjali in za naš prikaz bo to čisto dovolj, se strinjamo. Naslednje vprašanje bo predlog za ustvarjanje pravil za nalaganje. Tudi mi se strinjamo s tem.

Podlaga za pravila menjave je pripravljena. Izbrali smo objekte za sinhronizacijo, pravila za pretvorbo lastnosti in pravila za nalaganje so bila ustvarjena samodejno. Shranimo pravila izmenjave v datoteko, nato odpremo IB "Source" (v mojem primeru je to UT) in v njem zaženemo obdelavo storitev V8Exchan82.epf.

Najprej v oknu za obdelavo izberite pravila izmenjave, ki smo jih ustvarili. Na vprašanje pravil nakladanja odgovorimo pritrdilno. Obdelava bo analizirala pravila izmenjave in zgradila drevo predmetov z istim imenom, ki so na voljo za nalaganje. Za to drevo lahko nastavimo najrazličnejše izbire ali izmenjujemo vozlišča, s spreminjanjem katerih moramo izbrati podatke. Želimo prenesti popolnoma vse podatke, zato ni potrebe po nameščanju filtrov.

Ko končate postopek nalaganja podatkov v datoteko, pojdite na IB " Sprejemnik" V njej odpremo tudi obdelavo V8Exchan82.epf, le da gremo tokrat na zavihek »Nalaganje podatkov«. Izberite podatkovno datoteko in kliknite gumb »Prenesi«. To je to, podatki so bili uspešno preneseni.

Težave v resničnem svetu

Prvi demo je lahko zavajajoč. Vse izgleda precej preprosto in logično. Pravzaprav to ni res. IN pravo delo Pojavijo se problemi, ki jih je težko ali popolnoma nemogoče rešiti zgolj z vizualnimi sredstvi (brez programiranja).

Da ne bi bil razočaran nad tehnologijo, sem pripravil nekaj realnih problemov. Zagotovo jih boste srečali pri delu. Ne izgledajo tako nepomembne in poskrbijo, da na pretvorbo podatkov pogledate z novega zornega kota. Pozorno preučite predstavljene primere in jih lahko uporabite kot izrezke pri reševanju resničnih problemov.

Naloga št. 1. Izpolnite manjkajoče podatke

Recimo, da moramo prenesti imenik " Nasprotne stranke" Prejemnik ima za ta namen podoben imenik »Odjemalci«. Je popolnoma primeren za shranjevanje podatkov, vendar ima rekvizite “ Organizacija«, ki omogoča ločevanje nasprotnih strank glede na pripadnost organizaciji. Privzeto morajo vse nasprotne stranke pripadati trenutni organizaciji (to je mogoče pridobiti iz konstante z istim imenom).

Rešitev problema je več. Razmislili bomo o možnosti izpolnjevanja podrobnosti " Organizacija"prav v bazi podatkov" Sprejemnik«, tj. v času nalaganja podatkov. Trenutna organizacija je shranjena v konstanti, zato ni ovir za pridobitev te vrednosti. Odprimo pravilo pretvorbe objektov (v nadaljevanju PKO) " Stranke” (dvokliknite na objekt) in v čarovniku za nastavitev pravil pojdite na razdelek “Obravnavalniki dogodkov”. Na seznamu upravljavcev bomo našli " Po prenosu”.

Opišimo kodo za pridobitev trenutne organizacije in jo nato dodelimo podrobnostim. V času, ko se sproži upravljalnik »Po nalaganju«, bo objekt v celoti oblikovan, vendar še ne bo zapisan v bazo podatkov. Nihče nam ne prepoveduje, da ga spremenimo po lastni presoji:

Če NE Object.ThisGroup Then Object.Organization = Constants.CurrentOrganization.Get(); endIf;

Preden izpolnite podrobnosti " Organizacija"Potrebno je preveriti vrednost atributa" Ta skupina" Za referenčno knjigo " Stranke"Hierarhična funkcija je nastavljena, zato je preverjanje skupine potrebno. Na podoben način izpolnite vse podrobnosti. Ne pozabite prebrati pomoči za druge možnosti obravnave " AfterLoading" Na primer, med njimi je parameter " Zavrnitev" Če mu dodelite vrednost »True«, objekt ne bo zapisan v bazo podatkov. Tako postane mogoče omejiti objekte, ki jih je mogoče zapisati v času nalaganja.

Naloga št. 2. Podatki za informacijski register

V imeniku " Nasprotne stranke"Konfiguracije UT, podrobnosti so na voljo" Kupec"in" Ponudnik" Obe podrobnosti sta tipa " Boolean” in se uporabljajo za določitev vrste nasprotne stranke. V IB" Sprejemnik«, v imeniku » Stranke"Podobnih podrobnosti ni, obstaja pa register informacij" Vrste strank" Izvaja podobno funkcijo in lahko shrani več atributov za eno stranko. Naša naloga je, da prenesemo vrednosti podrobnosti v ločene vnose v informacijskem registru.

Žal tudi tukaj samo vizualna sredstva niso kos. Začnimo z majhnim, ustvarimo novo programsko opremo za register informacij " Vrste strank" Ne navajajte ničesar kot vir. Izogibajte se samodejnemu ustvarjanju pravil za nalaganje.

Naslednji korak je ustvariti pravila za nalaganje. Pojdite na ustrezen zavihek in kliknite » Dodaj" V oknu za dodajanje pravil za nalaganje izpolnite:

  • Metoda vzorčenja. Spremenite v »Arbitrary algoritem«;
  • Pravilo pretvorbe. Izberite register informacij "Vrste strank";
  • Koda (ime) pravila. Zapišite ga kot "Razkladanje vrst strank";

Zdaj morate napisati kodo za izbiro podatkov za nalaganje. Parameter " Vzorčenje podatkov" Vanj lahko postavimo zbirko s pripravljenim naborom podatkov. Parameter " Vzorčenje podatkov” lahko prevzame različne vrednosti - rezultat poizvedbe, izbor, zbirke vrednosti itd. Inicializiramo ga kot tabelo vrednosti z dvema stolpcema: stranko in vrsto stranke.

Spodaj je koda za obravnavo dogodkov " Pred obdelavo" Inicializira parameter " Vzorčenje podatkov” sledi izpolnjevanje podatkov iz imenika “ Nasprotne stranke" Tukaj bodite pozorni na izpolnjevanje stolpca " Vrsta odjemalca" V »UT« so naši atributi tipa »Boolean«, prejemnik pa je naštevanje.

Na tej stopnji jih ne moremo pripeljati do pravi tip(ni v UT), zato ga bomo za zdaj pustili v obliki nizov. Tega vam ni treba storiti, vendar vam želim takoj pokazati, kako pretvoriti v manjkajoči tip v viru.

DataFetch = Nova tabela vrednosti(); DataSelection.Columns.Add("Odjemalec"); DataSelection.Columns.Add("ClientType"); SelectingDataFromDirectory = Directories.Accounts.Select(); Medtem ko SelectingDataFromDirectory.Next() Loop If SelectingDataFromDirectory.ThisGroup Then Continue; endIf; If Data Selection From Directory.Buyer Then NewRow = Data Selection.Add(); NewRow.Client = DataFetchFromDirectory.Link; NewRow.ClientType = "Stranka"; endIf; If DataFetchFromDirectory.Supplier Then NewRow = DataFetch.Add(); NewRow.Client = DataFetchFromDirectory.Link; NewString.ClientType = "Dobavitelj"; endIf; EndCycle;

Shranimo pravilo za nalaganje podatkov in se vrnimo na zavihek » Pravila pretvorbe objektov" Dodajmo za informacijski register “ Vrste strank” Pravila pretvorbe lastnosti: stranka in vrsta stranke. Vir bomo pustili prazen in v rutini za obravnavo dogodkov »Pred razkladanjem« zapisali:

//Za lastnost »Client« Value = Source.Client; //Za lastnost “ClientType” If Source.Client = "Buyer" Then Expression = "Enumerations.ClientTypes.Buyer" ElseIf Source.Client = "Supplier" Then Expression = "Enumerations.ClientTypes.Supplier"; endIf;

V seznamu se podrobnosti izpolnijo na podlagi izbranega vzorca podatkov. Odjemalca preprosto posredujemo kot povezavo in tip odjemalca zapišemo v parameter “ Izraz" Podatki tega parametra bodo interpretirani v sprejemniku in ko bo izveden, bo prop napolnjen s pravilno vrednostjo iz oštevilčenja.

To je to, pravila menjave so pripravljena. Obravnavani primer se je izkazal za precej univerzalnega. Podoben pristop se pogosto uporablja pri selitvi podatkov iz konfiguracij, ustvarjenih na platformi 7.7. Osupljiv primer tega je prenos periodičnih podrobnosti.

Naloga št. 3. Triki z deli mize

Pogosto naletite na naloge, ki zahtevajo objavo vrstic iz enega razdelka tabele v več. Na primer, v začetni konfiguraciji so storitve in blago registrirani v enem tabelarnem delu, v sprejemniku pa je shranjevanje teh entitet ločeno. Tudi tega problema ni mogoče rešiti z vizualnimi sredstvi. Tukaj je priročno vzeti rešitev drugega problema kot osnovo.

Naredimo pravilo za razkladanje podatkov, določimo poljuben algoritem in v upravljalniku “Pred razkladanjem” napišemo zahtevo za pridobitev podatkov iz tabelarnega dela.

Da prihranim prostor, ne bom posredoval kode (vedno se lahko sklicujete na vire) zahteve - v njej ni nič nenavadnega. Razvrstimo nastali izbor in razvrščene rezultate umestimo v že znani parameter " Vzorčenje podatkov" Ponovno je priročno uporabiti tabelo vrednosti kot zbirko:

DataFetch = Nova tabela vrednosti(); //Tukaj bo še en del tabele Data Selection.Columns.Add(“Products”); //Tukaj bo tudi tabelarični del Data Selection.Columns.Add(“Storitve”); SelectionData.Columns.Add(“Povezava”);

Naloga št. 4. Prenos podatkov v operacijo

Če organizacija uporablja več računovodskih sistemov, se bo prej ali slej pojavila potreba po selitvi podatkov z naknadnim generiranjem transakcij.

V konfiguraciji " BP"obstaja univerzalni dokument" Delovanje” in je idealna za oblikovanje več objave Samo ena težava je - dokument je narejen zvito in podatkov ni mogoče tako enostavno prenesti vanj.

Primer takšne pretvorbe boste našli v izvorni kodi članka. Izkazalo se je, da je količina kode precej velika, zato je nima smisla objavljati skupaj s člankom. Naj samo povem, da ponovno nalaganje uporablja poljuben algoritem v pravilih za nalaganje podatkov.

Naloga št. 5. Sinhronizacija podatkov v več podrobnostih

Ogledali smo si že več primerov, vendar še vedno nismo govorili o sinhronizaciji objektov med selitvijo. Predstavljajmo si, da moramo prenesti nasprotne stranke in nekatere od njih so verjetno v bazi podatkov prejemnika. Kako prenesti podatke in preprečiti pojav dvojnikov? V zvezi s tem ponuja CD več načinov za sinhronizacijo prenesenih objektov.

Prvi je z edinstvenim identifikatorjem. Številni objekti imajo edinstven identifikator, ki zagotavlja edinstvenost znotraj tabele. Na primer, v imeniku " Nasprotne stranke” ne moreta obstajati dva elementa z istimi identifikatorji. CD naredi izračune za to in za vse ustvarjene PCO-je, takoj je privzeto omogočeno iskanje po identifikatorju. Pri izdelavi PCO bi morali biti pozorni na podobo povečevalnega stekla ob imenu predmeta.

Sinhronizacija z enoličnim identifikatorjem je zanesljiva metoda, vendar ni vedno primerna. Pri združevanju imenikov " Nasprotne stranke” (iz več različnih sistemov) ne bo veliko pomagalo.

V takih primerih je pravilneje sinhronizirati objekte po več kriterijih. Nasprotne stranke je pravilneje iskati po INN, KPP, imenu ali pa iskanje razdeliti na več stopenj.

Pretvorba podatkov ne omejuje razvijalca pri definiranju iskalnih kriterijev. Poglejmo si abstrakten primer. Recimo, da moramo sinhronizirati imenike " Nasprotne stranke"iz različnih informacijske baze. Pripravimo PKO in v nastavitvah pravil za pretvorbo objektov označimo » Nadaljujte z iskanjem po iskalnih poljih, če prejemni objekt ni najden po identifikatorju" S tem dejanjem smo takoj določili dva kriterija iskanja - z edinstvenim identifikatorjem in polji po meri.

Imamo pravico, da sami izbiramo področja. Če označite TIN, KPP in Ime, bomo takoj navedli več iskalnih kriterijev. Udobno? Precej, a to spet ni dovolj. Kaj pa, če želimo spremeniti iskalne kriterije? Na primer, najprej iščemo kombinacijo TIN+KPP in če ne najdemo ničesar, začnemo poskušati srečo z imenom.

Takšen algoritem je povsem mogoče izvesti. V obdelovalniku dogodkov " Iskalna polja” lahko določimo do 10 iskalnih kriterijev in za vsakega od njih določimo svojo sestavo iskalnih polj:

Če je SearchOptionNumber = 1, potem je SearchPropertyNameString = “TIN, KPP”; OtherwiseIfSearchOptionNumber = 2 ThenSearchPropertyNameString = “Ime”; endIf;

Vedno je več rešitev

Vsaka naloga ima več rešitev in prenos podatkov med različnimi konfiguracijami ni izjema. Vsak razvijalec ima pravico izbrati svojo rešitev, vendar če morate nenehno razvijati zapletene migracije podatkov, vam toplo priporočam, da ste pozorni na "". Morda boste morali na začetku vložiti sredstva (čas) v usposabljanje, vendar se vam bo več kot obrestovalo ob prvem bolj ali manj resnem projektu.

Po mojem mnenju podjetje 1C nepravično ignorira temo uporabe pretvorbe podatkov. V celotnem obstoju tehnologije je bila o njej objavljena samo ena knjiga: "1C: Enterprise 8. Pretvorba podatkov: izmenjava med aplikacijskimi rešitvami." Knjiga je že precej stara (2008), vendar je vseeno priporočljivo, da se z njo seznanite.

Še vedno je potrebno poznavanje platform

"Je univerzalno orodje, vendar če ga nameravate uporabiti za ustvarjanje migracij podatkov iz konfiguracij, razvitih za platformo 1C:Enterprise 7.7, boste morali porabiti čas za spoznavanje vgrajenega jezika. Sintaksa in ideologija jezika sta zelo različni, zato boste morali porabiti čas za učenje. Sicer pa princip ostaja enak.