1c konverzija podataka 2.0 verzija 2.1 8.2. Video upute za konverziju

Mehanizam rukovatelja događajima jedan je od ključnih u tehnologiji pretvorbe podataka pomoću "Data Conversion 2.0". Kompetentno i vješto korištenje ovog mehanizma omogućuje programeru da brzo riješi gotovo svaki problem pretvorbe podataka. Korištenjem procesorske tehnologije, izbor podataka i konverzija podataka se lako implementiraju različiti tipovi, složene odabire podataka, postavljanje parametara pretvorbe i mnoge druge zadatke.

Razmotrimo osnovna načela ove tehnologije. Na ključnim točkama u algoritmima za učitavanje i preuzimanje podataka iz obrade univerzalne razmjene, moguće je izvršiti programski kod preuzet iz pravila razmjene podataka, a ne "hard-wired" u obradu učitavanja ili preuzimanja podataka. Konfiguracija Data Conversion 2.0 pruža mogućnosti za integraciju takvog programskog koda u pravila razmjene podataka.

Ukupno raznim mjestima Postoji više od dvadeset algoritama za razmjenu podataka u kojima se može izvršiti kod treće strane. Sukladno tome, konfiguracija omogućuje stvaranje različite vrste rukovatelji događajima.

Kod rukovatelja događajima "vezan" je za objekte pravila razmjene - elemente direktorija: konverzije, pravila konverzije objekata, pravila konverzije svojstava, pravila za učitavanje podataka i pravila za brisanje podataka. Naravno, kod rukovatelja događajima mora zadovoljiti niz zahtjeva. Konkretno, za kontrolu procesa pretvorbe u kodu rukovatelja potrebno je koristiti posebne varijable - parametre. Potpuni opis svih vrsta rukovatelja događajima i dostupnih varijabli može se pronaći u informacijama o rukovateljima na odgovarajućim obrascima.

PAŽNJA!!!

Tehnologije "Data Conversion 2.0" omogućuju razmjenu podataka s informacijskim bazama implementiranim na platformama "1C:Enterprise 7.7" i "1C:Enterprise 8.0". Zbog osobitosti platforme 1C:Enterprise 7.7, priprema pravila za razmjenu podataka pomoću rukovatelja događajima za informacijske baze implementiran na ovoj platformi ima niz značajki.

Za platformu 1C:Enterprise 7.7 nije moguće izvršiti proizvoljni kod (analogno funkciji Run za V8). Ako trebate koristiti rukovatelje događajima za platformu V7.7, morate zamijeniti tekst obrade za istovar ili učitavanje podataka s tekstovima obrade koje izdaje konfiguracija "Pretvorba podataka 2.0".

Ako trebate migrirati podatke s V7.7 na V8, tada:

Prilikom istovara, osim same datoteke pravila, sustav generira tekst modula za obradu V77Exp.ert s funkcijama koje implementiraju rukovatelje događajima. Zatim u konfiguratoru moramo zamijeniti standardni V77Exp.ert modul s novim koji je generirao “Data Conversion 2.0”.

Kada razvijate rješenja za razmjenu podataka na platformi 1C:Enterprise 7.7, morate zapamtiti ovu važnu "sitnicu". Vaša će pravila ispravno funkcionirati samo ako koristite modificiranu obradu, čiji je tekst modula kreiran prilikom istovara pravila razmjene podataka. Postoji jedna iznimka od ovog pravila - ako ne koristite rukovatelje događajima, tada možete koristiti standardnu ​​obradu.

Iskreno, Vladimir Milkin(učitelj i programer).

Pretvorba podataka 2.0 i 2.1 je tehnološka konfiguracija 1C, implementirana na verzijama platforme od 8.1 do 8.3.

Glavni zadatak alata je pisanje pravila za razmjenu između aplikacijskih rješenja 1C 8 i 7. Trenutna verzija konverzije podataka danas je 3.0.

Konverzija podataka je vrlo korisna konfiguracija; uz pomoć nje možete riješiti ne samo problem prijenosa informacija iz jedne baze podataka u drugu, već i, na primjer, konverziju informacija unutar jedne baze podataka.

Konfiguracija je vrlo praktična za korištenje s .

Pretvorba podataka bit će korisna svakom programeru: posjedovanje vještina za stvaranje pravila razmjene ozbiljan je plus za profesionalne vještine.

Da biste naučili kako raditi s konfiguracijom, rješenje je najprikladnije praktični problemi. Pokušajte sami smisliti zadatke, na primjer: prenijeti neke informacije iz jedne baze podataka u drugu, pretvoriti prodajni dokument u dokument o primitku, "voziti" trenutna stanja Po računovodstvo u dokumentu “unos stanja” i drugi poslovi.

Bit će vrlo korisno razumjeti "standardna" pravila razmjene 1C 8.3; tamo često možete pronaći zanimljive primjere implementacije zadataka.

Da biste razumjeli osnove, trebat će vam materijali, razmotrit ćemo ih u nastavku.

Video upute za konverziju

Za osnove postavljanja razmjene podataka u 1C pomoću konfiguracije "1C Data Conversion" pogledajte primjer u videu:

Materijali, udžbenici za proučavanje 1C Data Conversion 2.0

Na Internetu nema previše materijala i dokumentacije, pokušao sam prikupiti najvažnije i najzanimljivije materijale:

0. Prije svega, preporučujem besplatni video tečaj Ilye Leontyeva, dostupan je na veza.

1. Savjetovao bih prije svega korištenje ugrađene pomoći u konfiguraciji. Stvarno je dobro napisano i tehnički dobro implementirano:

2. Drugi najvažniji izvor informacija je stranica http://www.mykod.info/ (stranica je zatvorena), specijalizirana upravo za konverziju podataka. Tamo možete preuzeti veliki broj materijali za pretvorbu.

3. Zasebno bih želio istaknuti udžbenik - (autor - Olga Kuznetsova).

1. Uvod.

2. Što vam je potrebno: 1C konfiguracija: Konverzija podataka 2.* i obrada iz paketa. Kao primjer zadataka, uzmimo konfiguracije 1C: Upravljanje trgovinom 11 i 1C: BP 3.*.

Dakle, da biste razvili pravila za učitavanje podataka u 1C, trebat će vam konfiguracija 1C: Pretvorba objekta 2, kao i obrada uključena u paket.

Na primjer, već smo implementirali bazu podataka konverzije i pokrenuli je.

Napisat ćemo razvoj pravila razmjene između konfiguracije 1C: Trade Management 11 i 1C: Enterprise Accounting 3 (pravila razmjene UT / ACCOUNT).

3. Trebat će nam Obrada da rasteretimo strukturu metapodataka i razmjenu.

Prvo što trebate nabaviti za razvoj su datoteke sa strukturom metapodataka. To se radi pomoću obrade za istovar strukture metapodataka uključene u paket konverzije objekta.

Zapravo, u neraspakiranom konfiguracijskom direktoriju za konfiguracije na kontrolirani oblici zainteresirani smo za obradu MD83Exp.epf. Ako se istovar treba izvršiti iz konfiguracija na regularnim obrascima, koristi se obrada MD82Exp.epf. To je ako, na primjer, trebate dobiti strukturu iz konfiguracija kao što su 1C: UT 10, 1C: Upravljanje proizvodno poduzeće 1.3, 1C: Sveobuhvatna automatizacija 1.1, 1C: Zup 2.5 i tako dalje.

Nadalje, za prijenos i preuzimanje podataka u 1C koristeći naša pravila, morat ćete obraditi "Univerzalnu razmjenu podataka u XML formatu" V8Exchan83.epf za konfiguracije na upravljanim obrascima kao što su 1C: Trade Management 11.*, 1C BP 3, 1C: ERP 2. * i slično. I sukladno tome V8Exchan83.epf - za konfiguracije na regularnim obrascima.

4. Učitavanje strukture metapodataka konfiguracije 1C: Upravljanje trgovinom 11.3 i 1C: Računovodstvo poduzeća 3.0.*

Započnimo s preuzimanjem strukture metapodataka iz konfiguracije 1C: Enterprise Accounting 3.
Otvorimo obradu MD83Exp.epf

U obliku obrade postoje dodatne postavke, gdje možemo omogućiti ili onemogućiti opciju istovara registara i kretanja u 1C. Također postoji izbor gdje će se prijenos odvijati: na 1C poslužitelju ili "na klijentu". Navedite naziv datoteke u koju će se učitati struktura podataka. Na sličan način oslobađamo strukturu metapodataka konfiguracije Trade Management 11.

Sada trebate prenijeti konfiguraciju u bazu podataka konverzije. Do ove točke se može doći i s popisa konfiguracija i s popisa konverzija. Samo se pokrenimo s radne površine:

U dijaloškom okviru učitajte BP strukturu:

I slično - struktura Trgovinskog menadžmenta.

Nakon završetka preuzimanja pojavit će se dijaloški okvir u kojem možete odrediti naziv koji vam odgovara.

6. Stvaranje pravila pretvorbe u 1C na konkretan primjer zadaci.

Zatim idite na “Postavljanje pravila objekta”, gdje stvaramo novu postavku.
U dijaloškom okviru za stvaranje pretvorbe odaberite konfiguraciju "izvora" i konfiguraciju "odredišta" (koju ste prethodno učitali) i kliknite U redu.

Budući da sam u ovom članku planirao prikazati stvaranje "od nule" i "bez smeća", podsjećam vas da ništa ne stvaramo automatski. Nema prototipova.

U ovom dijaloškom okviru nećemo učiniti ništa, samo kliknite "Zatvori".

Napravimo pravila za učitavanje ne jednog dokumenta u jedan, već jedne vrste u drugi, na primjer dokument Prodaja roba i usluga iz UT 11 s potrebnim priručnicima u dokument Prijem roba i usluga u BP 3.

Dakle, stvaramo novi PKO (pravilo za pretvaranje objekata u 1C)

Odaberite izvornu Prodaja robe i usluga i odredišnu Potvrdu o primitku robe i usluga i kliknite U redu.
Pojavit će se dijaloški okvir u kojem ponovno odbijamo automatsko stvaranje PKS (Property Conversion Rules). Zatim ćemo odabrati samo one potrebne.

Ali na prijedlog za stvaranje DVP-a (pravila za učitavanje podataka), odgovaramo "Da".

Stvoreni su PVD-ovi, što će se odraziti na obradu univerzalne XML razmjene za odabir:

Također će se stvoriti pravila za konverziju podataka s praznim pravilima za konverziju svojstava.

Štoviše, jasno je da je prema zadanim postavkama predloženo traženje softvera prema unutarnjem identifikatoru objekta. To je označeno povećalom u blizini PCO. Napravit ćemo vlastitu pretragu i to po broju dokumenta i datumu na početku dana.

Uklanjamo pretragu prema UIO:

Sada počnimo uspoređivati ​​potrebna svojstva (detalje) objekta. Da biste to učinili, kliknite "Sinkroniziraj svojstva" (oznaka "1" na ekranu). Uklanjamo rekurzivno stvaranje pravila ("2"). Uklonite sve označene detalje ("3"). A mi ćemo sami izabrati što nam treba.

Na primjer, odaberite što vam je potrebno:

Skrećem vam pozornost na činjenicu da ćemo PKS druge ugovorne strane napraviti u organizaciju, a organizaciju u drugu ugovornu stranu, a usporedit ćemo i neke detalje koji se ne podudaraju po nazivu, na primjer, "Valuta" i "Dokument Valuta".

Gdje vidimo da još nema pravila konverzije.

Počnimo prolaziti kroz detalje i opisivati ​​ih. Prvo postavljamo pretragu dokumenata kao što sam ranije napisao, učitavamo i tražimo dokument na početku datuma i mijenjamo numeraciju. Zamijenit ćemo prva tri znaka našim prefiksom "UTB". A budući da numeriranje u BP i UT ima po 11 znakova, pravimo složeni broj: naš prefiks i 8 znakova iz izvora. Primjer na slici ispod.

Dokumente uvijek učitavamo istovarene i bez pokreta. Pretpostavljamo da će dokumenti biti obrađeni u prijamniku nakon provjere od strane korisnika.

Da bismo to učinili, postavljanjem PKS-a na nije provedeno, 0 ili 1, koristimo ga kao Booleovu vrijednost.

Koristeći valutu kao primjer, stvaramo pravilo konverzije objekta za PKS. Istovremeno, smatramo da postoje valute u obje baze podataka, te ih treba kodom sinkronizirati. Stoga nećemo stvoriti sve PKS-ove u PQS-u valute, već ćemo samo dodati kod za pretraživanje. Oni. Odbijamo ponudu za izradu PKS za objekt.

Stvoreno pravilo pretvorbe zamijenjeno je u PQR dokumenta za PKS. I samo zadano pravilo nudi jedinstveni identifikator. Popravljamo to, tražimo kod i postavljamo svojstvo da ne stvaramo novi objekt.

Kao rezultat toga, dobivamo sljedeću opciju:

Zatim, po analogiji, stvaramo PKO i PKS za preostale detalje. Štoviše, tražimo organizaciju prema drugoj strani i obrnuto prema TIN-u. Ovako otprilike izgleda sa minimalno detalja (po potrebi možete dodati).

Za ugovore PCO druge strane, tražimo prema PKS drugoj ugovornoj strani, imenu i vlasniku.

Pogledajmo kako navesti traženu vrijednost u tipu nabrajanja u PKS-u. Na primjer, atribut "Vrsta operacije". Ovdje možete koristiti različite uvjete i zamjenske vrijednosti. Na primjer, potrebno nam je da "vrsta operacije" uvijek bude istovarena "Roba", u ovom slučaju dovoljno je napisati traženu vrijednost u retku "čelo".

Dolje je prikazano kako instalirati bez poteškoća iu većini slučajeva PCS za višestrukost međusobnog poravnanja, stopu međusobnog poravnanja, računovodstveni račun.

Za PKO Nomenklaturu ostavit ćemo pretraživanje po internom jedinstvenom identifikatoru. Ali dopustite mi da vam skrenem pozornost na to kako možete redefinirati svoju grupu. Na primjer, slažemo se da će se nova stavka iskrcati iz konfiguracije 1C: Trade Management 11, ali je potrebno da stavka bude prikupljena u određena skupina"Naša grupa".

Za provedbu ovog zadatka stvaramo još jedan PKO. Nazovimo to "NomenclatureParent", što ćemo naznačiti u nadređenom PCS-u u pravilu konverzije.

Postavljamo dva pretraživanja: po nazivu, gdje striktno navodimo naziv naše grupe, a potrebno svojstvo atributa “Ovo je grupa” postavljeno je na istinito.

Budući da smo odlučili da sve naše stavke spadaju u našu grupu, nema potrebe za istovarom grupa iz UT 11 prilikom istovara. nema potrebe za istovarom grupa "Neuspjeh = Izvor".

U DRP (pravila za učitavanje podataka) za prodaju proizvoda i usluga dodat ćemo filtar kako se dokumenti označeni za brisanje ne bi učitavali. Da bismo to učinili, u VDP-u u rukovateljima događajima "Prije istovara" zapisat ćemo filtar "Failure = Object.DeletionMark;".


Spremimo razvijena pravila u datoteku.


7. Ukratko: Prijenos i učitavanje podataka pomoću razvijenih pravila za razmjenu podataka.

Otvorite u 1C: Upravljanje trgovinom 11 obradu "Univerzalna razmjena podataka u XML formatu" V8Exchan83.epf.

Istovar je završen, sada koristimo istu obradu za učitavanje u 1C: Enterprise Accounting 3.


Učitavanje završeno. Provjerimo kako se učitava. Dakle, dokument je učitan, kako smo htjeli - naša Organizacija je učitana u drugu stranu, a druga ugovorna strana u organizaciju. Svi računovodstveni računi su preuzeti i instalirani. Dobili smo broj dokumenta s našim prefiksom i na početku dana. Ispunjeni su svi podaci koji su navedeni.

Provjeravamo utovar artikala. Vidimo da je sve ispalo kako smo planirali.


Izradili smo i ispunili detalje kako smo namjeravali. Postoje mnoge suptilnosti u pretvorbi i neke jednostavne, ali potrebne stvari koje vam pomažu da točno napišete pretvorbu. A to vam omogućuje da minimizirate pogreške, ne pokvarite postojeće podatke i riješite se nepotrebnog smeća. Ovo je jedan od naj jednostavni primjeri. Također možete pretvoriti jedan objekt u više ili, obrnuto, više u jedan.

Sada postoji pretvorba podataka 3, rješava druge probleme. Stoga je također potrebna konverzija 2. Sretno svima u učenju i svladavanju.

Naravno, ako ste programer i to vam je glavni posao, možete pokušati sami napisati konverziju. Ali ako ne, onda biste trebali cijeniti svoje vrijeme u svom području aktivnosti, i ovaj zadatak zamolite profesionalce da to učine.

Migracija podataka između različitih konfiguracija nije trivijalan zadatak. Kao i uvijek, postoji nekoliko rješenja, ali nisu sva optimalna. Pokušajmo razumjeti nijanse prijenosa podataka i odabrati univerzalnu strategiju za rješavanje takvih problema.

Problem migracije podataka (govorimo isključivo o proizvodima tvrtke 1C) s jednog rješenja na drugo nije nastao jučer. Tvrtka 1C savršeno razumije s kojim se poteškoćama programeri suočavaju prilikom stvaranja migracija, pa na sve moguće načine pokušava pomoći s alatima.

Tijekom razvoja platforme, tvrtka je predstavila niz univerzalnih alata, kao i tehnologija koje pojednostavljuju prijenos podataka. Ugrađeni su u sve standardna rješenja a problem migracija između identičnih konfiguracija općenito je riješen. Pobjeda je još jednom potvrđena bliskom integracijom standardnih rješenja.

S migracijama između nestandardnih rješenja situacija je nešto kompliciranija. Širok izbor tehnologija omogućuje programerima da samostalno odaberu optimalan način rješavanja problema sa svog stajališta.

Pogledajmo neke od njih:

  • razmjena putem tekstualnih datoteka;
  • korištenje planova razmjene;
  • itd.

Svaki od njih ima svoje prednosti i nedostatke. Ukratko, glavni nedostatak bit će njegova opširnost. Samostalna provedba Algoritmi migracije prepuni su značajnih vremenskih troškova, kao i dugog procesa otklanjanja pogrešaka. O daljnjoj podršci takvim odlukama ne želim ni govoriti.

Složenost i visoki troškovi podrške potaknuli su tvrtku 1C na stvaranje univerzalnog rješenja. Tehnologije koje omogućuju maksimalno pojednostavljenje razvoja i podrške migracijama. Kao rezultat toga, ideja je implementirana u obliku zasebne konfiguracije - "Pretvorba podataka".

Pretvorba podataka - standardno rješenje, neovisna konfiguracija. Svaki korisnik s pretplatom na “ITS:Prof” može preuzeti ovaj paket potpuno besplatno sa stranice korisničke podrške ili ITS diska. Instalacija se izvodi na standardan način - kao i sva druga standardna rješenja iz 1C.

Sada malo o prednostima rješenja. Počnimo s onim najvažnijim – svestranošću. Rješenje nije prilagođeno specifičnim konfiguracijama/verzijama platforme. Jednako dobro radi i sa standardnim i prilagođenim konfiguracijama. Programeri imaju univerzalnu tehnologiju i standardiziran pristup kreiranju novih migracija. Svestranost rješenja omogućuje vam da pripremite migracije čak i za platforme koje nisu 1C:Enterprise.

Drugi veliki plus su vizualna pomagala. Jednostavne migracije stvaraju se bez programiranja. Da, da, bez ijednog retka koda! Samo zbog toga vrijedi potrošiti vrijeme na učenje tehnologije jednom, a zatim opetovano korištenje neprocjenjivih vještina.

Treća prednost koju bih istaknuo je nepostojanje ograničenja u distribuciji podataka. Programer sam odabire način isporuke podataka konfiguraciji prijemnika. Dvije su opcije dostupne odmah nakon postavljanja: učitavanje u xml datoteku i izravno povezivanje s informacijskom bazom (COM/OLE).

Studira arhitekturu

Već znamo da konverzija podataka može činiti čuda, ali još nije sasvim jasno koje su tehničke prednosti. Prvo što trebate razumjeti je da se svaka migracija podataka (konverzija) temelji na pravilima razmjene. Pravila razmjene su obična xml datoteka koja opisuje strukturu u koju će se učitavati podaci iz informacijske sigurnosti. Servisna obrada koja učitava/preuzima podatke analizira pravila razmjene i na temelju njih vrši učitavanje. Tijekom učitavanja događa se obrnuti proces.

Konfiguracija “CD” je vrsta vizualnog konstruktora uz pomoć kojeg programer kreira pravila razmjene. Ne zna kako preuzeti podatke. Za to je odgovorna dodatna obrada vanjske usluge uključena u CD distribucijski paket. Ima ih nekoliko (XX u nazivu datoteke je broj verzije platforme):

  • MDXXExp.epf- obrada omogućuje učitavanje opisa strukture infobaze u xml datoteku. Opis strukture se učitava na CD za daljnju analizu i izradu pravila razmjene.
  • V8ExchanXX.epf- učitava/preuzima podatke iz informacijske baze sukladno pravilima razmjene. U većini tipičnih konfiguracija, obrada je prisutna izvan kutije (pogledajte stavku izbornika "Service"). Obrada je univerzalna i nije vezana uz bilo kakve specifične konfiguracije/pravila.

U redu, sada, na temelju svega gore navedenog, definirajmo faze razvoja nove konverzije:

  1. Definicija zadatka. Potrebno je jasno razumjeti koje podatke treba prenijeti (iz kojih konfiguracijskih objekata) i, što je najvažnije, gdje ih prenijeti.
  2. Priprema opisa konfiguracijskih struktura (Source/Sink) za naknadno učitavanje na CD. Problem je riješen servisnom obradom MDXXExp.epf.
  3. Učitavanje pripremljenih opisa struktura u informacijsku sigurnost.
  4. Stvaranje pravila razmjene pomoću vizualnog CD alata.
  5. Izvođenje uploada/downloada prema kreiranim pravilima konverzije podataka korištenjem V8ExchanXX.epf obrade.
  6. Otklanjanje pogrešaka pravila razmjene (ako je potrebno).

Najjednostavnija konverzija

Za demonstraciju trebat će nam dvije raspoređene konfiguracije. Odlučio sam se za opciju: “Trade Management” 10. izdanje i malo domaće rješenje. Zadatak će biti prijenos podataka iz standardne "UT" konfiguracije. Ukratko radi, nazovimo samonapisano rješenje "Sudoper", a upravljanje trgovinom "Izvor". Počnimo rješavati problem prijenosom elemenata iz imenika "Nomenklatura".

Prije svega, pogledajmo shemu pretvorbe podataka i ponovno pročitaj popis radnji koje je potrebno učiniti. Zatim pokrećemo konfiguraciju “Izvor” i u njoj otvaramo obradu usluge MD82Exp.epf.

Sučelje za obradu nema obilje postavki. Korisnik samo treba naznačiti tipove metapodataka koji neće biti uključeni u opis strukture. U većini slučajeva ove postavke nije potrebno mijenjati jer Nema posebnog smisla u pokretima istovara pomoću akumulacijskih registara (kao primjer).

Ispravnije je formirati pokret držeći dokumente u prijemniku. Sve pokrete će izvršiti sam dokument nakon prijenosa. Drugi argument u obranu zadanih postavki je smanjenje veličine datoteke s učitavanjem.

Neki dokumenti (osobito u standardnim konfiguracijama) generiraju kretanja kroz više registara. Istovar svih ovih stvari će rezultirajuću XML datoteku učiniti prevelikom. To može zakomplicirati kasniji transport i utovar u bazu prijemnika. Što je veća podatkovna datoteka, to će vam trebati više RAM memorija da ga obrade. Tijekom svoje prakse imao sam priliku susresti se s nepristojno velikim upload datotekama. Takve se datoteke u potpunosti odbijaju analizirati standardnim alatima.

Dakle, ostavljamo sve zadane postavke i učitavamo opis konfiguracije u datoteku. Sličan postupak ponavljamo za drugu bazu.

Otvorite CD i odaberite u glavnom izborniku “Imenici” -> “Konfiguracije”. Imenik pohranjuje opise struktura svih konfiguracija koje se mogu koristiti za stvaranje konverzija. Opis konfiguracije učitavamo jednom, a zatim ga možemo koristiti više puta za stvaranje različitih konverzija.

U prozoru imenika kliknite gumb " Dodati” i u prozoru koji se pojavi odaberite datoteku koja opisuje konfiguraciju. Označite potvrdni okvir "Učitaj u novu konfiguraciju" i kliknite na gumb "Učitaj". Slične radnje izvodimo s opisom strukture druge konfiguracije.

Sada ste spremni za kreiranje pravila razmjene. U glavnom izborniku CD-a odaberite “Directories” -> “Conversions”. Dodati novi element. U prozoru za kreiranje nove konverzije potrebno je navesti: izvornu konfiguraciju (odaberite UT) i odredišnu konfiguraciju (odaberite “Prijemnik”). Zatim otvorite karticu "Napredno" i ispunite sljedeća polja:

  • naziv datoteke s pravilima razmjene - stvorena pravila razmjene bit će spremljena pod tim nazivom. Naziv datoteke možete promijeniti u bilo kojem trenutku, ali najbolje ga je postaviti sada. Ovo će uštedjeti vrijeme u budućnosti. Pravila za demo primjer nazvao sam: "rules-ut-to-priemnik.xml".
  • name - naziv pretvorbe. Naziv može biti apsolutno bilo koji, ja sam se ograničio na “Demo. UT do prijemnika.”

To je to, kliknite "U redu". Odmah se ispred nas pojavljuje prozor koji traži da sva pravila kreiramo automatski. Pristanak na takvu primamljivu ponudu dat će gospodaru naredbu da automatski analizira opis odabranih konfiguracija i samostalno generira pravila razmjene.

Odmah stavimo točku na "i". Čarobnjak neće moći generirati ništa ozbiljno. Međutim, ovu mogućnost ne treba odbaciti. Ako je potrebno uspostaviti razmjenu između identičnih konfiguracija, tada će usluge stručnjaka biti vrlo korisne. Za naš primjer, ručni način je poželjan.

Pogledajmo pobliže prozor "Postavke pravila razmjene". Sučelje se može činiti pomalo zbunjujućim - veliki broj kartica prepunih kontrola. Zapravo, sve i nije tako teško, na ovo ludilo se počnete navikavati nakon nekoliko sati rada s aplikacijom.

U ovoj fazi zanimaju nas dvije kartice: "Pravila za pretvorbu objekata" i "Pravila za prijenos podataka". Najprije moramo konfigurirati pravila podudaranja, tj. usporediti objekte dviju konfiguracija. Na drugom odredite moguće objekte koji će biti dostupni korisniku za učitavanje.

U drugoj polovici kartice "Pravila pretvorbe objekata" nalazi se dodatna ploča s dvije kartice: "Pretvorba svojstava" i " Pretvaranje vrijednosti" Prvi će odabrati svojstva (pojedinosti) odabranog objekta, a drugi je neophodan za rad s unaprijed definiranim vrijednostima (na primjer, unaprijed definirani elementi imenika ili elementi nabrajanja).

Sjajno, sada stvorimo pravila pretvorbe za direktorije. Ovu radnju možete izvršiti na dva načina: upotrijebite čarobnjak za sinkronizaciju objekata (gumb “”) ili ručno dodajte korespondenciju za svaki objekt.

Da bismo uštedjeli prostor, koristit ćemo prvu opciju. U prozoru čarobnjaka poništite odabir grupe " Dokumentacija” (zanimaju nas samo imenici) i proširite grupu “ Imenici" Pažljivo listamo kroz popis i gledamo nazive referentnih knjiga koje možemo usporediti.

U mom slučaju postoje tri takva imenika: Nomenklatura, Organizacije i Skladišta. Postoji i imenik pod nazivom Klijenti, koji služi istoj svrsi kao i " Protustranke"iz konfiguracije" UT" Istina, majstor ih nije mogao usporediti zbog različitih naziva.

Ovaj problem možemo riješiti sami. Nalazimo u prozoru " Podudaranje objekata" priručnik " Klijenti", au stupcu "Izvor" odaberite imenik "Druge strane". Zatim potvrdite okvir u stupcu "Vrsta" i kliknite gumb "U redu".

Čarobnjak za sinkronizaciju objekata ponudit će automatsko stvaranje pravila za pretvaranje svojstava svih odabranih objekata. Svojstva ćemo uspoređivati ​​poimence i za našu demonstraciju to će biti sasvim dovoljno, slažemo se. Sljedeće pitanje bit će prijedlog za stvaranje pravila za učitavanje. Pristanimo i mi na to.

Osnova za pravila razmjene je spremna. Odabrali smo objekte za sinkronizaciju, a pravila za pretvaranje svojstava i pravila za učitavanje su kreirana automatski. Spremimo pravila razmjene u datoteku, zatim otvorimo IB "Izvor" (u mom slučaju to je UT) i pokrenemo obradu usluge u njemu V8Exchan82.epf.

Prije svega, u prozoru za obradu odaberite pravila razmjene koja smo izradili. Na pitanje pravila učitavanja odgovaramo potvrdno. Obrada će analizirati pravila razmjene i izgraditi stablo objekata istog imena dostupnih za učitavanje. Za ovo stablo možemo postaviti sve vrste selekcija ili čvorova za razmjenu, mijenjajući koje trebamo odabrati podatke. Želimo preuzeti apsolutno sve podatke, tako da nema potrebe za instaliranjem filtera.

Nakon dovršetka procesa učitavanja podataka u datoteku, idite na IB “ Prijamnik" U njemu također otvaramo obradu V8Exchan82.epf, samo ovaj put idemo na karticu "Učitavanje podataka". Odaberite podatkovnu datoteku i kliknite gumb "Preuzmi". To je to, podaci su uspješno preneseni.

Problemi u stvarnom svijetu

Prvi demo moglo dovesti u zabludu. Sve izgleda vrlo jednostavno i logično. Zapravo to nije istina. U pravi posao Nastaju problemi koje je teško ili potpuno nemoguće riješiti samo vizualnim sredstvima (bez programiranja).

Kako se ne bih razočarao tehnologijom, pripremio sam nekoliko problema iz stvarnog života. Na poslu ćete sigurno naići na njih. Ne izgledaju tako trivijalno i tjeraju vas da gledate na pretvorbu podataka iz novog kuta. Pažljivo razmotrite prikazane primjere i slobodno ih koristite kao isječke pri rješavanju stvarnih problema.

Zadatak br. 1. Ispunite podatke koji nedostaju

Pretpostavimo da trebamo prenijeti imenik " Protustranke" Primatelj za tu svrhu ima sličan imenik "Klijenti". Potpuno je pogodan za pohranu podataka, ali ima rekvizite” Organizacija“, što vam omogućuje razdvajanje drugih strana prema pripadnosti organizaciji. Prema zadanim postavkama, sve druge strane moraju pripadati trenutnoj organizaciji (ovo se može dobiti iz konstante istog imena).

Postoji nekoliko rješenja problema. Razmotrit ćemo mogućnost popunjavanja detalja “ Organizacija“točno u bazi podataka” Prijamnik“, tj. u trenutku učitavanja podataka. Trenutna organizacija pohranjena je u konstanti, stoga nema prepreka za dobivanje ove vrijednosti. Otvorimo pravilo pretvorbe objekta (u daljnjem tekstu PKO) " Klijenti” (dvaput kliknite na objekt) i u čarobnjaku za postavljanje pravila idite na odjeljak “Rukovatelji događajima”. Na popisu rukovatelja pronaći ćemo " Nakon preuzimanja”.

Opišimo kod za dobivanje trenutne organizacije i zatim ga dodijelimo detaljima. U trenutku kada se aktivira rukovatelj “Nakon učitavanja”, objekt će biti u potpunosti formiran, ali još nije zapisan u bazu podataka. Nitko nam ne brani da ga mijenjamo po vlastitom nahođenju:

If NOT Object.ThisGroup Then Object.Organization = Constants.CurrentOrganization.Get(); završi ako;

Prije ispunjavanja pojedinosti " Organizacija"Potrebno je provjeriti vrijednost atributa" Ova grupa" Za referentnu knjigu " Klijenti"Hijerarhijska značajka je postavljena, pa je provjera grupe neophodna. Ispunite sve pojedinosti na sličan način. Obavezno pročitajte pomoć za druge opcije rukovatelja " Nakon učitavanja" Na primjer, među njima postoji parametar " Odbijanje" Ako mu dodijelite vrijednost "True", tada objekt neće biti zapisan u bazu podataka. Stoga je moguće ograničiti objekte koji se mogu pisati u trenutku učitavanja.

Zadatak br. 2. Podaci za registar informacija

U imeniku “ Protustranke"UT konfiguracije, detalji dostupni" Kupac"I" Davatelj" Oba detalja su tipa " Booleov” i koriste se za određivanje vrste druge ugovorne strane. U IB “ Prijamnik“, u imeniku „ Klijenti“Nema sličnih detalja, ali postoji registar informacija” Vrste klijenata" Obavlja sličnu funkciju i može pohraniti više atributa za jednog klijenta. Naš zadatak je prenijeti vrijednosti detalja u posebne unose u informacijskom registru.

Nažalost, ni tu se ne mogu nositi samo vizualna sredstva. Počnimo s malim, izradimo novi softver za registar informacija " Vrste klijenata" Nemojte ništa navoditi kao izvor. Izbjegavajte automatsko stvaranje pravila za prijenos.

Sljedeći korak je stvaranje pravila za učitavanje. Idite na odgovarajuću karticu i kliknite na " Dodati" U prozoru za dodavanje pravila za upload ispunite:

  • Metoda uzorkovanja. Promjena u "Proizvoljni algoritam";
  • Pravilo pretvorbe. Odaberite registar informacija “Vrste klijenata”;
  • Šifra (naziv) pravila. Zapišite to kao "Uklanjanje tipova klijenata";

Sada trebate napisati kod za odabir podataka za učitavanje. Parametar " Uzorkovanje podataka" U nju možemo smjestiti zbirku s pripremljenim skupom podataka. Parametar " Uzorkovanje podataka" mogu uzeti različita značenja- rezultat upita, odabir, zbirke vrijednosti itd. Inicijaliziramo ga kao tablicu vrijednosti s dva stupca: klijent i tip klijenta.

Ispod je kod za rukovatelj događajima " Prije obrade" Inicijalizira parametar " Uzorkovanje podataka” nakon čega slijedi popunjavanje podataka iz imenika “ Protustranke" Ovdje treba obratiti pozornost na popunjavanje rubrike " Vrsta klijenta" U “UT” naši atributi su tipa “Boolean”, a primatelj je nabrajanje.

U ovoj fazi ih ne možemo pretvoriti u traženi tip (nema ga u UT-u), pa ćemo ih za sada ostaviti u obliku nizova. Ne morate to učiniti, ali odmah želim pokazati kako pretvoriti u tip koji nedostaje u izvoru.

DataFetch = Nova tablica vrijednosti(); DataSelection.Columns.Add("Klijent"); DataSelection.Columns.Add("ClientType"); SelectingDataFromDirectory = Directories.Accounts.Select(); While SelectingDataFromDirectory.Next() Loop If SelectingDataFromDirectory.ThisGroup Then Continue; završi ako;

If Data Selection From Directory.Buyer Then NewRow = Data Selection.Add(); NewRow.Client = DataFetchFromDirectory.Link; NewRow.ClientType = "Kupac"; završi ako; If DataFetchFromDirectory.Supplier Then NewRow = DataFetch.Add(); NewRow.Client = DataFetchFromDirectory.Link; NewString.ClientType = "Dobavljač"; završi ako; EndCycle; Spremimo pravilo za prijenos podataka i vratimo se na karticu " Vrste klijenata” Pravila pretvorbe svojstva: klijent i tip klijenta. Izvor ćemo ostaviti prazan, au rukovatelju događajima "Prije istovara" zapisat ćemo:

//Za svojstvo “Klijent” Vrijednost = Izvor.Klijent; //Za svojstvo “ClientType” If Source.Client = "Buyer" Then Expression = "Enumerations.ClientTypes.Buyer" ElseIf Source.Client = "Supplier" Then Expression = "Enumerations.ClientTypes.Supplier"; završi ako;

U popisu se detalji popunjavaju na temelju odabranog uzorka podataka. Jednostavno prosljeđujemo klijenta kao vezu i upisujemo tip klijenta u parametar “ Izraz" Podaci ovog parametra bit će interpretirani u prijemniku, a kada se izvrši, prop će biti ispunjen ispravnom vrijednošću iz enumeracije.

To je to, pravila razmjene su spremna. Razmatrani primjer se pokazao prilično univerzalnim. Sličan pristup često se koristi prilikom migracije podataka iz konfiguracija kreiranih na platformi 7.7. Upečatljiv primjer toga je prijenos periodičnih detalja.

Zadatak br. 3. Trikovi s dijelovima stola

Često nailazite na zadatke koji zahtijevaju knjiženje redaka iz jednog odjeljka tablice u nekoliko. Primjerice, u početnoj konfiguraciji usluge i roba evidentiraju se u jednom tabelarnom dijelu, au prijemniku je skladište tih entiteta odvojeno. Vizualnim sredstvima opet se problem ne može riješiti. Ovdje je zgodno uzeti rješenje drugog problema kao osnovu.

Pravimo pravilo za istovar podataka, specificiramo proizvoljni algoritam, au rukovatelju “Prije istovara” napišemo zahtjev za dobivanje podataka iz tabelarnog dijela.

Radi uštede prostora neću dati kod (uvijek se možete pozvati na izvore) zahtjeva - u njemu nema ničeg neobičnog. Rezultirajući odabir sortiramo i sortirane rezultate smjestimo u već poznati parametar " Uzorkovanje podataka" Ponovno je prikladno koristiti tablicu vrijednosti kao zbirku:

DataFetch = Nova tablica vrijednosti(); //Ovdje će biti još jedan dio tablice Data Selection.Columns.Add(“Products”); //Ovdje će biti i tabularni dio Data Selection.Columns.Add(“Services”); SelectionData.Columns.Add(“Link”);

Zadatak br. 4. Prijenos podataka u operaciju

Ako organizacija koristi nekoliko računovodstvenih sustava, tada će prije ili kasnije postojati potreba za migracijom podataka s naknadnim generiranjem transakcija.

U konfiguraciji " BP“postoji univerzalni dokument” Operacija” i idealan je za oblikovanje više žica. Postoji samo jedan problem - dokument je lukavo napravljen i podaci se u njega ne mogu tako lako prenijeti.

Naći ćete primjer takve pretvorbe u izvornom kodu članka. Pokazalo se da je količina koda prilično velika, pa nema smisla objavljivati ​​ga uz članak. Samo da kažem da ponovno učitavanje koristi proizvoljan algoritam u pravilima za učitavanje podataka.

Zadatak br. 5. Sinkronizacija podataka preko više detalja

Već smo pogledali nekoliko primjera, ali još uvijek nismo govorili o sinkronizaciji objekata tijekom migracije. Zamislimo da trebamo prenijeti druge ugovorne strane i da su neke od njih vjerojatno u bazi podataka primatelja. Kako prenijeti podatke i spriječiti pojavu duplikata? U tom pogledu CD nudi nekoliko načina za sinkronizaciju prenesenih objekata.

Prvi je prema jedinstvenom identifikatoru. Mnogi objekti imaju jedinstveni identifikator koji jamči jedinstvenost unutar tablice. Na primjer, u imeniku " Protustranke” ne mogu postojati dva elementa s istim identifikatorima. CD radi izračune za ovaj i za sve stvorene PCO-ove, pretraživanje po identifikatoru odmah je omogućeno prema zadanim postavkama. Prilikom izrade PCO-a trebali ste obratiti pozornost na sliku povećala uz naziv objekta.

Sinkronizacija pomoću jedinstvenog identifikatora je pouzdana metoda, ali nije uvijek prikladna. Prilikom spajanja imenika “ Protustranke” (iz nekoliko različitih sustava) neće puno pomoći.

U takvim slučajevima ispravnije je sinkronizirati objekte prema nekoliko kriterija. Ispravnije je tražiti druge ugovorne strane prema INN-u, KPP-u, nazivu ili podijeliti pretragu u nekoliko faza.

Pretvorba podataka ne ograničava programera u definiranju kriterija pretraživanja. Pogledajmo apstraktni primjer. Pretpostavimo da trebamo sinkronizirati direktorije " Protustranke” iz različitih baza podataka. Pripremimo PKO i u postavkama pravila pretvorbe objekta označimo " Nastavite s pretraživanjem polja za pretraživanje ako objekt primatelja nije pronađen prema identifikatoru" Ovom radnjom odmah smo definirali dva kriterija pretraživanja - jedinstvenim identifikatorom i prilagođenim poljima.

Imamo pravo sami birati polja. Označavanjem PIB-a, KPP-a i Naziva odmah ćemo naznačiti nekoliko kriterija pretraživanja. Udobno? Sasvim, ali to opet nije dovoljno. Što ako želimo promijeniti kriterije pretraživanja? Na primjer, prvo tražimo kombinaciju PIB+KPP, a ako ništa ne nađemo, počinjemo iskušavati sreću s imenom.

Takav algoritam je sasvim moguće implementirati. U rukovatelju događajima " Polja za pretraživanje” možemo navesti do 10 kriterija pretraživanja i za svaki od njih definirati vlastiti sastav polja za pretraživanje:

Ako je SearchOptionNumber = 1 tada SearchPropertyNameString = “TIN, KPP”; OtherwiseIfSearchOptionNumber = 2 ThenSearchPropertyNameString = “Ime”; završi ako;

Uvijek postoji nekoliko rješenja

Svaki zadatak ima nekoliko rješenja, a prijenos podataka između različitih konfiguracija nije iznimka. Svaki programer ima pravo odabrati vlastiti put rješenja, ali ako stalno morate razvijati složene migracije podataka, toplo preporučujem da obratite pozornost na "". Možda ćete na početku morati uložiti resurse (vrijeme) u obuku, ali oni će vam se više nego isplatiti na prvom koliko-toliko ozbiljnom projektu.

Po mom mišljenju, tvrtka 1C nepravedno zanemaruje temu korištenja pretvorbe podataka. Tijekom cijelog postojanja tehnologije o njoj je objavljena samo jedna knjiga: "1C: Enterprise 8. Pretvorba podataka: razmjena između aplikacijskih rješenja." Knjiga je dosta stara (2008.), ali ipak je poželjno da se s njom upoznate.

Poznavanje platformi i dalje je neophodno

"je univerzalni alat, ali ako ga planirate koristiti za kreiranje migracija podataka iz konfiguracija razvijenih za platformu 1C:Enterprise 7.7, tada ćete morati potrošiti vrijeme na upoznavanje ugrađenog jezika. Sintaksa i ideologija jezika su vrlo različite, tako da ćete morati potrošiti vrijeme na učenje. Inače princip ostaje isti.




Vrh