1s 8.3 konverzia dát 2.1 ako používať. Video návod na konverziu

1. Úvod.

2. Čo budete potrebovať: Konfigurácia 1C: Konverzia dát 2.* a spracovanie z balíka. Ako príklad úloh si vezmime konfigurácie 1C: Riadenie obchodu 11 a 1C: BP 3.*.

Takže na vývoj pravidiel pre nahrávanie údajov do 1C budete potrebovať konfiguráciu 1C: Object Conversion 2, ako aj spracovanie zahrnuté v balíku.

Napríklad sme už nasadili databázu konverzií a spustili ju.

Napíšeme vývoj pravidiel výmeny medzi konfiguráciou 1C: Trade Management 11 a 1C: Enterprise Accounting 3 (pravidlá výmeny UT / ACCOUNT).

3. Na uvoľnenie štruktúry metadát a ich výmenu budeme potrebovať spracovanie.

Prvá vec, ktorú potrebujete na vývoj, sú súbory so štruktúrou metadát. Toto sa vykonáva pomocou spracovania na uvoľnenie štruktúry metadát zahrnutej v balíku konverzie objektov.

V skutočnosti nás v rozbalenom konfiguračnom adresári pre konfigurácie na riadených formulároch zaujíma spracovanie MD83Exp.epf. Ak je potrebné vykonať vyloženie z konfigurácií na bežných formulároch, použije sa spracovanie MD82Exp.epf. To je, ak napríklad potrebujete získať štruktúru z takých konfigurácií ako 1C: UT 10, 1C: Manufacturing Enterprise Management 1.3, 1C: Integrated Automation 1.1, 1C: Zup 2.5 a tak ďalej.

Ďalej, ak chcete nahrať a stiahnuť údaje do 1C pomocou našich pravidiel, budete musieť spracovať „Univerzálnu výmenu údajov vo formáte XML“ V8Exchan83.epf pre konfigurácie spravovaných formulárov, ako sú 1C: Trade Management 11.*, 1C BP 3, 1C: ERP 2. * a podobne. A podľa toho V8Exchan83.epf - pre konfigurácie na bežných formulároch.

4. Nahranie štruktúry metadát konfigurácie 1C: Trade Management 11.3 a 1C: Enterprise Accounting 3.0.*

Začnime stiahnutím štruktúry metadát z konfigurácie 1C: Enterprise Accounting 3.
Otvorme spracovanie MD83Exp.epf

Vo formulári spracovania sú ďalšie nastavenia, kde môžeme povoliť alebo zakázať možnosť nahrávania registrov a pohybov do 1C. Existuje tiež výber, kde sa uskutoční nahrávanie: na serveri 1C alebo „na klientovi“. Zadajte názov súboru, do ktorého sa nahrá dátová štruktúra. Podobným spôsobom uvoľníme štruktúru metadát konfigurácie Trade Management 11.

Teraz musíte nahrať konfiguráciu do databázy konverzií. Tento bod je možné dosiahnuť zo zoznamu konfigurácií aj zo zoznamu konverzií. Spustite systém z pracovnej plochy:

V dialógovom okne načítajte štruktúru BP:

A podobne - štruktúra Riadenia obchodu.

Po dokončení sťahovania sa zobrazí dialógové okno, v ktorom môžete zadať názov, ktorý vám vyhovuje.

6. Vytvorenie pravidiel konverzie v 1C pomocou konkrétneho príkladu úlohy.

Ďalej prejdite na „Nastavenie pravidiel objektu“, kde vytvoríme nové nastavenie.
V dialógovom okne vytvorenia konverzie vyberte konfiguráciu „zdroj“ a „cieľ“ (ktorú ste predtým načítali) a kliknite na tlačidlo OK.

Keďže som v tomto článku plánoval ukázať tvorbu „od nuly“ a „bez odpadu“, pripomínam, že nič nevytvárame automaticky. Žiadne prototypy.

V tomto dialógovom okne neurobíme nič, stačí kliknúť na „Zavrieť“.

Vytvorme pravidlá pre nahrávanie nie jedného dokladu do jedného, ​​ale jedného druhu do druhého, napríklad doklad Predaj tovarov a služieb z UT 11 s potrebnými referenčnými knihami do dokladu Príjem tovaru a služieb v BP 3.

Takže vytvoríme nové PKO (pravidlo pre konverziu objektov v 1C)

Vyberte zdroj Predaj tovaru a služieb a cieľový príjem tovaru a služieb a kliknite na tlačidlo OK.
V tomto prípade sa zobrazí dialógové okno, kde opäť odmietneme automatické vytváranie PKS (Property Conversion Rules). Ďalej vyberieme len tie potrebné.

Ale na návrh na vytvorenie DVP (pravidlá nahrávania údajov) odpovedáme „Áno“.

Vytvárajú sa PVD, čo sa prejaví pri spracovaní univerzálnej výmeny XML na výber:

Vytvoria sa aj pravidlá konverzie údajov s prázdnymi pravidlami konverzie vlastníctva.

Navyše je jasné, že štandardne sa navrhuje hľadať softvér podľa interného identifikátora objektu. Naznačuje to lupa v blízkosti PCO. Urobíme si vlastné vyhľadávanie, a to podľa čísla dokladu a dátumu na začiatku dňa.

Odstraňujeme vyhľadávanie podľa UIO:

Teraz začnime porovnávať potrebné vlastnosti (detaily) objektu. Ak to chcete urobiť, kliknite na „Synchronizovať vlastnosti“ (označenie „1“ na obrazovke). Odstraňujeme rekurzívne vytváranie pravidiel („2“). Odstráňte všetky označené detaily ("3"). A sami si vyberieme, čo potrebujeme.

Vyberte si napríklad, čo potrebujete:

Dávam do pozornosti, že z PKS protistrany urobíme organizáciu a z organizácie protistranu a porovnáme aj niektoré detaily, ktoré sa nezhodujú podľa názvu, napríklad „Mena“ a „Dokument“. Mena“.

Kde vidíme, že zatiaľ neexistujú žiadne pravidlá konverzie.

Začnime si prechádzať detaily a popisovať ich. Najprv si nastavíme vyhľadávanie dokumentov, ako som už písal, nahrajeme a vyhľadáme dokument na začiatku dátumu a zmeníme číslovanie. Prvé tri znaky nahradíme našou predponou „UTB“. A keďže číslovanie v BP a UT je po 11 znakoch, vytvoríme zložené číslo: našu predponu a 8 znakov zo zdroja. Príklad na snímke obrazovky nižšie.

Dokumenty nahrávame vždy vyložené a bez pohybu. Predpokladáme, že dokumenty budú po overení používateľom spracované v prijímači.

Ak to chcete urobiť, nastavenie PKS ako nevykonané, 0 alebo 1, používame ho ako booleovskú hodnotu.

Pomocou meny ako príkladu vytvoríme pravidlo pre konverziu objektov pre PKS. Zároveň sa domnievame, že v oboch databázach sú meny a mali by byť kódovo synchronizované. Preto nevytvoríme všetky PKS v mene PQS, ale pridáme len vyhľadávací kód. Tie. Ponuku na vytvorenie PKS k objektu odmietame.

Vytvorené Konverzné pravidlo bolo nahradené do PQR dokumentu pre PKS. A samotné predvolené pravidlo ponúka jedinečný identifikátor. Opravíme to, prehľadáme kód a nastavíme vlastnosť tak, aby nevznikol nový objekt.

V dôsledku toho dostaneme nasledujúcu možnosť:

Ďalej analogicky vytvoríme PKO a PKS pre zostávajúce detaily. Okrem toho hľadáme organizáciu podľa protistrany a naopak podľa TIN. Zhruba takto to vyzerá s minimálnymi detailmi (v prípade potreby môžete doplniť).

Pri dohodách protistrany PCO vyhľadávame podľa protistrany PKS, názvu a vlastníka.

Pozrime sa, ako zadať požadovanú hodnotu v type enumerácie v PKS. Napríklad atribút „Typ operácie“. Tu môžete použiť rôzne podmienky a náhradné hodnoty. Napríklad potrebujeme, aby bol „typ prevádzky“ vždy vyložený „Tovar“, v tomto prípade stačí napísať požadovanú hodnotu do riadku „čelo“.

Nižšie je znázornené, ako nainštalovať bez problémov a vo väčšine prípadov PCS pre multiplicitu vzájomného vyrovnania, mieru vzájomného vyrovnania, účtovný účet.

Pre Nomenklatúru PKO ponecháme vyhľadávanie podľa interného jedinečného identifikátora. Ale dovoľte mi upriamiť vašu pozornosť na to, ako môžete predefinovať svoju skupinu. Napríklad súhlasíme s tým, že nová položka bude nahraná z konfigurácie 1C: Trade Management 11, ale je potrebné, aby bola položka zhromaždená v špecifickej skupine „OurGroup“.

Na realizáciu tejto úlohy vytvárame ďalšie PKO. Nazvime to „NomenclatureParent“, čo označíme v rodičovskom PCS v pravidle konverzie.

Nastavili sme dve vyhľadávania: podľa názvu, kde striktne uvádzame názov našej skupiny a požadovaná vlastnosť atribútu „Toto je skupina“ je nastavená na hodnotu true.

Keďže sme sa rozhodli, že všetky naše položky spadajú do našej skupiny, nie je potrebné pri vykladaní vykladať skupiny z UT 11. Za týmto účelom v softvéri Nomenklatúra v obslužnom programe udalosti „Pred vyložením“ nastavíme filter, ktorý nie je potrebné uvoľňovať skupiny „Zlyhanie = zdroj. Táto skupina;“.

V DRP (pravidlá nahrávania údajov) pre Predaj produktov a služieb pridáme filter, aby sa nenahrávali doklady označené na vymazanie. Aby sme to dosiahli, vo VDP v obslužných programoch udalostí „Pred uvoľnením“ napíšeme filter „Failure = Object.DeletionMark;“.


Uložme vyvinuté pravidlá do súboru.


7. Zhrnutie: Nahrávanie a načítanie údajov pomocou vyvinutých pravidiel výmeny údajov.

Otvoriť v 1C: Trade Management 11 spracovanie „Univerzálna výmena údajov vo formáte XML“ V8Exchan83.epf.

Vykladanie bolo dokončené, teraz používame rovnaké spracovanie na načítanie do 1C: Enterprise Accounting 3.


Načítanie dokončené. Pozrime sa, ako sa to načítalo. Dokument sa teda načíta, ako sme chceli – naša Organizácia sa načíta do protistrany a protistrana do organizácie. Všetky účtovné účty sú stiahnuté a nainštalované. Dostali sme číslo dokladu s našou predvoľbou a na začiatku dňa. Všetky údaje, ktoré boli poskytnuté, boli vyplnené.

Kontrolujeme načítanie položiek. Vidíme, že všetko dopadlo tak, ako sme si naplánovali.


Podrobnosti sme vytvorili a vyplnili tak, ako sme zamýšľali. Existuje veľa jemností v konverzii a niekoľko jednoduchých, ale potrebných vecí, ktoré vám pomôžu presne napísať konverziu. A to vám umožňuje minimalizovať chyby, nepokaziť existujúce údaje a zbaviť sa zbytočného odpadu. Toto je jeden z najjednoduchších príkladov. Môžete tiež previesť jeden objekt na veľa, alebo naopak, veľa na jeden.

Teraz je tu konverzia dát 3, rieši iné problémy. Preto je potrebná aj konverzia 2. Veľa šťastia všetkým pri učení a zvládaní.

Samozrejme, ak ste programátor a toto je vaša hlavná práca, môžete si konverziu skúsiť napísať sami. Ale ak nie, mali by ste si vážiť svoj čas vo svojej oblasti činnosti a požiadať odborníkov, aby túto úlohu vykonali.

Konverzia dát 2.0 a 2.1 je technologická konfigurácia 1C, implementovaná na verziách platformy od 8.1 do 8.3.

Hlavnou úlohou nástroja je písať pravidlá pre výmenu medzi aplikačnými riešeniami 1C 8 a 7. Aktuálna verzia konverzie dát je dnes 3.0.

Konverzia dát je veľmi užitočná konfigurácia, s jej pomocou môžete vyriešiť nielen prenos informácií z jednej informačnej bázy do druhej, ale napríklad aj konverziu informácií v rámci jednej databázy.

Konfigurácia je veľmi pohodlná na použitie s .

Konverzia údajov bude užitočná pre každého programátora: schopnosť vytvárať pravidlá výmeny je vážnym plusom pre profesionálne zručnosti.

Ak sa chcete naučiť pracovať s konfiguráciou, najlepšie je riešenie praktických problémov. Skúste si vymyslieť úlohy, napríklad: preniesť nejaké informácie z jednej databázy do druhej, premeniť predajný doklad na príjmový doklad, „zadať“ aktuálne účtovné zostatky do dokladu „zadať zostatky“ a ďalšie úlohy.

Bude veľmi užitočné pochopiť „štandardné“ pravidlá výmeny 1C 8.3; tam často nájdete zaujímavé príklady implementačných úloh.

Aby ste pochopili základy, budete potrebovať materiály, zvážime ich nižšie.

Video návod na konverziu

Základy nastavenia výmeny údajov v 1C pomocou konfigurácie „1C Data Conversion“ nájdete v príklade vo videu:

Materiály, učebnice na štúdium 1C Data Conversion 2.0

Na internete nie je príliš veľa materiálov a dokumentácie, snažil som sa zhromaždiť najdôležitejšie a najzaujímavejšie materiály:

0. V prvom rade odporúčam bezplatný video kurz Ilju Leontyeva, je dostupný na odkaz.

1. V prvom rade by som poradil použiť vstavanú nápovedu v konfigurácii. Je to naozaj dobre napísané a technicky dobre implementované:

2. Druhým najdôležitejším zdrojom informácií je stránka http://www.mykod.info/ (stránka je ukončená), špecializovaná špeciálne na konverziu dát. Tam si môžete stiahnuť veľké množstvo materiálov o konverzii.

3. Samostatne by som chcel vyzdvihnúť učebnicu - (autor - Olga Kuznetsova).

Migrácia údajov medzi rôznymi konfiguráciami nie je triviálna úloha. Ako vždy, riešení je viacero, no nie všetky sú optimálne. Pokúsme sa pochopiť nuansy prenosu údajov a zvoliť univerzálnu stratégiu na riešenie takýchto problémov.

Problém migrácie dát (hovoríme čisto o produktoch spoločnosti 1C) z jedného riešenia do druhého včera nevznikol. Spoločnosť 1C dokonale chápe, s akými ťažkosťami sa vývojári stretávajú pri vytváraní migrácií, a preto sa snaží všetkými možnými spôsobmi pomôcť s nástrojmi.

Počas vývoja platformy spoločnosť predstavila množstvo univerzálnych nástrojov, ako aj technológií, ktoré zjednodušujú prenos dát. Sú zabudované do všetkých štandardných riešení a problém migrácie medzi identickými konfiguráciami bol vo všeobecnosti vyriešený. Víťazstvo opäť potvrdzuje úzka integrácia štandardných riešení.

Pri migráciách medzi neštandardnými riešeniami je situácia o niečo komplikovanejšia. Široký výber technológií umožňuje vývojárom nezávisle zvoliť optimálny spôsob riešenia problému z ich pohľadu.

Pozrime sa na niektoré z nich:

  • výmena prostredníctvom textových súborov;
  • používanie výmenných plánov;
  • atď.

Každý z nich má svoje pre a proti. Ak to zhrnieme, hlavnou nevýhodou bude jeho výrečnosť. Nezávislá implementácia migračných algoritmov je spojená so značnými časovými nákladmi, ako aj s dlhým procesom ladenia. O ďalšej podpore takýchto rozhodnutí ani nechcem hovoriť.

Zložitosť a vysoké náklady na podporu podnietili spoločnosť 1C k vytvoreniu univerzálneho riešenia. Technológie, ktoré umožňujú čo najviac zjednodušiť vývoj a podporu migrácií. V dôsledku toho bola myšlienka implementovaná vo forme samostatnej konfigurácie – „Data Conversion“.

Konverzia dát - štandardné riešenie, nezávislá konfigurácia. Každý používateľ s predplatným „ITS:Prof“ si môže stiahnuť tento balík úplne zadarmo zo stránky používateľskej podpory alebo z disku ITS. Inštalácia sa vykonáva štandardným spôsobom - ako všetky ostatné štandardné riešenia od 1C.

Teraz trochu o výhodách riešenia. Začnime tým najdôležitejším – všestrannosťou. Riešenie nie je prispôsobené konkrétnym konfiguráciám/verziám platformy. Funguje rovnako dobre so štandardnými aj vlastnými konfiguráciami. Vývojári majú univerzálnu technológiu a štandardizovaný prístup k vytváraniu nových migrácií. Všestrannosť riešenia umožňuje pripraviť migrácie aj pre iné platformy ako 1C:Enterprise.

Druhým veľkým plusom sú vizuálne pomôcky. Jednoduché migrácie sa vytvárajú bez programovania. Áno, áno, bez jediného riadku kódu! Už len kvôli tomu stojí za to stráviť čas učením sa technológie raz a potom opakovane používať neoceniteľné zručnosti.

Treťou výhodou, ktorú by som poznamenal, je absencia obmedzení distribúcie dát. Spôsob doručenia dát do konfigurácie prijímača si zvolí vývojár sám. Po vybalení sú k dispozícii dve možnosti: nahranie do súboru xml a priame pripojenie k informačnej databáze (COM/OLE).

Štúdium architektúry

Už vieme, že konverzia dát dokáže zázraky, no zatiaľ nie je celkom jasné, aké sú technické výhody. Prvá vec, ktorú musíte pochopiť, je, že akákoľvek migrácia údajov (konverzia) je založená na pravidlách výmeny. Výmenné pravidlá sú bežný xml súbor popisujúci štruktúru, do ktorej sa budú nahrávať dáta z informačnej bezpečnosti. Spracovanie služby, ktoré nahráva/sťahuje údaje, analyzuje pravidlá výmeny a na základe nich vykonáva nahrávanie. Počas načítania nastáva opačný proces.

Konfigurácia „CD“ je akýmsi vizuálnym konštruktorom, pomocou ktorého vývojár vytvára pravidlá výmeny. Nevie, ako sťahovať dáta. Zodpovedá za to dodatočné externé spracovanie služby zahrnuté v distribučnom balíku CD. Existuje niekoľko z nich (XX v názve súboru je číslo verzie platformy):

  • MDXXExp.epf- spracovanie umožňuje nahrať popis štruktúry infobázy do xml súboru. Popis štruktúry sa nahrá na CD pre ďalšiu analýzu a vytvorenie výmenných pravidiel.
  • V8ExchanXX.epf- nahráva/sťahuje údaje z informačnej základne v súlade s pravidlami výmeny. Vo väčšine typických konfigurácií je spracovanie prítomné po vybalení z krabice (pozri položku ponuky „Servis“). Spracovanie je univerzálne a nie je viazané na žiadne špecifické konfigurácie/pravidlá.

Dobre, teraz, na základe všetkého vyššie uvedeného, ​​definujme fázy vývoja novej konverzie:

  1. Definícia úlohy. Je potrebné jasne pochopiť, aké údaje je potrebné preniesť (z ktorých konfiguračných objektov) a čo je najdôležitejšie, kam ich preniesť.
  2. Príprava popisov konfiguračných štruktúr (Source/Sink) pre následné načítanie do CD. Problém je vyriešený servisným spracovaním MDXXExp.epf.
  3. Načítanie pripravených popisov štruktúr do informačnej bezpečnosti.
  4. Vytváranie pravidiel výmeny pomocou vizuálneho nástroja CD.
  5. Vykonávanie nahrávania/sťahovania podľa vytvorených pravidiel konverzie údajov pomocou spracovania V8ExchanXX.epf.
  6. Ladenie pravidiel výmeny (ak je to potrebné).

Najjednoduchšia konverzia

Na demonštráciu budeme potrebovať dve nasadené konfigurácie. Rozhodol som sa použiť možnosť: „Trade Management“ 10. vydanie a malé domáce riešenie. Úlohou bude preniesť dáta zo štandardnej „UT“ konfigurácie. Pre stručnosť nazvime samostatne napísané riešenie „Sink“ a riadenie obchodu „Source“. Začnime riešiť problém prenesením prvkov z adresára „Nomenclature“.

Najprv sa pozrime na schému konverzie údajov a znovu si prečítajte zoznam akcií, ktoré je potrebné vykonať. Potom spustíme konfiguráciu „Source“ a otvoríme v nej spracovanie služby MD82Exp.epf.

Rozhranie spracovania nemá množstvo nastavení. Používateľ potrebuje iba uviesť typy objektov metadát, ktoré nebudú zahrnuté v popise štruktúry. Vo väčšine prípadov tieto nastavenia nie je potrebné meniť, pretože Vo vykladacích pohyboch pomocou akumulačných registrov (ako príklad) nie je žiadny konkrétny zmysel.

Správnejšie je vytvoriť pohyb pri držaní dokumentov v prijímači. Všetky pohyby vykoná po prevode samotný doklad. Druhým argumentom na obranu predvolených nastavení je zmenšenie veľkosti súboru s nahrávaním.

Niektoré dokumenty (najmä v štandardných konfiguráciách) generujú pohyby vo viacerých registroch. Vyložením všetkých týchto vecí bude výsledný súbor XML príliš veľký. To môže skomplikovať následnú prepravu a nakladanie do základne prijímača. Čím väčší je dátový súbor, tým viac pamäte RAM bude potrebné na jeho spracovanie. Počas mojej praxe som sa mal možnosť stretnúť s neslušne veľkými upload súbormi. Takéto súbory úplne odmietli analyzovať pomocou štandardných nástrojov.

Ponecháme teda všetky predvolené nastavenia a nahráme popis konfigurácie do súboru. Podobný postup zopakujeme aj pri druhom základni.

Otvorte CD a vyberte v hlavnom menu "Adresáre" -> "Konfigurácie". V adresári sú uložené popisy štruktúr všetkých konfigurácií, ktoré možno použiť na vytváranie konverzií. Popis konfigurácie načítame raz a potom ho môžeme použiť viackrát na vytvorenie rôznych konverzií.

V okne adresára kliknite na tlačidlo „ Pridať“ a v zobrazenom okne vyberte súbor s popisom konfigurácie. Začiarknite políčko „Načítať do novej konfigurácie“ a kliknite na tlačidlo „Načítať“. Podobné akcie vykonávame s popisom štruktúry druhej konfigurácie.

Teraz ste pripravení vytvoriť pravidlá výmeny. V hlavnom menu CD zvoľte “Adresári” -> “Konverzie”. Pridajte nový prvok. V okne na vytvorenie novej konverzie musíte zadať: zdrojovú konfiguráciu (vyberte UT) a cieľovú konfiguráciu (vyberte „Prijímač“). Potom otvorte kartu „Rozšírené“ a vyplňte nasledujúce polia:

  • názov súboru pravidiel výmeny - pod týmto názvom sa uložia vytvorené pravidlá výmeny. Názov súboru môžete kedykoľvek zmeniť, ale najlepšie je nastaviť ho teraz. To ušetrí čas v budúcnosti. Pravidlá pre ukážkový príklad som pomenoval: „rules-ut-to-priemnik.xml“.
  • názov – názov konverzie. Názov môže byť úplne akýkoľvek, obmedzil som sa na „Demo. UT do prijímača."

To je všetko, kliknite na „OK“. Okamžite sa pred nami objaví okno so žiadosťou, aby sme všetky pravidlá vytvorili automaticky. Súhlas s takouto lákavou ponukou dá veliteľovi príkaz na automatickú analýzu popisu vybraných konfigurácií a nezávislé generovanie pravidiel výmeny.

Okamžite označme „ja“. Sprievodca nebude môcť vygenerovať nič vážne. Táto možnosť by sa však nemala podceňovať. Ak je potrebné vytvoriť výmenu medzi rovnakými konfiguráciami, budú veľmi užitočné služby špecialistu. Pre náš príklad je vhodnejší manuálny režim.

Pozrime sa bližšie na okno „Nastavenia pravidiel výmeny“. Rozhranie sa môže zdať trochu mätúce - veľké množstvo kariet preplnených ovládacími prvkami. V skutočnosti nie je všetko také ťažké, na toto šialenstvo si začnete zvykať po niekoľkých hodinách práce s aplikáciou.

V tejto fáze nás zaujímajú dve karty: „Pravidlá konverzie objektov“ a „Pravidlá nahrávania údajov“. Najprv musíme nakonfigurovať pravidlá párovania, t.j. porovnať objekty dvoch konfigurácií. V druhom určte možné objekty, ktoré bude mať používateľ k dispozícii na nahranie.

V druhej polovici karty „Pravidlá konverzie objektov“ je ďalší panel s dvoma kartami: „Konverzia majetku“ a „ Prevod hodnôt" Prvý vyberie vlastnosti (podrobnosti) vybraného objektu a druhý je potrebný na prácu s preddefinovanými hodnotami (napríklad preddefinované prvky adresára alebo prvky enumerácie).

Skvelé, teraz vytvoríme pravidlá konverzie pre adresáre. Túto akciu môžete vykonať dvoma spôsobmi: použite Sprievodcu synchronizáciou objektov (tlačidlo „“) alebo pridajte korešpondenciu pre každý objekt manuálne.

Aby sme ušetrili miesto, použijeme prvú možnosť. V okne sprievodcu zrušte začiarknutie skupiny „ Dokumentácia“ (máme záujem len o adresáre) a rozbaľte skupinu “ Adresáre" Starostlivo listujeme zoznamom a pozeráme sa na názvy referenčných kníh, ktoré možno porovnávať.

V mojom prípade existujú tri takéto adresáre: Nomenklatúra, Organizácie a Sklady. Existuje aj adresár s názvom Klienti, ktorý slúži na rovnaký účel ako „ protistrany"z konfigurácie" UT" Pravda, majster ich nemohol porovnať pre ich rozdielne mená.

Tento problém môžeme vyriešiť sami. V okne nájdeme „ Zhody objektov" príručka " klientov“ a v stĺpci „Zdroj“ vyberte adresár „Protistrany“. Potom začiarknite políčko v stĺpci „Typ“ a kliknite na tlačidlo „OK“.

Sprievodca synchronizáciou objektov ponúkne automatické vytvorenie pravidiel pre prevod vlastností všetkých vybraných objektov. Vlastnosti sa porovnajú podľa mena a pre našu ukážku to bude úplne postačovať, súhlasíme. Ďalšou otázkou bude návrh na vytvorenie pravidiel nahrávania. Súhlasme s tým aj my.

Základ pre pravidlá výmeny je pripravený. Vybrali sme objekty na synchronizáciu a automaticky sa vytvorili pravidlá na konverziu vlastností a pravidlá nahrávania. Uložíme pravidlá výmeny do súboru, potom otvoríme IB „Zdroj“ (v mojom prípade je to UT) a spustíme v ňom spracovanie služby V8Exchan82.epf.

Najprv v okne spracovania vyberte pravidlá výmeny, ktoré sme vytvorili. Na otázku pravidiel načítania odpovedáme kladne. Spracovanie analyzuje pravidlá výmeny a vytvorí strom objektov s rovnakým názvom, ktoré sú k dispozícii na nahranie. Pre tento strom môžeme nastaviť všetky druhy výberov alebo výmenných uzlov, ktorých zmenou potrebujeme vybrať údaje. Chceme stiahnuť úplne všetky dáta, takže nie je potrebné inštalovať filtre.

Po dokončení procesu nahrávania údajov do súboru prejdite na IB “ Prijímač" Otvárame v ňom aj spracovanie V8Exchan82.epf, len tentoraz prejdeme na kartu „Načítanie údajov“. Vyberte dátový súbor a kliknite na tlačidlo „Stiahnuť“. To je všetko, údaje boli úspešne prenesené.

Problémy skutočného sveta

Prvé demo môže byť zavádzajúce. Všetko vyzerá celkom jednoducho a logicky. V skutočnosti to nie je pravda. V reálnej práci vznikajú problémy, ktoré je ťažké alebo úplne nemožné vyriešiť len pomocou vizuálnych prostriedkov (bez programovania).

Aby som nebol z techniky sklamaný, pripravil som si niekoľko problémov z reálneho života. V práci na ne určite narazíte. Nevyzerajú tak triviálne a prinútia vás pozrieť sa na konverziu údajov z nového uhla. Predložené príklady dôkladne zvážte a pokojne ich použite ako úryvky pri riešení skutočných problémov.

Úloha č.1. Doplňte chýbajúce údaje

Predpokladajme, že potrebujeme preniesť adresár “ protistrany" Prijímač má na tento účel podobný adresár „Clients“. Je úplne vhodný na ukladanie dát, ale má rekvizity “ Organizácia“, ktorý vám umožňuje oddeliť protistrany podľa príslušnosti k organizácii. Štandardne musia všetky protistrany patriť do aktuálnej organizácie (toto je možné získať z konštanty s rovnakým názvom).

Existuje niekoľko riešení problému. Zvážime možnosť vyplnenia údajov “ Organizácia"priamo v databáze" Prijímač“, t.j. v čase načítania dát. Súčasná organizácia je uložená v konštante, preto neexistujú žiadne prekážky pre získanie tejto hodnoty. Otvorme si pravidlo konverzie objektov (ďalej len PKO) “ klientov“ (dvojitým kliknutím na objekt) a v sprievodcovi nastavením pravidiel prejdite do časti „Správcovia udalostí“. V zozname handlerov nájdeme „ Po stiahnutí”.

Poďme si popísať kód na získanie aktuálnej organizácie a následne ho priradiť k detailom. V čase, keď je spustený obslužný program „Po načítaní“, bude objekt úplne vytvorený, ale ešte nie je zapísaný do databázy. Nikto nám nezakazuje zmeniť to podľa vlastného uváženia:

If NOT Object.ThisGroup Then Object.Organization = Constants.CurrentOrganization.Get(); koniec Ak;

Pred vyplnením údajov " Organizácia"Je potrebné skontrolovať hodnotu atribútu" Táto skupina" Pre referenčnú knihu " klientov„Hierarchická funkcia je nastavená, takže kontrola skupiny je nevyhnutná. Podobným spôsobom vyplňte všetky podrobnosti. Nezabudnite si prečítať pomocníka pre ďalšie možnosti obslužného programu " Po načítaní" Medzi nimi je napríklad parameter „ Odmietnutie" Ak mu priradíte hodnotu „True“, objekt nebude zapísaný do databázy. Takto je možné obmedziť objekty, ktoré je možné zapisovať v čase načítania.

Úloha č.2. Podrobnosti pre informačný register

V adresári „ protistrany"Konfigurácie UT, podrobnosti k dispozícii" kupujúci"A" Poskytovateľ" Oba detaily sú typu „ Boolean“ a používajú sa na určenie typu protistrany. V IB“ Prijímač“, v adresári “ klientov"Neexistujú žiadne podobné podrobnosti, ale existuje register informácií" Typy klientov" Vykonáva podobnú funkciu a môže uložiť viacero atribútov pre jedného klienta. Našou úlohou je preniesť hodnoty detailov do samostatných záznamov v informačnom registri.

Tu si, žiaľ, neporadia ani samotné vizuálne prostriedky. Začnime v malom, vytvorte nový softvér pre register informácií “ Typy klientov" Neuvádzajte nič ako zdroj. Vyhnite sa automatickému vytváraniu pravidiel nahrávania.

Ďalším krokom je vytvorenie pravidiel nahrávania. Prejdite na príslušnú kartu a kliknite na tlačidlo „ Pridať" V okne na pridávanie pravidiel nahrávania vyplňte:

  • Metóda odberu vzoriek. Zmeňte na „Arbitrary algorithm“;
  • Konverzné pravidlo. Vyberte informačný register „Typy klientov“;
  • Kód (názov) pravidla. Zapíšte si to ako „Uvoľňovanie typov klientov“;

Teraz musíte napísať kód na výber údajov na nahranie. Parameter " Vzorkovanie údajov" Môžeme do nej umiestniť kolekciu s pripraveným súborom dát. Parameter " Vzorkovanie údajov“ môže nadobúdať rôzne hodnoty – výsledok dotazu, výber, kolekcie hodnôt atď. Inicializujeme ho ako tabuľku hodnôt s dvoma stĺpcami: klient a typ klienta.

Nižšie je uvedený kód pre obsluhu udalosti “ Pred spracovaním" Inicializuje parameter „ Vzorkovanie údajov“ s následným vyplnením údajov z adresára “ protistrany" Tu by ste mali venovať pozornosť vyplneniu stĺpca „ Typ klienta" V „UT“ sú naše atribúty typu „Boolean“ a príjemcom je enumerácia.

V tejto fáze ich nevieme previesť na požadovaný typ (nie je v UT), preto ich zatiaľ necháme vo forme reťazcov. Nemusíte to robiť, ale hneď chcem ukázať, ako prenášať na chýbajúci typ v zdroji.

DataFetch = New ValueTable(); DataSelection.Columns.Add("Klient"); DataSelection.Columns.Add("ClientType"); SelectingDataFromDirectory = Directories.Accounts.Select(); While SelectingDataFromDirectory.Next() Loop If SelectingDataFromDirectory.ThisGroup Then Continue; koniec Ak; If Data Selection From Directory.Buyer Then NewRow = Data Selection.Add(); NewRow.Client = DataFetchFromDirectory.Link; NewRow.ClientType = "Zákazník"; koniec Ak; If DataFetchFromDirectory.Supplier Then NewRow = DataFetch.Add(); NewRow.Client = DataFetchFromDirectory.Link; NewString.ClientType = "Dodávateľ"; koniec Ak; EndCycle;

Uložíme pravidlo nahrávania údajov a vrátime sa na kartu „ Pravidlá konverzie objektov" Dodajme pre informačný register “ Typy klientov” pravidlá konverzie majetku: klient a typ klienta. Zdroj ponecháme prázdny a do obsluhy udalosti „Pred uvoľnením“ napíšeme:

//Pre vlastnosť “Client” Value = Source.Client; //Pre vlastnosť “ClientType” If Source.Client = "Buyer" Then Expression = "Enumerations.ClientTypes.Buyer" ElseIf Source.Client = "Supplier" Then Expression = "Enumerations.ClientTypes.Supplier"; koniec Ak;

V listingu sú detaily vyplnené na základe vybranej vzorky údajov. Klienta jednoducho odovzdáme ako odkaz a typ klienta napíšeme do parametra “ Výraz" Údaje tohto parametra budú interpretované v prijímači a po vykonaní sa rekvizita naplní správnou hodnotou z enumerácie.

To je všetko, pravidlá výmeny sú pripravené.Uvažovaný príklad sa ukázal ako celkom univerzálny. Podobný prístup sa často používa pri migrácii údajov z konfigurácií vytvorených na platforme 7.7. Pozoruhodným príkladom je prenos periodických detailov.

Úloha č.3. Triky s časťami stola

Často sa stretávate s úlohami, ktoré vyžadujú zaúčtovanie riadkov z jednej časti tabuľky do viacerých. Napríklad pri prvotnej konfigurácii sú služby a tovary evidované v jednej tabuľkovej časti a v prijímači je sklad týchto subjektov rozdelený. Problém opäť nemožno vyriešiť vizuálnymi prostriedkami. Tu je vhodné vziať za základ riešenie druhého problému.

Vytvoríme pravidlo pre vykladanie dát, určíme ľubovoľný algoritmus a do handlera „Pred vyložením“ napíšeme požiadavku na získanie údajov z tabuľkovej časti.

Aby som ušetril miesto, neposkytnem kód (vždy sa môžete odvolať na zdroje) žiadosti - nie je v ňom nič neobvyklé. Výsledný výber triedime a zoradené výsledky umiestnime do už známeho parametra “ Vzorkovanie údajov" Ako kolekciu je opäť vhodné použiť tabuľku hodnôt:

DataFetch = New ValueTable(); //Tu bude ďalšia tabuľková časť Data Selection.Columns.Add(“Products”); //Tu bude aj tabuľková časť Data Selection.Columns.Add(“Services”); SelectionData.Columns.Add(“Link”);

Úloha č.4. Prenos údajov do operácie

Ak organizácia používa niekoľko účtovných systémov, potom skôr alebo neskôr bude potrebné migrovať údaje s následným generovaním transakcií.

V konfigurácii " BP"Existuje univerzálny dokument" Prevádzka“ a je ideálny na vytváranie viacerých drôtov. Je tu len jeden problém - dokument je vyrobený prefíkane a údaje sa doň nedajú tak ľahko preniesť.

Príklad takejto konverzie nájdete v zdrojovom kóde článku. Množstvo kódu sa ukázalo byť dosť veľké, takže nemá zmysel ho zverejňovať v spojení s článkom. Dovoľte mi povedať, že nahrávanie opäť používa ľubovoľný algoritmus v pravidlách pre nahrávanie údajov.

Úloha č.5. Synchronizácia dát naprieč viacerými detailmi

Pozreli sme sa už na niekoľko príkladov, no stále sme nehovorili o synchronizácii objektov počas migrácie. Predstavme si, že potrebujeme previesť protistrany a niektoré z nich sú pravdepodobne v databáze príjemcov. Ako preniesť údaje a zabrániť výskytu duplikátov? V tomto smere ponúka CD niekoľko spôsobov synchronizácie prenášaných objektov.

Prvým je jedinečný identifikátor. Mnoho objektov má jedinečný identifikátor, ktorý zaručuje jedinečnosť v rámci tabuľky. Napríklad v adresári „ protistrany” nemôžu existovať dva prvky s rovnakými identifikátormi. CD na to robí výpočty a pre všetky vytvorené PCO je v predvolenom nastavení okamžite povolené vyhľadávanie podľa identifikátora. Pri vytváraní PCO ste si mali dať pozor na obrázok lupy pri názve objektu.

Synchronizácia pomocou jedinečného identifikátora je spoľahlivá metóda, ale nie vždy je vhodná. Pri zlučovaní adresárov “ protistrany“ (z niekoľkých rôznych systémov) to veľmi nepomôže.

V takýchto prípadoch je správnejšie synchronizovať objekty podľa viacerých kritérií. Správnejšie je hľadať protistrany podľa INN, KPP, Name alebo rozdeliť vyhľadávanie do niekoľkých etáp.

Konverzia údajov neobmedzuje vývojára pri definovaní kritérií vyhľadávania. Pozrime sa na abstraktný príklad. Predpokladajme, že potrebujeme synchronizovať adresáre “ protistrany“ z rôznych informačných báz. Pripravíme si PKO a v nastaveniach pravidiel konverzie objektov zaškrtneme „ Pokračujte vo vyhľadávaní v poliach vyhľadávania, ak sa objekt prijímača nenájde podľa identifikátora" Touto akciou sme okamžite definovali dve kritériá vyhľadávania – podľa jedinečného identifikátora a vlastných polí.

Máme právo vybrať si polia sami. Zaškrtnutím TIN, KPP a Name okamžite označíme niekoľko kritérií vyhľadávania. Pohodlne? Celkom, ale opäť to nestačí. Čo ak chceme zmeniť kritériá vyhľadávania? Napríklad najprv hľadáme kombináciu TIN+KPP a ak nič nenájdeme, tak začneme skúšať šťastie s menom.

Takýto algoritmus je celkom realizovateľný. V obsluhe udalosti „ Vyhľadávacie polia” môžeme špecifikovať až 10 vyhľadávacích kritérií a pre každé z nich definovať vlastné zloženie vyhľadávacích polí:

Ak SearchOptionNumber = 1, potom SearchPropertyNameString = “TIN, KPP”; OtherIfSearchOptionNumber = 2 ThenSearchPropertyNameString = “Názov”; koniec Ak;

Riešení je vždy niekoľko

Každá úloha má niekoľko riešení a prenos údajov medzi rôznymi konfiguráciami nie je výnimkou. Každý vývojár má právo vybrať si svoje vlastné riešenie, ale ak neustále musíte vyvíjať zložité migrácie údajov, dôrazne odporúčam venovať pozornosť „“. Možno budete musieť spočiatku investovať zdroje (čas) do školenia, ale pri prvom viac či menej serióznom projekte sa vám to viac ako vyplatí.

Spoločnosť 1C podľa mňa neférovo ignoruje tému využitia konverzie dát. Počas celej existencie technológie o nej vyšla iba jedna kniha: „1C: Enterprise 8. Konverzia dát: výmena medzi aplikačnými riešeniami.“ Kniha je už dosť stará (2008), ale aj tak je vhodné sa s ňou zoznámiť.

Znalosť platforiem je stále potrebná

“ je univerzálny nástroj, ale ak ho plánujete použiť na vytváranie migrácií údajov z konfigurácií vyvinutých pre platformu 1C: Enterprise 7.7, budete musieť stráviť čas oboznámením sa so vstavaným jazykom. Syntax a ideológia jazyka sú veľmi odlišné, takže budete musieť stráviť čas učením. Inak princíp zostáva rovnaký.