1c převod dat 3 příklady

Konverze dat 2.0 a 2.1 je technologická konfigurace 1C, implementovaná na platformách verzí 8.1 až 8.3.

Hlavním úkolem nástroje je psát pravidla pro výměnu mezi aplikačními řešeními 1C 8 a 7. Aktuální verze konverze dat je dnes 3.0.

Konverze dat je velmi užitečná konfigurace, s její pomocí můžete vyřešit nejen přenos informací z jedné informační báze do druhé, ale například i převod informací v rámci jedné databáze.

Konfigurace je velmi pohodlná pro použití s ​​.

Konverze dat bude užitečná pro každého programátora: schopnost vytvářet pravidla výměny je vážným plusem pro profesionální dovednosti.

Chcete-li se naučit pracovat s konfigurací, nejlépe se hodí řešení praktických problémů. Zkuste si sami vymyslet úkoly, např.: přenést nějaké informace z jedné databáze do druhé, přeměnit prodejní doklad na účtenku, „zadat“ aktuální účetní zůstatky do dokladu „zadat zůstatky“ a další úkoly.

Bude velmi užitečné porozumět „standardním“ pravidlům výměny 1C 8.3; tam často najdete zajímavé příklady implementačních úkolů.

Abyste pochopili základy, budete potřebovat materiály, budeme je zvažovat níže.

Video návod k převodu

Základy nastavení výměny dat v 1C pomocí konfigurace „1C Data Conversion“ viz příklad ve videu:

Materiály, učebnice pro studium 1C Data Conversion 2.0

Na internetu není příliš mnoho materiálů a dokumentace, snažil jsem se shromáždit nejdůležitější a nejzajímavější materiály:

0. Nejprve doporučuji bezplatný videokurz od Ilji Leontyeva, je dostupný na odkaz.

1. V první řadě bych doporučil použít vestavěnou nápovědu v konfiguraci. Je to opravdu dobře napsané a technicky dobře implementované:

2. Druhým nejdůležitějším zdrojem informací je stránka http://www.mykod.info/ (stránka byla uzavřena), specializovaná speciálně na konverzi dat. Zde si můžete stáhnout velké množství materiálů o konverzi.

3. Samostatně bych rád vyzdvihl učebnici - (autor - Olga Kuznetsova).

Pro nastavení výměny dat mezi různými konfiguracemi (včetně samostatně psaných) v 1C existuje velmi flexibilní mechanismus pro nastavení přenosu informací - konfigurace 1C „Data Conversion“ (CD). Podívejme se, jak tento mechanismus funguje, a pokusíme se nastavit pravidla výměny mezi dvěma typickými konfiguracemi:

  • Enterprise Accounting (demo verze), vydání 3.0.30;
  • Mzdy a personální management (demo verze), vydání 3.0.25.

Konfiguračním nástrojem pro nastavení pravidel výměny bude Data Conversion verze 2.1.82. Práce budou probíhat na platformě 8.3.9.

Je důležité si uvědomit, že Data Conversion vám umožňuje organizovat výměnu nejen mezi databázemi verze 8 programu, ale také mezi verzemi 7 a 8 platformy 1C.

Spuštění asistenta

Po instalaci konfigurace „Data Conversion“ a jejím spuštění se jako první otevře okno Startup Assistant (obr. 1).

Můžete jej znovu vyvolat z nabídky Operace->Zpracování nebo z Nápovědy, kde je toto zpracování zvýrazněno jako samostatný příkaz.

Vzhledem k tomu, že neplánujeme používat standardní pravidla převod, ale chystáme se vytvořit vlastní v dalším okně vybereme příslušnou položku ze seznamu (obr. 2).

Obr.2

Kromě vytváření nových pravidel burzy můžeme:


V tuto chvíli bychom si měli dát malou pauzu od vytváření pravidel výměny a promluvit si o souborech konfigurační struktury.

Soubory struktury metadat

Konfigurační balíček Conversion obsahuje několik vnější ošetření, které umožňují nahrát strukturu metadat do souboru xml.

Důležité pravidlo! Zpracování vykládání struktury pro různé databáze musí patřit ke stejné verzi CD.

Pro různé verze platformy, 1C implementovalo jiné zpracování vykládání struktury:

  • MD77Exp.ert – umožňuje uložit konfigurační strukturu sedmi databází do souboru;
  • MD82EXP.epf – exportuje strukturu databází běžících na platformách verze 8.0-8.2;
  • MD83EXP.epf – určeno pro platformu 8.3.

Protože v podmínkách naší úlohy je nutné zorganizovat výměnu mezi databázemi běžícími na verzi 8.3, použijeme třetí zpracování (obr. 4).

Obr.4

Zde musíme specifikovat soubor, do kterého bude struktura nahrána a můžeme nakonfigurovat sadu pomocných tabulek, které se budou výměny účastnit.

Poté, co byly staženy cílové a zdrojové konfigurační soubory, musí být informace z nich načteny do Data Conversion.

Pro tohle:


Pro druhou základnu opakujeme stejné kroky.

Vraťme se k našemu asistentovi.

Pokračujte v práci s asistentem

Po přidání našich dvou databází do adresáře to vypadá (obr. 6).

Pokračujme v práci s asistentem

V dalším okně (obr. 7) musíme vybrat základnu přijímače a zdrojovou základnu.

Obr.7

A nyní se dostáváme k oknu, ve kterém budeme požádáni, abychom určili, na jakých zákonech a korespondencích bude naše výměna založena (obr. 8).

Obr.8

Program může nezávisle, pomocí algoritmů v něm zabudovaných, vytvářet výměny dat. Volbou druhého přepínače můžeme z automaticky vytvořených pravidel vybrat ta, která jsou pro řešení našeho problému nejvhodnější. Pokud chceme samostatně určovat, co a jak přenášet a podle jakých detailů data porovnávat, musíme nastavit přepínač do třetí polohy.

Jelikož si chceme vytvořit vlastní pravidla, vydáme se třetí cestou.

Vytvoření pravidla pro výměnu mezi adresáři

Nastavte přepínač na třetí položku v seznamu a klikněte na tlačítko „Spustit“.

Nacházíme se v průvodci nastavením položky adresáře „Object Conversion Rules“ (obr. 9)

Obr.9

Ve zdrojové databázi musíme vybrat objekt, jehož data budou synchronizována.

V databázi přijímačů je tabulka, kam tato data půjdou.

V další fázi musíme rozhodnout o parametrech zatížení:

  • Jaké podrobnosti budou použity k vyhledání shody;
  • Co dělat se stávajícími prvky;
  • Zda vytvořit chybějící prvky;
  • Jak zacházet s odkazy;
  • Jaká pravidla použít pro číslování nových prvků.

A nahrát parametry.

Pokud se rozhodneme provést automatické párování dat, tento krok vynecháme.

Na závěr musíme vytvořená pravidla nahrát na disk (obr. 10).

Obr.10

Výměna dat

Další výměnu dat provedeme pomocí zpracování V8Exchan83.epf (obr. 11), rovněž součástí dodávky. Využití standardní výměny dat, která je součástí konfigurace nebo vlastního zpracování, při použití pravidel vytvořených na CD může mít za následek vznik výjimečné situace.

Obr.11

A ještě jednou: je nesmírně důležité, aby se verze nahrávaného souboru, konfigurace a zpracování výměny shodovaly a byly převzaty ze stejné dodávky, pouze v tomto případě se budete co nejvíce chránit před nejrůznějšími problémy.

V každém případě, pokud kontrola správnosti přenosu dat prokáže přítomnost konfliktních situací a chyb, zpracování přenosu vám umožní vymazat tato data z databáze.

Snad každý specialista 1C se setkal s nutností přenášet data z jedné informační báze do druhé. V případě, že se konfigurace liší, musíte napsat pravidla převodu dat. Tato pravidla jsou vytvořena v konfiguraci 1C „Data Conversion“.

Data lze také přenášet pomocí . V mnoha konfiguracích 1C 8.3 existuje typická funkčnost pro nastavení synchronizace dat mezi různými konfiguracemi a bezproblémovou integraci s 1C Document Flow.

Ale když je potřeba přenést data mezi absolutně identickými konfiguracemi, můžete si zjednodušit svůj úkol a použít standardní zpracování pro nahrávání a stahování přes XML. Upozorňujeme, že tato metoda, stejně jako převod dat, porovnává objekty mezi sebou podle jedinečného identifikátoru (GUID), nikoli podle názvu.

Toto zpracování si můžete stáhnout na disku ITS nebo pomocí odkazů:

Je univerzální a vhodný pro jakoukoli konfiguraci.

Uvažujme příklad vyložení adresáře "Nomenklatura" z jedné informační báze 1C 8.3 Accounting 3.0 do jiné. Předpokladem bude výběr nadřazenou (skupinou) „Dřevoobrábění“.

Nahrávání dat z 1C do XML

Přejděte do informační databáze, ze které budou data stažena (zdroj). Nezapomeňte je zkontrolovat, vezměte v úvahu všechny možné podmínky, abyste se vyhnuli nežádoucím následkům.

Otevřete zpracování nahrávání a stahování XML data(Ctrl+O).

Zajímá nás karta „Nahrát“. Nejprve zadejte název souboru, do kterého budou data nahrána a cestu pro uložení. V tomto případě jsou data nahrána „do souboru na serveru“.

V hlavičce zpracování můžete nakonfigurovat období, po které bude výběr prováděn. U periodických registrů můžete také určit způsob použití výběru podle období. Pokud je potřeba nahrát pohyby spolu s doklady, nastaví se odpovídající příznak. V tomto případě přetěžujeme adresář, takže není potřeba nic konfigurovat v hlavičce.

Přejděme k výběru dat pro nahrání. V tabulkové části formuláře zpracování zaškrtněte políčka u konfiguračních objektů, které potřebujete přenést.

Sloupec „V případě potřeby vyložit“ uvádí, zda je nutné znovu načíst tento objekt, pokud na něj odkazuje atribut adresáře, který znovu načítáme. Například pozice položky, kterou načítáte, má měrnou jednotku, která není v cílové databázi. Pokud je zaškrtnutý příznak ve sloupci „Nahrát v případě potřeby“ naproti referenční knize s měrnými jednotkami, bude vytvořena nová pozice. V opačném případě bude hodnota atributu „<Объект не найден>“ a jeho jedinečný identifikátor.

V jednoduchém případě bez výběrů bude nastavení přetížení položky vypadat takto.

V v tomto příkladu musíte vybrat pouze položky, které se nacházejí ve složce „Dřevoobrábění“.

Podobné zpracování pro 8.2 umožňuje nastavit výběry pro každý konfigurační objekt v pohodlné formě. Ve verzi 8.3 bohužel žádná taková funkce není. Jedním východiskem z této situace by bylo vybrat potřebné položky na záložce „Další objekty pro vyložení“.

Objekty zde můžete přidávat buď ručně (tlačítko „Přidat“) nebo na žádost („Přidat na žádost...“). Pokud je jich velký počet, je vhodnější druhá možnost.

V tomto případě bude žádost vypadat následovně. Vyplňte parametry, po kontrole údajů dokončete požadavek a klikněte na tlačítko „Vybrat výsledek“.

Po zadání všech nezbytných objektů a dalších prvků pro nahrání klikněte na tlačítko „Nahrát data“. Dostanou se dovnitř XML soubor, jehož název a cesta byly uvedeny dříve. Výsledky této operace se zobrazí ve zprávách.

V tomto příkladu bylo nutné vyložit pouze 3 pozice, ale pět bylo vyloženo. Důvodem je, že byl nastaven příznak naproti adresáři „Nomenklatura“ ve sloupci „Nahrát v případě potřeby“. Spolu s potřebnými pozicemi byli přetíženi i jejich rodiče.

Načítání adresáře z XML

Po úspěšném stažení dat ze zdrojové konfigurace do souboru XML otevřete cílovou databázi. Struktura objektů a jejich detaily se musí vzájemně shodovat. V tomto případě se převod provádí mezi dvěma standardními konfiguracemi 1C: Účetnictví 3.0.

Otevřete zpracování v databázi přijímačů. Toto zpracování slouží k nahrávání i stahování dat. Přejděte na kartu „Stáhnout“ a zadejte cestu k souboru XML, do kterého byla data dříve stažena. Poté klikněte na tlačítko „Stáhnout data“.

Výsledek stahování se zobrazí ve zprávách. V našem případě vše proběhlo v pořádku.

Adresář „Nomenklatura“ v přijímající databázi nebyl vyplněn. Nyní má pět prvků: tři nomenklaturní pozice a dvě skupiny.

Migrace dat mezi různými konfiguracemi není triviální úkol. Jako vždy existuje několik řešení, ale ne všechna jsou optimální. Pokusme se pochopit nuance přenosu dat a zvolit univerzální strategii pro řešení takových problémů.

Problém migrace dat (bavíme se čistě o produktech společnosti 1C) z jednoho řešení do druhého včera nenastal. Společnost 1C dokonale chápe, s jakými obtížemi se vývojáři při vytváření migrací potýkají, a proto se snaží všemi možnými způsoby pomoci s nástroji.

Během vývoje platformy společnost představila řadu univerzálních nástrojů a také technologií, které zjednodušují přenos dat. Jsou zabudovány do všech standardních řešení a problém migrace mezi identickými konfiguracemi byl obecně vyřešen. Vítězství opět potvrzuje těsná integrace standardních řešení.

U migrací mezi nestandardními řešeními je situace poněkud složitější. Široký výběr technologií umožňuje vývojářům nezávisle zvolit optimální způsob řešení problému z jejich pohledu.

Podívejme se na některé z nich:

  • výměna prostřednictvím textových souborů;
  • využívání výměnných plánů;
  • atd.

Každý z nich má své pro a proti. Shrneme-li, hlavní nevýhodou bude jeho výřečnost. Nezávislá implementace migračních algoritmů je zatížena značnými časovými náklady a také dlouhým procesem ladění. O další podpoře takových rozhodnutí nechci ani mluvit.

Složitost a vysoké náklady na podporu přiměly společnost 1C k vytvoření univerzálního řešení. Technologie, které umožňují maximálně zjednodušit vývoj a podporu migrací. V důsledku toho byla myšlenka implementována ve formě samostatné konfigurace – „Data Conversion“.

Konverze dat - standardní řešení, nezávislá konfigurace. Každý uživatel s předplatným „ITS:Prof“ si může tento balíček stáhnout zcela zdarma ze stránky uživatelské podpory nebo z disku ITS. Probíhá instalace standardním způsobem- jako všechna ostatní standardní řešení od 1C.

Nyní něco málo o výhodách řešení. Začněme tím nejdůležitějším – všestranností. Řešení není přizpůsobeno konkrétním konfiguracím/verzím platformy. Funguje stejně dobře se standardní i vlastní konfigurací. Vývojáři mají univerzální technologii a standardizovaný přístup k vytváření nových migrací. Všestrannost řešení umožňuje připravit migrace i pro jiné platformy než 1C:Enterprise.

Druhým velkým plusem jsou vizuální pomůcky. Jednoduché migrace jsou vytvářeny bez programování. Ano, ano, bez jediného řádku kódu! Už jen kvůli tomu se vyplatí strávit čas učením se technologie jednou a poté opakovaně používat neocenitelné dovednosti.

Třetí výhodou, kterou bych poznamenal, je absence omezení distribuce dat. Vývojář sám volí způsob doručení dat do konfigurace přijímače. Po vybalení jsou k dispozici dvě možnosti: nahrání do souboru xml a přímé připojení k informační databázi (COM/OLE).

Studium architektury

Už víme, že konverze dat dokáže zázraky, ale zatím není zcela jasné, jaké jsou technické výhody. První věc, kterou musíte pochopit, je, že jakákoli migrace dat (konverze) je založena na pravidlech výměny. Pravidla výměny jsou běžný xml soubor popisující strukturu, do které se budou nahrávat data z informační bezpečnosti. Zpracování služby, které nahrává/stahuje data, analyzuje pravidla výměny a na jejich základě provádí nahrávání. Během načítání dochází k opačnému procesu.

Konfigurace „CD“ je jakýmsi vizuálním konstruktorem, s jehož pomocí vývojář vytváří pravidla výměny. Neví, jak stahovat data. Za to je zodpovědné dodatečné externí zpracování služeb, které je součástí distribučního balíčku CD. Existuje několik z nich (XX v názvu souboru je číslo verze platformy):

  • MDXXExp.epf- zpracování umožňuje nahrát popis struktury infobáze do xml souboru. Popis struktury se nahraje na CD pro další analýzu a vytvoření pravidel výměny.
  • V8ExchanXX.epf- nahrává/stahuje data z informační základny v souladu s pravidly výměny. Ve většině typických konfiguracích je zpracování přítomno po vybalení z krabice (viz položka nabídky „Servis“). Zpracování je univerzální a není vázáno na žádné konkrétní konfigurace/pravidla.

Dobře, nyní na základě všeho výše uvedeného definujme fáze vývoje nové konverze:

  1. Definice úkolu. Je potřeba jasně pochopit, jaká data je potřeba přenést (z jakých konfiguračních objektů) a hlavně kam je přenést.
  2. Příprava popisů konfiguračních struktur (Source/Sink) pro následné nahrání na CD. Problém je vyřešen zpracováním služby MDXXExp.epf.
  3. Načtení připravených popisů struktur do informační bezpečnosti.
  4. Vytváření pravidel výměny pomocí vizuálního nástroje CD.
  5. Provádění nahrávání/stahování podle vytvořených pravidel konverze dat pomocí zpracování V8ExchanXX.epf.
  6. Ladění pravidel výměny (v případě potřeby).

Nejjednodušší převod

Pro demonstraci budeme potřebovat dvě nasazené konfigurace. Rozhodl jsem se jít s možností: „Trade Management“ 10. vydání a malé domácí řešení. Úkolem bude přenos dat ze standardní konfigurace „UT“. Pro stručnost říkejme vlastnímu řešení „Sink“ a řízení obchodu „Source“. Začněme problém řešit přenesením prvků z adresáře „Nomenclature“.

Nejprve se podívejme na schéma převodu dat a znovu si přečtěte seznam akcí, které je třeba provést. Poté spustíme konfiguraci „Source“ a otevřeme v ní zpracování služby MD82Exp.epf.

Rozhraní zpracování nemá množství nastavení. Uživatel potřebuje pouze uvést typy objektů metadat, které nebudou zahrnuty v popisu struktury. Ve většině případů není nutné tato nastavení měnit, protože Pohyby vykládání pomocí akumulačních registrů nemají žádný zvláštní smysl (jako příklad).

Správnější je tvořit pohyb při držení dokumentů v přijímači. Veškeré pohyby provede doklad sám po převodu. Druhým argumentem na obranu výchozího nastavení je zmenšení velikosti souboru s nahráváním.

Některé dokumenty (zejména typické konfigurace) pohyby formulářů přes více registrů. Vyjmutím všech těchto věcí bude výsledný soubor XML příliš velký. To může zkomplikovat následnou přepravu a nakládání do základny přijímače. Čím větší datový soubor, tím více budete potřebovat paměť s náhodným přístupem zpracovat to. Během své praxe jsem měl možnost setkat se s neslušně velkými uploadovanými soubory. Takové soubory zcela odmítly být analyzovány pomocí standardních nástrojů.

Ponecháme tedy všechna výchozí nastavení a nahrajeme popis konfigurace do souboru. Podobný postup opakujeme i u druhého základu.

Otevřete CD a vyberte v hlavní nabídce "Adresáře" -> "Konfigurace". V adresáři jsou uloženy popisy struktur všech konfigurací, které lze použít k vytváření převodů. Popis konfigurace načteme jednou a poté jej můžeme použít vícekrát k vytvoření různých konverzí.

V okně adresáře klikněte na tlačítko „ Přidat“ a v okně, které se zobrazí, vyberte soubor popisující konfiguraci. Zaškrtněte políčko „Načíst do nové konfigurace“ a klikněte na tlačítko „Načíst“. Podobné akce provádíme s popisem struktury druhé konfigurace.

Nyní jste připraveni vytvořit pravidla výměny. V hlavní nabídce CD vyberte „Adresáře“ -> „Konverze“. Přidat nový prvek. V okně pro vytvoření nového převodu je třeba zadat: zdrojovou konfiguraci (vyberte UT) a cílovou konfiguraci (vyberte „Přijímač“). Dále otevřete kartu „Upřesnit“ a vyplňte následující pole:

  • název souboru pravidel výměny - pod tímto názvem budou uložena vytvořená pravidla výměny. Název souboru můžete kdykoli změnit, ale nejlepší je nastavit jej nyní. To ušetří čas v budoucnu. Pravidla pro ukázkový příklad jsem pojmenoval: „rules-ut-to-priemnik.xml“.
  • jméno – název konverze. Název může být naprosto jakýkoli, omezil jsem se na „Demo. UT do přijímače."

To je vše, klikněte na „OK“. Okamžitě se před námi objeví okno s výzvou, abychom všechna pravidla vytvořili automaticky. Souhlas s takovou lákavou nabídkou dá veliteli příkaz k automatické analýze popisu vybraných konfigurací a nezávislému generování pravidel výměny.

Okamžitě tečkujme „já“. Průvodce nebude schopen vygenerovat nic vážného. Tato možnost by se však neměla podceňovat. Pokud je nutné zřídit výměnu mezi identickými konfiguracemi, budou velmi užitečné služby specialisty. Pro náš příklad je výhodnější manuální režim.

Podívejme se blíže na okno „Nastavení pravidel burzy“. Rozhraní se může zdát trochu nepřehledné – velké množství záložek napěchovaných ovládacími prvky. Ve skutečnosti není vše tak obtížné, na toto šílenství si začnete zvykat po několika hodinách práce s aplikací.

V této fázi nás zajímají dvě karty: „Pravidla konverze objektů“ a „Pravidla nahrávání dat“. Nejprve musíme nakonfigurovat pravidla párování, tzn. porovnat objekty dvou konfigurací. Na druhém určete možné objekty, které budou uživateli k dispozici pro nahrání.

V druhé polovině záložky „Pravidla konverze objektů“ je další panel se dvěma kartami: „Převod vlastností“ a „ Převod hodnot" První vybere vlastnosti (detaily) vybraného objektu a druhý je nezbytný pro práci s předdefinovanými hodnotami (například předdefinované prvky adresáře nebo prvky výčtu).

Skvělé, nyní vytvoříme pravidla převodu pro adresáře. Tuto akci můžete provést dvěma způsoby: použijte Průvodce synchronizací objektů (tlačítko „“) nebo přidejte korespondenci pro každý objekt ručně.

Pro úsporu místa použijeme první možnost. V okně průvodce zrušte zaškrtnutí skupiny „ Dokumentace“ (zajímají nás pouze adresáře) a rozbalte skupinu “ Adresáře" Pečlivě listujeme seznamem a díváme se na názvy referenčních knih, které lze porovnávat.

V mém případě existují tři takové adresáře: Nomenklatura, Organizace a Sklady. Existuje také adresář nazvaný Klienti, který slouží stejnému účelu jako „ Protistrany"z konfigurace" UT" Pravda, mistr je nemohl srovnávat kvůli jejich rozdílným jménům.

Tento problém můžeme vyřešit sami. Najdeme v okně" Shoda objektů" příručka " klienti“ a ve sloupci „Zdroj“ vyberte adresář „Protistrany“. Poté zaškrtněte políčko ve sloupci „Typ“ a klikněte na tlačítko „OK“.

Průvodce synchronizací objektů nabídne automatické vytvoření pravidel pro převod vlastností všech vybraných objektů. Vlastnosti budou porovnány jmenovitě a pro naši ukázku to bude zcela dostačující, souhlasíme. Další otázkou bude návrh na vytvoření pravidel nahrávání. Přiznejme si to také.

Základ pro pravidla výměny je připraven. Vybrali jsme objekty pro synchronizaci a automaticky se vytvořila pravidla pro převod vlastností a pravidla pro nahrávání. Uložme pravidla výměny do souboru, pak otevřeme IB „Source“ (v mém případě je to UT) a spustíme v něm zpracování služby V8Exchan82.epf.

Nejprve v okně zpracování vyberte pravidla výměny, která jsme vytvořili. Na otázku pravidel načítání odpovídáme kladně. Zpracování analyzuje pravidla výměny a vytvoří strom objektů se stejným názvem, které lze nahrát. Pro tento strom můžeme nastavit nejrůznější výběry nebo výměnné uzly, jejichž změnou potřebujeme vybrat data. Chceme stáhnout naprosto všechna data, takže není potřeba instalovat filtry.

Po dokončení procesu nahrávání dat do souboru přejděte na IB “ Přijímač" Otevíráme v něm i zpracování V8Exchan82.epf, pouze tentokrát přejdeme na kartu „Načítání dat“. Vyberte datový soubor a klikněte na tlačítko „Stáhnout“. To je vše, data byla úspěšně přenesena.

Problémy reálného světa

První demo může být zavádějící. Vše vypadá celkem jednoduše a logicky. Ve skutečnosti to není pravda. V skutečnou práci Vznikají problémy, které je obtížné nebo zcela nemožné řešit pouze pomocí vizuálních prostředků (bez programování).

Abych nebyl zklamán technologií, připravil jsem několik reálných problémů. V práci na ně určitě narazíte. Nevypadají tak triviálně a nutí vás podívat se na převod dat z nového úhlu. Předložené příklady pečlivě zvažte a klidně je použijte jako úryvky při řešení skutečných problémů.

Úkol č. 1. Doplňte chybějící údaje

Předpokládejme, že potřebujeme přenést adresář “ Protistrany" Přijímač má pro tento účel podobný adresář „Clients“. Je zcela vhodný pro ukládání dat, ale má rekvizity „ Organizace“, což vám umožňuje oddělit protistrany podle příslušnosti k organizaci. Standardně musí všechny protistrany patřit k aktuální organizaci (to lze získat ze stejnojmenné konstanty).

Existuje několik řešení problému. Zvážíme možnost vyplnění údajů “ Organizace"přímo v databázi" Přijímač", tj. v době načítání dat. Aktuální organizace je uložena v konstantě, proto neexistují žádné překážky pro získání této hodnoty. Otevřeme pravidlo konverze objektů (dále jen PKO) “ klienti“ (dvojitě klikněte na objekt) a v průvodci nastavením pravidel přejděte do sekce „Obsluhy událostí“. V seznamu handlerů najdeme „ Po stažení”.

Pojďme si popsat kód pro získání aktuální organizace a následně jej přiřadit k detailům. V době, kdy se spustí obslužná rutina „Po načtení“, bude objekt plně vytvořen, ale ještě není zapsán do databáze. Nikdo nám nezakazuje měnit to podle našeho uvážení:

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

Před vyplněním údajů" Organizace"Je nutné zkontrolovat hodnotu atributu" Tato skupina" Pro referenční knihu " klienti„Hierarchická funkce je nastavena, takže kontrola skupiny je nezbytná. Případné údaje vyplňte podobným způsobem. Nezapomeňte si přečíst nápovědu pro další možnosti obslužného programu " Po načtení" Mezi nimi je například parametr „ Zamítnutí" Pokud mu přiřadíte hodnotu „True“, objekt nebude zapsán do databáze. Je tedy možné omezit objekty, které lze zapisovat v době načítání.

Úkol č. 2. Podrobnosti k registru informací

V adresáři " Protistrany"Konfigurace UT, podrobnosti k dispozici" Kupující" A " Poskytovatel" Oba detaily jsou typu „ Boolean“ a používají se k určení typu protistrany. V IB" Přijímač“, v adresáři “ klienti"Neexistují žádné podobné podrobnosti, ale existuje registr informací" Typy klientů" Provádí podobnou funkci a může uložit více atributů pro jednoho klienta. Naším úkolem je přenést hodnoty detailů do samostatných záznamů v registru informací.

Ani zde si bohužel vizuální prostředky samy o sobě neporadí. Začněme v malém, vytvořte nový software pro registr informací “ Typy klientů" Neuvádějte nic jako zdroj. Vyhněte se automatickému vytváření pravidel nahrávání.

Dalším krokem je vytvoření pravidel nahrávání. Přejděte na příslušnou kartu a klikněte na „ Přidat" V okně pro přidání pravidel nahrávání vyplňte:

  • Metoda odběru vzorků. Změňte na „Arbitrary algorithm“;
  • Konverzní pravidlo. Vyberte informační rejstřík „Typy klientů“;
  • Kód (název) pravidla. Zapište si to jako „Ukládání typů klientů“;

Nyní musíte napsat kód pro výběr dat pro nahrání. Parametr " Vzorkování dat" Můžeme do ní umístit kolekci s připravenou datovou sadou. Parametr " Vzorkování dat“ může nabývat různých hodnot – výsledek dotazu, výběr, kolekce hodnot atd. Inicializujeme jej jako tabulku hodnot se dvěma sloupci: klient a typ klienta.

Níže je kód pro obsluhu události " Před zpracováním" Inicializuje parametr „ Vzorkování dat“ následuje vyplnění údajů z adresáře “ Protistrany" Zde byste měli věnovat pozornost vyplnění sloupce „ Typ klienta" V „UT“ jsou naše atributy typu „Boolean“ a příjemcem je výčet.

V této fázi je nemůžeme vést správný typ(není to v UT), takže to zatím necháme ve formě řetězců. Nemusíte to dělat, ale hned chci ukázat, jak přetypovat na chybějící typ ve 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; endIf; If Data Selection From Directory.Buyer Then NewRow = Data Selection.Add(); NewRow.Client = DataFetchFromDirectory.Link; NewRow.ClientType = "Zákazník"; endIf; If DataFetchFromDirectory.Supplier Then NewRow = DataFetch.Add(); NewRow.Client = DataFetchFromDirectory.Link; NewString.ClientType = "Dodavatel"; endIf; EndCycle;

Uložíme pravidlo nahrávání dat a vrátíme se na kartu „ Pravidla konverze objektů" Dodejme pro registr informací “ Typy klientů” pravidla konverze majetku: klient a typ klienta. Zdroj ponecháme prázdný a do obslužné rutiny události „Před uvolněním“ napíšeme:

//Pro vlastnost “Client” Value = Source.Client; //Pro vlastnost “ClientType” If Source.Client = "Buyer" Then Expression = "Enumerations.ClientTypes.Buyer" ElseIf Source.Client = "Supplier" Then Expression = "Enumerations.ClientTypes.Supplier"; endIf;

Ve výpisu jsou detaily vyplněny na základě vybraného datového vzorku. Klienta jednoduše předáme jako odkaz a do parametru zapíšeme typ klienta Výraz" Data tohoto parametru budou interpretována v přijímači a při spuštění se prop naplní správnou hodnotou z výčtu.

To je vše, pravidla výměny jsou připravena Uvažovaný příklad se ukázal jako zcela univerzální. Podobný přístup se často používá při migraci dat z konfigurací vytvořených na platformě 7.7. Nápadným příkladem toho je přenos periodických detailů.

Úkol č. 3. Triky s díly stolu

Často narazíte na úkoly, které vyžadují zaúčtování řádků z jedné části tabulky do několika. Například ve výchozí konfiguraci jsou služby a zboží evidovány v jedné tabulkové části a v přijímači je odděleno uložení těchto subjektů. Problém opět nelze vyřešit vizuálními prostředky. Zde je vhodné vzít za základ řešení druhého problému.

Vytvoříme pravidlo pro vykládání dat, určíme libovolný algoritmus a v handleru „Před vyložením“ zapíšeme požadavek na získání dat z tabulkové části.

Kvůli úspoře místa neposkytnu kód (vždy se můžete odkázat na zdroje) požadavku - není v něm nic neobvyklého. Výsledný výběr protřídíme a seřazené výsledky umístíme do již známého parametru “ Vzorkování dat" Jako kolekci je opět vhodné použít tabulku hodnot:

DataFetch = New ValueTable(); //Tady bude další část tabulky Data Selection.Columns.Add(“Produkty”); //Zde bude také tabulková část Data Selection.Columns.Add(“Services”); SelectionData.Columns.Add(“Odkaz”);

Úkol č. 4. Přenos dat do operace

Pokud organizace používá několik účetních systémů, bude dříve nebo později potřeba migrovat data s následným generováním transakcí.

V konfiguraci " BP„Existuje univerzální dokument“ Úkon“ a je ideální pro tvarování více příspěvky Je tu jen jeden problém – dokument je vytvořen mazaně a data do něj nelze tak snadno přenést.

Příklad takové konverze najdete ve zdrojovém kódu článku. Množství kódu se ukázalo být poměrně velké, takže nemá smysl jej zveřejňovat ve spojení s článkem. Dovolte mi jen říci, že nahrávání opět používá libovolný algoritmus v pravidlech pro nahrávání dat.

Úkol č. 5. Synchronizace dat napříč více detaily

Již jsme se podívali na několik příkladů, ale stále jsme nemluvili o synchronizaci objektů během migrace. Představme si, že potřebujeme převést protistrany a některé z nich jsou pravděpodobně v databázi příjemců. Jak přenést data a zabránit výskytu duplikátů? V tomto ohledu nabízí CD několik způsobů synchronizace přenášených objektů.

První je podle jedinečného identifikátoru. Mnoho objektů má jedinečný identifikátor, který zaručuje jedinečnost v rámci tabulky. Například v adresáři „ Protistrany” nemohou existovat dva prvky se stejnými identifikátory. CD pro to provádí výpočty a pro všechna vytvořená PCO je ve výchozím nastavení okamžitě povoleno vyhledávání podle identifikátoru. Při vytváření PCO jste měli věnovat pozornost obrázku lupy u názvu objektu.

Synchronizace pomocí jedinečného identifikátoru je spolehlivá metoda, ale není vždy vhodná. Při slučování adresářů“ Protistrany“ (z několika různých systémů) to moc nepomůže.

V takových případech je správnější synchronizovat objekty podle několika kritérií. Správnější je hledat protistrany podle INN, KPP, Name nebo rozdělit hledání do několika fází.

Konverze dat neomezuje vývojáře v definování kritérií vyhledávání. Podívejme se na abstraktní příklad. Předpokládejme, že potřebujeme synchronizovat adresáře “ Protistrany"od různých informační základny. Připravíme PKO a v nastavení pravidel konverze objektů zaškrtneme „ Pokračujte v hledání vyhledávacích polí, pokud není objekt příjemce nalezen podle identifikátoru" Touto akcí jsme okamžitě definovali dvě vyhledávací kritéria – pomocí jedinečného identifikátoru a vlastních polí.

Máme právo si obory vybrat sami. Zaškrtnutím TIN, KPP a Name okamžitě označíme několik kritérií vyhledávání. Komfortní? Docela, ale to zase nestačí. Co když chceme změnit kritéria vyhledávání? Například nejprve hledáme kombinaci TIN+KPP, a pokud nic nenajdeme, pak začneme zkoušet štěstí s názvem.

Takový algoritmus je docela dobře proveditelný. V obsluze události " Vyhledávací pole” můžeme zadat až 10 vyhledávacích kritérií a pro každé z nich definovat vlastní složení vyhledávacích polí:

Pokud SearchOptionNumber = 1, pak SearchPropertyNameString = “TIN, KPP”; OtherIfSearchOptionNumber = 2 ThenSearchPropertyNameString = “Jméno”; endIf;

Vždy existuje několik řešení

Každá úloha má několik řešení a přenos dat mezi různými konfiguracemi není výjimkou. Každý vývojář má právo vybrat si své vlastní řešení, ale pokud neustále musíte vyvíjet složité migrace dat, důrazně doporučuji věnovat pozornost „“. Možná budete muset zpočátku investovat prostředky (čas) do školení, ale ty se vám více než vyplatí na prvním více či méně seriózním projektu.

Dle mého názoru společnost 1C nespravedlivě ignoruje téma využití konverze dat. Za celou dobu existence technologie o ní vyšla pouze jedna kniha: „1C: Enterprise 8. Konverze dat: výměna mezi aplikačními řešeními.“ Kniha je poměrně stará (2008), ale přesto je vhodné se s ní seznámit.

Znalost platforem je stále nezbytná

"je univerzální nástroj, ale pokud jej plánujete použít k vytváření migrací dat z konfigurací vyvinutých pro platformu 1C:Enterprise 7.7, budete muset trávit čas seznamováním se s vestavěným jazykem. Syntaxe a ideologie jazyka jsou velmi odlišné, takže budete muset trávit čas učením. Jinak princip zůstává stejný.