KELL

On neid, kes loevad seda uudist enne sind.
Tellige uusimate artiklite saamiseks.
Meil
Nimi
Perekonnanimi
Kuidas teile meeldiks Kellukest lugeda
Rämpsposti pole

Spetsiaalne konfiguratsioon "1C: andmete teisendamine 2.0"

Platvormi 1C:Enterprise kaheksanda versiooni väljaandmine on muutunud oluliseks sammuks automatiseerimissüsteemide arendamisel. 1C:Enterprise 8 platvormi kavandamisel võeti arvesse 1C:Enterprise 7.7 platvormil põhinevate lahenduste kasutamise tohutut kogemust: platvormi sisseehitatud keel ja tüüpilised konfiguratsioonid olid tõsiselt ümber kujundatud, andmete salvestamise ja juurdepääsu struktuur. muudeti, loodi uusi tööstuslikke lahendusi, mis realiseerivad uue platvormi eeliseid. Varasemate keelekonstruktsioonide kasutamine uuel platvormil on muutunud sobimatuks.

Selle probleemi lahendamise hõlbustamiseks (andmete edastamine versioonist 7.7 versioonile 8) on 1C välja andnud spetsiaalse konfiguratsiooni "Data Conversion 2.0". See loodi selleks, et aidata spetsialiste erinevate andmeedastusprobleemide lahendamisel. 1C on välja andnud valmis reeglid andmete edastamiseks sama tüüpi konfiguratsioonidest, näiteks 1C: Accounting 7.7-st 1C: Accounting 8-le, kuid mittestandardsete või muudetud standardkonfiguratsioonide kasutajad 1C: Enterprise 8 platvormile üleminekul peate ise looma edastusreeglite andmed.

Andmeedastusprobleemide lahendamise erinevate privaatsete meetodite puhul jääb lahendatavate probleemide hulk praktiliselt muutumatuks:

Viiteteabe sünkroonimine (uue loomine, värskendamine olemasolevad elemendid kataloogid, hierarhia kustutamine, salvestamine või muutmine, andmete hargnemine, perioodiliste detailide väärtuste muutmise ajaloo edastamine);

Dokumentide ja toimingute sünkroniseerimine (dokumentide loomine, muutmine või üht tüüpi dokumendi teisendamine teiseks, liitmine või paljundamine);

Raamatupidamisregistrite pidamiseks piisavate algtingimuste loomine majanduslik tegevus(ülejäänud kauba ülekanne jne).

Erinevate versioonide ja/või konfiguratsioonide 1C:Enterprise andmesalvestusstruktuurid on erinevad, seega pole andmeedastus lihtsalt failide või tabelite kopeerimine, vaid nende teisendamine. Selleks, et teisendus oleks üheselt mõistetav ja korrektne, on vaja luua ja seadistada andmeedastuse reeglid. Reeglite loomine ja konfigureerimine andmete ülekandmiseks erinevate infobaaside vahel on võimalik, kui on teada andmesalvestuse struktuur lähte- ja sihtandmebaasis. Konfiguratsiooni metaandmete struktuuri kirjeldus peaks olema ühtne. Konfiguratsiooni "Data Conversion 2.0" kasutatakse andmeedastusreeglite loomiseks ja konfigureerimiseks lähte- ja sihtkoha konfiguratsiooni metaandmete struktuuri kirjelduste põhjal.

Andmete edastamise protsess teabebaaside vahel koosneb järgmistest sammudest.

  • 1. Metaandmete kirjeldusfailide loomine.
  • 2. Konfiguratsioonide loomine jaotises "Andmete teisendamine".
  • 3. Konversiooni enda loomine.
  • 4. Andmete teisendamise reeglite järjepidev loomine.
  • 5. Andmete üleslaadimise reeglite järjepidev loomine.
  • 6. Tegelik protseduur andmete mahalaadimiseks ja laadimiseks ühest konfiguratsioonist teise.

Sest selle spetsiaalse konfiguratsiooni kasutamine on üks tõhusamaid Sel hetkel sedalaadi probleemide lahendamise viisid ja lisaks isikliku kogemuse allikas, mis on väga kasulik hariduslikel eesmärkidel, seejärel töötada välja andmevahetuse mehhanism IS-i "Server: rendiarvestus" ja "1C: ettevõtte raamatupidamine" vahel. LLC "LLC" jaoks on meetod, mis põhineb konfiguratsiooni "Data Conversion 2.0" kasutamisel.

Andmete teisendamine 2.0 ja 2.1 on 1C tehnoloogiline konfiguratsioon, mida rakendatakse platvormi versioonidel 8.1 kuni 8.3.

Tööriista põhiülesanne on vahetusreeglite kirjutamine rakenduslahenduste 1C 8 ja 7 vahel. Praegune andmete teisendamise versioon on täna 3.0.

Andmete teisendamine on väga kasulik konfiguratsioon, mille abil saate lahendada mitte ainult teabe ühest teabebaasist teise edastamise, vaid ka näiteks teabe teisendamise probleemi ühes andmebaasis.

Konfiguratsiooni on väga mugav kasutada, kui .

Andmete teisendamine on kasulik igale programmeerijale: vahetusreeglite loomise oskus on tõsine pluss ametialastele oskustele.

Konfiguratsiooniga töötamise õppimiseks sobib kõige paremini praktiliste probleemide lahendamine. Proovige enda jaoks ülesandeid välja mõelda, näiteks: viige mistahes teave ühest andmebaasist teise, muutke rakendusdokument kviitungidokumendiks, "sõita" jooksvad saldod peal raamatupidamine dokumendis "saldode sisestamine" ja muud ülesanded.

Väga kasulik on mõista börsi 1C 8.3 "tüüpilisi" reegleid, sealt leiate sageli huvitavaid näiteid ülesannete rakendamisest.

Põhitõdede mõistmiseks vajate materjale, kaaluge neid allpool.

Video juhend teisendamiseks

Andmevahetuse seadistamise põhitõdede kohta 1C-s, kasutades konfiguratsiooni „1C Data Conversion”, vaadake näidet videost:

Materjalid, õpikud 1C Data Conversion 2.0 õppimiseks

Netis pole liiga palju materjale ja dokumentatsiooni, püüdsin koguda kõige olulisemad ja huvitavamad materjalid:

0. Kõigepealt nõustan Ilja Leontjevi tasuta videokursust, see on saadaval aadressil link.

1. Eelkõige soovitaksin seadistamisel kasutada sisseehitatud abi. See on tõesti hästi kirjutatud ja tehniliselt hästi rakendatud:

2. Tähtsuselt teine ​​teabeallikas on sait http://www.mykod.info/ (sait suleti), mis on spetsialiseerunud just andmete teisendamisele. Seal saate alla laadida suure hulga konversioonimaterjale.

3. Eraldi tahaksin esile tõsta koolituse käsiraamatu õpikut - (autor - Olga Kuznetsova).

Andmete migreerimine erinevate konfiguratsioonide vahel ei ole triviaalne ülesanne. Nagu ikka, on lahendusi mitu, kuid mitte kõik pole optimaalsed. Proovime mõista andmeedastuse nüansse ja valida selliste probleemide lahendamiseks universaalse strateegia.

Andmete migratsiooni (see on puhtalt 1C firma toodete kohta) probleemi ühest lahendusest teise eile ei tekkinud. Ettevõte 1C on hästi teadlik raskustest, millega arendajad migratsiooni loomisel kokku puutuvad, seega püüab ta oma parima tööriistadega aidata.

Platvormi arendamise käigus tutvustas ettevõte mitmeid universaalseid tööriistu, samuti andmeedastust lihtsustavaid tehnoloogiaid. Need on sisse ehitatud kõikidesse standardlahendustesse ja identsete konfiguratsioonide vahelise migratsiooni probleem on üldiselt lahendatud. Võitu kinnitab taas standardlahenduste tihe integreerimine.

Mittestandardsete lahenduste vaheliste migratsioonidega on olukord mõnevõrra keerulisem. Lai valik tehnoloogiaid võimaldab arendajatel iseseisvalt valida parima viisi probleemi lahendamiseks nende vaatenurgast.

Vaatleme mõnda neist:

  • vahetada tekstifailide kaudu;
  • vahetusplaanide kasutamine;
  • jne.

Igal neist on oma plussid ja miinused. Kokkuvõtteks võib öelda, et peamine puudus on paljusõnalisus. Migratsioonialgoritmide sõltumatu rakendamine on täis märkimisväärseid ajakulusid ja pikka silumisprotsessi. Ma ei taha isegi rääkida selliste otsuste edasisest toetamisest.

Hoolduse keerukus ja kõrge hind ajendas 1C ettevõtet looma universaalset lahendust. Tehnoloogia, mis võimaldab migratsioonide arendamist ja toetamist nii palju kui võimalik lihtsustada. Selle tulemusena viidi idee ellu eraldi konfiguratsiooni kujul - "Andmete teisendamine".

Andmete teisendamine – standardlahendus, isekonfiguratsioon. Iga kasutaja, kellel on ITS:Profi tellimus, saab selle paketi kasutajatoe saidilt või ITS-kettalt täiesti tasuta alla laadida. Paigaldamine toimub standardsel viisil - nagu kõik teised 1C standardlahendused.

Nüüd natuke lahenduse plussidest. Alustame kõige olulisemast – mitmekülgsusest. Lahendus ei ole kohandatud teatud platvormi konfiguratsioonidele/versioonidele. See töötab ühtviisi hästi nii standardkonfiguratsioonidega kui ka ise kirjutatud konfiguratsioonidega. Arendajad saavad uute migratsioonide loomiseks universaalse tehnoloogia ja standardse lähenemisviisi. Lahenduse mitmekülgsus võimaldab migratsioone ette valmistada isegi muudele platvormidele peale 1C:Enterprise.

Teine julge pluss on visuaalsed abivahendid. Lihtsad migratsioonid luuakse ilma programmeerimiseta. Jah, jah, ilma ühegi koodireata! Juba ainuüksi selle jaoks tasub kulutada aega tehnoloogia õppimisele ja seejärel korduvalt kasutada hindamatuid oskusi.

Kolmas eelis, mida tahaksin märkida, on andmete levitamise piirangute puudumine. Andmete vastuvõtja konfiguratsiooni edastamise meetodi valib arendaja ise. Saadaval on kaks võimalust: xml-faili üleslaadimine ja otseühendus teabebaasiga (COM/OLE).

Arhitektuuri õppimine

Teame juba, et andmete teisendamine võib teha imesid, kuid pole veel selge, millised on selle tehnilised eelised. Esimene asi, mida õppida, on see, et igasugune andmete migreerimine (teisendamine) põhineb vahetusreeglitel. Vahetusreeglid - tavaline xml-fail koos struktuuri kirjeldusega, millesse andmed IB-st üles laaditakse. Andmete üles-/allalaadimist teostav teenusetöötlus analüüsib vahetusreegleid ja teostab nende alusel üleslaadimise. Allalaadimise ajal toimub vastupidine protsess.

“KD” konfiguratsioon on omamoodi visuaalne konstruktor, millega arendaja loob vahetusreegleid. Ta ei tea, kuidas andmeid üles laadida. Selle eest vastutab CD jaotuskomplektis sisalduv täiendav välisteenuse töötlemine. Neid on mitu (XX failinimes on platvormi versiooni number):

  • MDXXExp.epf- töötlemine võimaldab infobaasi struktuuri kirjelduse üles laadida xml-faili. Struktuuri kirjeldus laaditakse CD-le edasiseks analüüsiks ja vahetusreeglite loomiseks.
  • V8ExchanXX.epf- laadib infobaasist üles/laadib alla andmeid vastavalt vahetusreeglitele. Enamiku tüüpiliste konfiguratsioonide puhul on töötlemine saadaval karbist väljas (vt menüükäsku „Teenus”). Töötlemine on universaalne ega ole seotud konkreetsete konfiguratsioonide/reeglitega.

Olgu, nüüd kõige ülaltoodu põhjal määratleme uue konversiooni arendamise etapid:

  1. Ülesande määratlus. On vaja selgelt aru saada, milliseid andmeid on vaja edastada (millistest konfiguratsiooniobjektidest) ja mis kõige tähtsam, kuhu edastada.
  2. Konfiguratsioonistruktuuride (allikas/vastuvõtja) kirjelduse ettevalmistamine hilisemaks CD-le laadimiseks. Ülesande lahendatakse teenuse töötlemisega MDXXExp.epf.
  3. Koostatud konstruktsioonide kirjelduste laadimine IS-is.
  4. Vahetusreeglite loomine CD visuaalsete vahenditega.
  5. Üles-/allalaadimine vastavalt loodud andmete teisendusreeglitele V8ExchanXX.epf töötluse abil.
  6. Vahetusreeglite silumine (vajadusel).

Lihtsaim teisendus

Demonstreerimiseks vajame kahte juurutatud konfiguratsiooni. Otsustasin peatuda valikul: “Trade Management” 10. väljaanne ja väike ise kirjutatud lahendus. Ülesandeks on andmete ülekandmine TÜ tüüpilisest konfiguratsioonist. Isekirjutatud lahendust nimetame lühiduse mõttes vastuvõtjaks ja kaubanduse juhtimist allikaks. Alustame probleemi lahendamist kataloogi "Nomenklatuur" elementide ülekandmisega.

Kõigepealt vaatame andmete teisendamise skeemi ja loeme uuesti läbi tehtavate toimingute loendi. Seejärel käivitame konfiguratsiooni “Allikas” ja avame selles teenuse töötlemise MD82Exp.epf.

Töötlemisliides ei hiilga seadete rohkusega. Kasutajal tuleb vaid määrata metaandmeobjektide tüübid, mis struktuuri kirjeldusse ei kuulu. Enamikul juhtudel ei pea neid seadeid muutma, kuna liikumiste mahalaadimisel akumulatsiooniregistritesse pole erilist mõtet (näiteks).

Õigem on liikumine kujundada dokumentide vastuvõtjas hoidmise ajal. Kõik liikumised teeb pärast üleandmist dokument ise. Teine argument vaikesätete kaitseks on üleslaaditava faili suuruse vähendamine.

Mõned dokumendid (eriti tüüpilistes konfiguratsioonides) moodustavad liikumise mitmes registris. Kogu selle säästu mahalaadimine muudab tulemuseks oleva XML-faili liiga suureks. See võib raskendada hilisemat transporti ja vastuvõtja alusesse laadimist. Mida suurem on andmefail, seda rohkem on selle töötlemiseks vaja RAM-i. Praktika käigus sattusin kokku ebasündsalt suurte üleslaadimisfailidega. Sellised failid keeldusid täielikult sõelumisest standardsete vahenditega.

Seega jätame kõik vaikeseaded ja laadime konfiguratsiooni kirjelduse faili. Kordame sama protseduuri teise aluse jaoks.

Avage CD ja valige peamenüüst "Kataloogid" -> "Konfiguratsioonid". Kataloog salvestab kõigi konversioonide loomiseks kasutatavate konfiguratsioonide struktuuride kirjeldused. Laadime konfiguratsiooni kirjelduse ühe korra ja siis saame seda korduvalt kasutada erinevate konversioonide loomiseks.

Vajutage kataloogiaknas nuppu " Lisama” ja valige kuvatavas aknas konfiguratsiooni kirjeldusega fail. Märkige ruut "Laadi üles uude konfiguratsiooni" ja klõpsake nuppu "Teosta üleslaadimine". Sarnaseid toiminguid teostame teise konfiguratsiooni struktuuri kirjeldusega.

Nüüd on kõik vahetusreeglite loomiseks valmis. CD peamenüüs valige "Viited" -> "Konversioonid". Uue elemendi lisamine. Uue konversiooni loomise aknas peate määrama: allika konfiguratsiooni (valige UT) ja vastuvõtja konfiguratsiooni (valige "Vastuvõtja"). Järgmisena avage vahekaart "Täpsemalt" ja täitke järgmised väljad:

  • vahetusreeglite faili nimi – loodud vahetusreeglid salvestatakse selle nime alla. Faili nime saab igal ajal muuta, kuid kõige parem on see kohe määrata. See säästab aega tulevikus. Panin demo reeglitele nimeks "rules-ut-to-priemnik.xml".
  • nimi – teisenduse nimi. Nimi võib olla absoluutselt ükskõik, piirdusin “Demo. TÜ vastuvõtjale”.

See on kõik, klõpsake "OK". Kohe ilmub meie ette aken, mis palub meil kõik reeglid automaatselt luua. Sellise ahvatleva pakkumisega nõustumine annab kaptenile käsu valitud konfiguratsioonide kirjeldust automaatselt analüüsida ja iseseisvalt genereerida vahetusreegleid.

Paneme kohe punkti "ja". Meister ei suuda midagi tõsist genereerida. Seda võimalust ei tohiks aga maha jätta. Kui teil on vaja luua vahetus identsete konfiguratsioonide vahel, on viisardi teenused väga kasulikud. Meie näiteks on eelistatav manuaalrežiim.

Vaatame lähemalt akent "Exchange reeglite seaded". Liides võib tunduda pisut segane – suur hulk juhtnuppudega täidetud vahelehti. Tegelikult polegi kõik nii keeruline, selle hullusega hakkad harjuma peale paaritunnist rakendusega töötamist.

Praeguses etapis oleme huvitatud kahest vahekaardist: "Objekti teisendamise reeglid" ja "Andmete üleslaadimise reeglid". Esimesel peame paika panema sobitusreeglid, st. võrrelda kahe konfiguratsiooniga objekte. Teisel määrake võimalikud objektid, mis on kasutajale mahalaadimiseks saadaval.

Vahekaardi „Objekti teisendamise reeglid” teises pooles on lisapaneel kahe vahekaardiga: „Atribuudi teisendamine” ja „ Väärtuse teisendamine". Esimene valib valitud objekti atribuudid (rekvisiidid) ja teine ​​on vajalik etteantud väärtustega töötamiseks (näiteks eelmääratletud sõnastiku elemendid või loendielemendid).

Tore, nüüd loome kataloogide jaoks teisendusreeglid. Seda toimingut saate teha kahel viisil: kasutage objektide sünkroonimise viisardit (klõpsake ""”) või lisage iga objekti jaoks vasted käsitsi.

Ruumi säästmiseks kasutame esimest võimalust. Tühjendage viisardi aknas märkeruut " Dokumendid” (meid huvitavad ainult kataloogid) ja laiendage rühma Teatmeteosed". Kerime loendit hoolikalt läbi ja vaatame võrreldavate kataloogide nimesid.

Minu puhul on selliseid katalooge kolm: nomenklatuur, organisatsioonid ja laod. Samuti on olemas kataloog Clients, mis täidab sama semantilist koormust kui " Vastaspooled"konfiguratsioonist" ". Tõsi, meister ei saanud neid suurepäraste nimede tõttu võrrelda.

Me saame selle vea ise parandada. Otsige aknast üles Objekti kaardistused» käsiraamat « Kliendid” ja veerus „Allikas” valige teatmeteos „Vastaspooled”. Seejärel märkige ruut veerus "Tüüp" ja klõpsake nuppu "Ok".

Objektide sünkroonimisviisard palub teil automaatselt luua reeglid kõigi valitud objektide atribuutide teisendamiseks. Omadused sobitatakse nime järgi ja meie demonstreerimiseks piisab sellest täiesti, nõustume. Järgmine küsimus on ettepanek luua üleslaadimisreeglid. Lepime sellega.

Vahetusreeglite alus on valmis. Valisime sünkroonimiseks objektid ning atribuutide teisendamise ja üleslaadimise reeglid loodi automaatselt. Salvestame vahetusreeglid faili, seejärel avame IB “Source” (minu puhul on see UT) ja alustame selles teenuse töötlemist V8Exchan82.epf.

Kõigepealt valige töötlemisaknas meie loodud vahetusreeglid. Reeglite laadimise küsimusele vastame jaatavalt. Töötlemine analüüsib vahetusreegleid ja loob mahalaadimiseks saadaolevate objektide jaoks samanimelise puu. Selle puu jaoks saame seada kõikvõimalikke filtreid või vahetada sõlme, mida muutes peame andmeid valima. Soovime üles laadida absoluutselt kõik andmed, seega pole vaja filtreid installida.

Kui andmete faili üleslaadimise protsess on lõpule viidud, minge jaotisse IB " Vastuvõtja". Avame selles ka töötlemise V8Exchan82.epf, ainult seekord läheme vahekaardile „Andmete laadimine”. Valige andmefail ja klõpsake nuppu "Laadi üles". Kõik, andmed edastati edukalt.

Ülesanded pärismaailmast

Esimene demo võib olla eksitav. Kõik tundub üsna lihtne ja loogiline. Tegelikult pole see tõsi. Reaalses töös tekivad ülesanded, mida ainuüksi visuaalsete vahenditega (ilma programmeerimiseta) on raske või täiesti võimatu lahendada.

Et tehnoloogias mitte pettuda, olen koostanud mõned reaalsed ülesanded. Kindlasti kohtate neid tööl. Need ei tundu nii triviaalsed ja panevad andmete teisendamisele uue nurga alt vaatama. Kaaluge esitatud näiteid hoolikalt ja kasutage neid reaalsete probleemide lahendamisel katkenditena.

Ülesanne number 1. Täitke puuduvad andmed

Oletame, et peame teisaldama kataloogi " Vastaspooled". Selle jaoks on vastuvõtjal sarnane teatmeteos “Kliendid”. See sobib täielikult andmete salvestamiseks, kuid sellel on rekvisiidid " Organisatsioon”, mis võimaldab eraldada osapooled organisatsiooni kuulumise järgi. Vaikimisi peavad kõik vastaspooled kuuluma praegusesse organisatsiooni (selle saab samanimelisest konstandist).

Probleemile on mitu lahendust. Kaalume rekvisiitide täitmise võimalust " Organisatsioon"otse baasis" Vastuvõtja”, st. andmete laadimise ajal. Praegune organisatsioon on salvestatud konstanti, nii et selle väärtuse saamiseks pole takistusi. Avame objekti teisendamise reegli (edaspidi FRP) " Kliendid” (topeltklõps objektil) ja minge reeglite seadistusviisardis jaotisesse „Sündmuste töötlejad”. Käitlejate loendist leiame " Pärast laadimist”.

Kirjeldame praeguse organisatsiooni hankimise koodi koos järgneva atribuudi määramisega. Käitleja “Pärast laadimist” käivitumise hetkel on objekt täielikult moodustatud, kuid pole veel andmebaasi kirjutatud. Keegi ei keela meil seda oma äranägemise järgi muuta:

Kui EI Object.ThisGroup Siis Object.Organization = Constants.CurrentOrganization.Get(); EndIf;

Enne rekvisiitide täitmist " Organisatsioon» on vaja kontrollida atribuudi väärtust « See rühm". Juhi jaoks" Kliendid» hierarhiline lipp on seatud, seega on rühma kontrollimine vajalik. Samamoodi täidetakse kõik üksikasjad. Lugege kindlasti teiste töötleja valikute abi " Pärast laadimist". Näiteks on nende hulgas parameeter " Keeldumine". Kui sellele omistatakse väärtus "True", siis objekti andmebaasi ei kirjutata. Seega on võimalik piirata objekte kirjutamiseks laadimise ajal.

Ülesanne number 2. Andmed inforegistris

Käsiraamatus" Vastaspooled"UT konfiguratsioon, seal on üksikasjad" Ostja" ja " Pakkuja". Mõlemad rekvisiidid on tüüpi " tõeväärtus” ja neid kasutatakse vastaspoole tüübi määramiseks. IB-s" Vastuvõtja”, teatmeteoses “ Kliendid"Sarnaseid üksikasju pole, kuid teabe register on olemas" Klientide tüübid". See täidab sarnast funktsiooni ja suudab ühe kliendi jaoks salvestada mitu silti. Meie ülesanne on kanda detailide väärtused inforegistri eraldi kirjetesse.

Kahjuks ei saa siingi visuaalsed vahendid üksi toime. Alustame väikesest, loome teaberegistri jaoks uue PCO Klientide tüübid". Ärge nimetage midagi allikana. Keelduge üleslaadimisreeglite automaatsest loomisest.

Järgmine samm on üleslaadimisreeglite loomine. Minge vastavale vahekaardile ja klõpsake nuppu " Lisama". Üleslaadimisreeglite lisamise aknas täitke:

  • proovivõtu meetod. Valige "Suvaline algoritm";
  • teisendusreegel. Valige teaberegister “Klienditüübid”;
  • Reegli kood (nimi). Kirjutame selle kui "Kliendiliikide üleslaadimine";

Nüüd peate kirjutama üleslaadimiseks andmete valimise koodi. Siin on parameeter " Andmete valim". Sellesse saame paigutada kogumiku koos ettevalmistatud andmekogumiga. Parameeter " Andmete valim” võib vastu võtta erinevaid tähendusi- päringu tulemus, valik, väärtuste kogud jne. Initsialiseerime selle väärtuste tabelina kahe veeruga: klient ja kliendi tüüp.

Allpool on sündmuste käitleja kood " Enne töötlemist". See lähtestab parameetri " Andmete valim" millele järgneb andmete täitmine kataloogist " Vastaspooled". Siin tasub pöörata tähelepanu veeru " Kliendi tüüp". “TÜ-s” on meil “tõve” tüüpi tunnused ja adressaadis loend.

Praeguses etapis ei saa me neid soovitud tüüpi viia (see pole TÜ-s), seega jätame selle praegu stringide kujul. Te ei pea seda tegema, kuid tahan kohe näidata, kuidas allikas puuduvale tüübile üle kanda.

DataFetch = NewValueTable(); Andmete valik.Veerud.Lisa("Klient"); Andmete valik.Veerud.Lisa("Klienditüüp"); Andmete valimine kataloogist = Directories.Contractors.Select(); DataFromCatalog.Next() Loop If FetchingDataFromCatalog.ThisGroup then Continue; EndIf; Kui DataFetchFromCatalog.Buyer Siis NewString = DataFetch.Add(); NewString.Client = SamplingDataFromCatalog.Reference; NewString.ClientType = "Ostja"; EndIf; Kui DataFetchFromCatalog.Provider Siis NewString = DataFetch.Add(); NewString.Client = SamplingDataFromCatalog.Reference; NewString.ClientType = "Tarnija"; EndIf; EndCycle;

Salvestage andmete üleslaadimise reegel ja naaske " Objekti teisendamise reeglid". Lisame inforegistri jaoks “ Klientide tüübid” vara teisendamise reeglid: klient ja kliendi tüüp. Jätame allika tühjaks ja sündmuste töötlejasse "Enne mahalaadimist" kirjutame:

//Atribuudi "Klient" jaoks Value = Source.Client; //Atribuudi “CustomerType” jaoks If Source.Customer = "Buyer" Then Expression = "Enumerations.CustomerTypes.Buyer" ElseIf Source.Customer = "Supplier" Then Expression = "Enumerations.CustomerTypes.Supplier"; EndIf;

Nimekirjas täidetakse andmed tehtud andmevaliku alusel. Edastame kliendi lihtsalt lingina ja kirjutame parameetrisse kliendi tüübi " Väljendus". Selle parameetri andmeid tõlgendatakse vastuvõtjas ja selle täitmisel täidetakse atribuut loendist õige väärtusega.

See on kõik, vahetusreeglid on valmis Vaadeldav näide osutus üsna universaalseks. Sarnast lähenemist kasutatakse sageli andmete edastamisel 7.7 platvormil loodud konfiguratsioonidest. Selle ilmekaks näiteks on perioodiliste detailide edastamine.

Ülesanne number 3. Tabelitrikid

Sageli on ülesandeid, mis nõuavad ühe tabeliosa ridade postitamist mitmeks. Näiteks algkonfiguratsioonis registreeritakse teenused ja kaubad ühes tabelijaotises, samas kui nende olemite salvestus on vastuvõtjas eraldatud. Jällegi ei saa probleemi visuaalsete vahenditega lahendada. Siin on mugav võtta aluseks teise ülesande lahendus.

Koostame andmete üleslaadimise reegli, määrame suvalise algoritmi ja kirjutame töötlejasse "Enne üleslaadimist" päringu, et saada andmeid tabeliosast.

Ruumi säästmiseks ei anna ma päringu koodi (saate alati viidata lähtekoodile) - selles pole midagi ebatavalist. Sorteerime saadud proovi ja asetame sorteeritud tulemused juba tuttavasse parameetrisse " Andmete valim". Jällegi on mugav kasutada väärtuste tabelit kogumina:

DataFetch = NewValueTable(); //Siia tuleb veel üks tabelijaotis Data Selection.Columns.Add("Tooted"); //Siia tuleb ka tabelijaotis Data Selection.Columns.Add("Teenused"); Andmete valimine from.Columns.Add(“Link”);

Ülesanne number 4. Andmete ülekandmine toimingule

Kui organisatsioon kasutab mitut raamatupidamissüsteemi, siis varem või hiljem tekib vajadus andmete migratsiooniks koos järgnevate kirjete moodustamisega.

Konfiguratsioonis " BP"on universaalne dokument" Operatsioon” ja see sobib ideaalselt rohkemate juhtmete moodustamiseks. Siin on vaid üks probleem – dokument on tehtud kavalalt ja sinna pole nii lihtne andmeid üle kanda.

Sellise teisenduse näite leiate artikli lähtekoodist. Koodi hulk osutus üsna suureks, seega pole mõtet seda artikli jaoks avaldada. Ütlen lihtsalt, et üleslaadimisel kasutatakse andmete üleslaadimise reeglites taas suvalist algoritmi.

Ülesanne number 5. Andmete sünkroonimine mitme atribuudi vahel

Oleme juba mõnda näidet käsitlenud, kuid seni pole me rääkinud objektide sünkroonimisest migratsiooni ajal. Kujutagem ette, et meil on vaja vastaspooled üle kanda ja mõned neist on tõenäoliselt vastuvõtjate andmebaasis. Kuidas andmeid edastada ja dubleerimist vältida? Sellega seoses pakub CD edastatud objektide sünkroonimiseks mitmeid viise.

Esimene on kordumatu identifikaatori järgi. Paljudel objektidel on kordumatu identifikaator, mis tagab tabeli ainulaadsuse. Näiteks käsiraamatus " Vastaspooled” ei saa sisaldada kahte sama ID-ga elementi. CD teeb selleks arvutuse ja kõikide loodud PSP-de puhul on identifikaatori järgi otsing kohe vaikimisi sisse lülitatud. PSP loomise ajal oleks pidanud märkama suurendusklaasi ikooni objekti nime kõrval.

Unikaalse identifikaatoriga sünkroonimine on usaldusväärne meetod, kuid see pole kaugeltki alati asjakohane. Kataloogide ühendamisel " Vastaspooled” (mitmest erinevast süsteemist) on temast vähe abi.

Sellistel juhtudel on õigem sünkroonida objekte mitme kriteeriumi järgi. Õigem on otsida vastaspooli TIN, KPP, nime järgi või jagada otsing mitmeks etapiks.

Andmete teisendamine ei piira arendajat otsingukriteeriumide määratlemisel. Vaatleme abstraktset näidet. Oletame, et peame kataloogid sünkroonima " Vastaspooled” erinevatest infobaasidest. Valmistame ette PCP ja objekti teisendamise reeglite sätetes märkige ruut “ Jätkake otsinguväljade otsimist, kui vastuvõtja objekti ID järgi ei leita". Selle toiminguga määratlesime kohe kaks otsingukriteeriumi – kordumatu identifikaatori ja suvaliste väljade järgi.

Meil on õigus põllud ise valida. Olles märkinud TIN, KPP, nime, näitame kohe mitu otsingukriteeriumi. Mugav? Päris, aga sellest jällegi ei piisa. Ja mis siis, kui tahame otsingukriteeriume muuta? Näiteks otsime kõigepealt hunniku TIN + KPP ja kui me midagi ei leia, hakkame nimega õnne proovima.

Sellist algoritmi on täiesti võimalik rakendada. Sündmuste halduris Otsinguväljad” saame määrata kuni 10 otsingukriteeriumi ja igaühe jaoks määrata oma otsinguväljade koosseisu:

Kui SearchOptionNumber = 1, siis SearchPropertyNameString = "TIN, KPP"; ElseIfSearchVariantNumber = 2 ThenSearchPropertyNameString = "Nimi"; EndIf;

Lahendusi on alati mitu.

Igal ülesandel on mitu lahendust ja andmete edastamine erinevate konfiguratsioonide vahel pole erand. Igal arendajal on õigus valida oma lahendustee, kuid kui peate pidevalt arendama keerulisi andmemigratsioone, siis soovitan tungivalt pöörata tähelepanu "" konfiguratsioonile. Olgu esialgu, et peate investeerima ressursse (aega) koolitusse, kuid need tasuvad end rohkem kui esimese enam-vähem tõsise projekti puhul.

Minu arvates läheb 1C ettevõte andmekonversiooni kasutamise teemast teenimatult mööda. Kogu tehnoloogia eksisteerimise aja on selle kohta avaldatud ainult üks raamat: "1C: Enterprise 8. Andmete teisendamine: rakenduslahenduste vaheline vahetus". Raamat on üsna vana (2008), kuid siiski on soovitav sellega tutvuda.

Platvormiteadmised on endiselt vajalikud

» on universaalne tööriist, kuid kui kavatsete seda kasutada 1C:Enterprise 7.7 platvormi jaoks välja töötatud konfiguratsioonidest andmete migratsiooni loomiseks, peate kulutama aega sisseehitatud keele tundmaõppimiseks. Keele süntaks ja ideoloogia on väga erinevad, seega tuleb õppimisele aega kulutada. Ülejäänud põhimõte jääb samaks.

Sündmuste töötleja mehhanism on "Data Conversion 2.0" kasutava andmete teisendamise tehnoloogia üks võtmetähtsusega mehhanisme. Selle mehhanismi pädev ja oskuslik kasutamine võimaldab arendajal kiiresti lahendada peaaegu kõik andmete teisendamise ülesanded. Protsessortehnoloogia abil on andmete valik, andmete teisendamine hõlpsasti teostatav erinevad tüübid, keerulisi andmevalikuid, teisendussätteid ja paljusid muid ülesandeid.

Mõelge selle tehnoloogia põhiprintsiipidele. Andmete maha- ja laadimisalgoritmide võtmepunktides universaalse andmevahetuse töötlemisel on võimalik täita andmevahetuse reeglitest võetud programmikoodi, mitte aga andmete maha- või laadimise töötlemisel "juhtmega". Konfiguratsioon "Data Conversion 2.0" pakub võimalusi sellise programmikoodi integreerimiseks andmevahetusreeglitesse.

Kokku on andmevahetusalgoritmides üle kahekümne erineva koha, kus saab käivitada kolmanda osapoole koodi. Sellest lähtuvalt näeb konfiguratsioon ette erinevat tüüpi sündmuste käitlejate loomise.

Sündmuste töötlejate kood on "kinnitatud" vahetusreeglite objektidele - kataloogide elementidele: konversioonid, objektide teisendamise reeglid, atribuutide teisendamise reeglid, andmete üleslaadimise reeglid ja andmete puhastamise reeglid. Loomulikult peab sündmuste käitleja kood vastama mitmetele nõuetele. Eelkõige peate töötleja koodis teisendusprotsessi juhtimiseks kasutama spetsiaalseid muutujaid - parameetreid. Igat tüüpi sündmustekäsitlejate ja saadaolevate muutujate täieliku kirjelduse leiate vastavate vormide töötlejate teabest.

TÄHELEPANU!!!

Data Conversion 2.0 tehnoloogiad võimaldavad andmevahetust teabebaasidega, mis on rakendatud platvormidel 1C:Enterprise 7.7 ja 1C:Enterprise 8.0. Tulenevalt platvormi 1C:Enterprise 7.7 töö iseärasustest on sellel platvormil rakendatud teabebaaside jaoks sündmuste töötlejate abil andmevahetusreeglite ettevalmistamisel mitmeid funktsioone.

1C:Enterprise 7.7 platvormi puhul ei ole võimalik suvalist koodi käivitada (analoogselt V8 funktsiooniga Run). Kui on vaja kasutada V7.7 platvormi sündmuste käitlejaid, tuleb andmete üles- või allalaadimise töötlustekst asendada töötlemistekstidega, mis väljastatakse konfiguratsiooniga "Data Conversion 2.0".

Kui teil on vaja andmeid V7.7 versioonist V8 üle kanda, siis tehke järgmist.

Mahalaadimisel genereerib süsteem lisaks reeglifailile endale ka mooduli teksti V77Exp.ert töötlemiseks sündmuste töötlejaid rakendavate funktsioonidega. Seejärel peame konfiguraatoris asendama standardse mooduli V77Exp.ert uuega, mis on genereeritud "Data Conversion 2.0" abil.

Andmevahetuslahendusi 1C:Enterprise 7.7 platvormil arendades peate meeles pidama seda olulist "pisiasi". Teie reeglid töötavad õigesti ainult siis, kui kasutate muudetud töötlemist, mille mooduli tekst loodi andmevahetusreeglite mahalaadimisel. Sellel reeglil on üks erand – kui te ei kasuta sündmuste töötlejaid, saate kasutada tavalist töötlemist.

Lugupidamisega Vladimir Milkin(õpetaja ja arendaja).

KELL

On neid, kes loevad seda uudist enne sind.
Tellige uusimate artiklite saamiseks.
Meil
Nimi
Perekonnanimi
Kuidas teile meeldiks Kellukest lugeda
Rämpsposti pole