Organizácia výmeny so základňou pobočky (maloobchod) v distribučnej sieti prostredníctvom XML (univerzálna burza). Plánovaná výmena štandardnými prostriedkami 1s 8.3 príklad vytvorenia výmenného plánu

Automatizované systémy správy vo väčšine prípadov pozostávajú zo samostatných databáz a často majú geograficky distribuovanú štruktúru. Správne realizovaná výmena dát je zároveň nevyhnutnou podmienkou efektívnej prevádzky takýchto systémov.

Počiatočné nastavenie burzy si v tomto prípade môže vyžadovať množstvo úkonov nielen z hľadiska programovania, ale aj konzultácií, aj keď ide o homogénne zdroje, ako je to v prípade produktov založených na platforme 1C:Enterprise. . Prečo sa nastavenie výmeny 1C (alebo, ako sa to tiež nazýva, synchronizácia údajov v 1C 8.3) môže stať časovo najnáročnejšou a najdrahšou úlohou integračného projektu, zvážime v tomto článku.

Výmena údajov v prostredí 1C vám umožňuje:

  • eliminovať dvojité zadávanie dokumentov;
  • Automatizácia súvisiacich obchodných procesov;
  • Optimalizujte interakciu medzi distribuovanými oddeleniami;
  • Okamžite aktualizovať údaje pre prácu špecialistov z rôznych oddelení;
  • "ohraničiť" odlišné typyúčtovníctvo.*

*V prípade, že sa údaje jedného typu účtovníctva výrazne líšia od iného, ​​je potrebné zabezpečiť dôvernosť informácií a „oddelené“ informačné toky. Napríklad výmena dát medzi 1C UT a 1C Accounting nevyžaduje nahrávanie manažérskych dát do regulačnej účtovnej databázy, t.j. synchronizácia v 1C tu bude neúplná.

Ak predstavujeme štandardný proces implementácie primárnej výmeny údajov, keď je aspoň jeden z jeho objektov produktom 1C, potom možno rozlíšiť tieto fázy:

  • Koordinácia zloženia burzy;
  • Definícia dopravy (výmenné protokoly);
  • Stanovenie pravidiel;
  • Plánovanie.

Identifikácia zloženia burzy 1C

Výmenné objekty môžu byť podmienene rozdelené na "zdroj" a "prijímač". Zároveň môžu vykonávať dve úlohy súčasne, čo sa bude nazývať obojstranná výmena. Definícia zdroja a cieľa prebieha logickým spôsobom v závislosti od potreby alebo od funkčnosť systémy.*

*Napríklad pri integrácii WA: Financier, riešenia pre finančné účtovníctvo a riadenie treasury procesov, vyvinutého na báze 1C:Enterprise, ho odborníci z WiseAdvice odporúčajú ako hlavný systém. Dôvodom je dostupnosť kontrolných nástrojov na dodržiavanie pravidiel aplikačnej politiky, a teda na zabezpečenie efektívnosti riešenia.

Ďalej sa na základe prijatých a zaznamenaných požiadaviek od používateľov vytvorí zoznam dát na výmenu, určí sa ich objem, požiadavky na frekvenciu výmeny, predpíše sa postup práce s chybami a riešenie mimoriadnych situácií (kolízií).

V rovnakej fáze, v závislosti od flotily existujúcich systémov a štruktúry podniku, sa určuje formát výmeny:

Distribuovaný informačnú základňu

  • RIB znamená výmenu medzi identickými konfiguráciami databázy 1C s jasnou riadiacou štruktúrou master-slave pre každý pár výmen. Ako prvok technologickej platformy môže RIB okrem údajov prenášať aj zmeny v konfigurácii a administratívnych informáciách databázy (ale len z mastera na slave).

Univerzálna výmena dát v 1C

  • Mechanizmus, ktorý vám umožňuje konfigurovať výmenu databáz 1C, a to ako s konfiguráciami na platforme 1C:Enterprise, tak so systémami tretích strán. Výmena sa uskutočňuje prenosom údajov do univerzálneho xml formátu v súlade s „Výmennými plánmi“.

EnterpriseData

  • Najnovší vývoj spoločnosti 1C, určený na implementáciu výmeny údajov vo formáte xml medzi produktmi vytvorenými na platforme 1C:Enterprise s akýmikoľvek automatizačnými systémami. Použitie EnterpriseData zjednodušuje vylepšenia spojené s výmenou. Predtým, keď bola do systému zahrnutá nová konfigurácia, bolo potrebné implementovať mechanizmus na import a export údajov pre neho aj pre existujúce systémy. Teraz systémy, ktoré podporujú EnterpriseData, nie je potrebné upravovať, pretože majú iba jeden vstupno-výstupný bod.

Definícia dopravy (výmenné protokoly)

Systém založený na platforme 1C:Enterprise 8 poskytuje širokú škálu možností na organizovanie výmeny s akýmkoľvek informačné zdroje prostredníctvom všeobecne uznávaných univerzálnych štandardov (xml, textové súbory, Excel, pripojenie ADO atď.). Preto by sa pri určovaní prenosu na výmenu údajov malo vychádzať z možností databázy systému tretej strany.

Synchronizácia adresárov

Hlavným princípom efektívnej synchronizácie adresárov je prítomnosť jedného vstupného bodu. Ale ak hovoríme o práci s adresármi, ktoré boli historicky vyplnené podľa iných pravidiel, je potrebné jasne definovať synchronizačné polia, aby sa výmena dostala do „spoločného menovateľa“.*

*V tejto fáze môže byť potrebné vykonať prácu na normalizácii referenčných údajov na strane zdroja údajov. V závislosti od stavu adresárov a ich objemu si proces porovnávania prvkov, rozpoznávania, identifikácie chýb a duplikátov, ako aj vypĺňania chýbajúcich polí a priraďovania synchronizačných polí môže vyžadovať prácu celej skupiny odborníkov, a to ako zo strany integrátora (vlastníka metodiky normalizácie referenčných údajov) a zo strany zákazníka.

Stanovenie pravidiel

Možnosť zobrazenia údajov zo zdrojových systémov v prijímačoch závisí od správne definovaných pravidiel výmeny. Pravidlá prezentované vo formáte xml regulujú zhodu kľúčových atribútov zdrojových a cieľových objektov. Riešenie 1C: Data Conversion je určené na automatizáciu tvorby pravidiel pre implementáciu jednorazovej aj trvalej výmeny.

Zabezpečuje stratu údajov počas výmenného plánu výmeny. Toto je neoddeliteľnou súčasťou akejkoľvek konfigurácie na platforme 1C:Enterprise, ktorá plne popisuje postup výmeny 1C: zloženie údajov (dokumenty s „identifikačnými“ podrobnosťami) a uzly (informačné bázy prijímač-vysielač), ako aj aktivácia RIB. pre vybrané smery výmeny.

Akákoľvek zmena v údajoch zapísaných v Výmennom pláne je pevná a nesie označenie „zmena“. Kým sa zmenené dáta nezhodujú v uzloch prijímač-vysielač, príznak nebude resetovaný a systém bude posielať riadiace správy do oboch uzlov. Po vyložení údajov a potvrdení ich úplnej zhody v oboch systémoch sa znak resetuje.

Výmenný plán v 1C

Pre automatizáciu pravidelnej výmeny je nastavená frekvencia nahrávania dát. Frekvencia výmeny závisí od potreby a technických možností. Konfigurácie na platforme 1C:Enterprise vám tiež umožňujú nakonfigurovať výmenu údajov, keď dôjde k udalosti.

Po zvážení štandardného procesu implementácie výmeny venujme pozornosť faktorom, ktoré si budú vyžadovať vylepšenia v rôznych fázach:

  • Neštandardné, výrazne modifikované konfigurácie databázy;
  • Rôzne verzie platformy 1C:Enterprise;
  • Dlho neaktualizovaný aktuálne verzie konfigurácia;
  • Výmena objektov, ktoré boli predtým upravené;
  • Potreba neštandardných pravidiel výmeny;
  • Veľmi odlišný súbor a zloženie detailov v dostupných adresároch.

Keďže aj štandardné akcie na implementáciu primárnej výmeny údajov vyžadujú odborné znalosti, odporúča sa, aby sa vykonávali za účasti špecialistov 1C. Až po dokončení všetkých vyššie uvedených krokov by ste mali pristúpiť k nastaveniu ústredne v konfigurácii. Zvážte integráciu databáz na príklade „1C: UPP“ a „1C: Maloobchod“ (podľa rovnakej schémy je nakonfigurovaná výmena s „1C: UT“). Typická synchronizácia zahŕňa aj výmenu SCP - SCP, ktorá je typická pre rozsiahle automatizačné systémy v najväčších priemyselných podnikoch.

V podmenu „Služba“ vyberte „Výmena údajov s produktmi na platforme ...“ (výber priamej výmeny s „Retail“ často hrozí chybami na úrovni objektov COM). Venujte pozornosť servisnému hláseniu "Táto funkcia nie je dostupná."


Ak chcete vyriešiť tento problém, musíte vybrať "Nastavenia zdieľania údajov"


...a začiarknite políčko. Ďalej sa chybové hlásenie ignoruje.


V nastaveniach synchronizácie údajov zvoľte "Vytvoriť výmenu s" Maloobchod "...



Pred konfiguráciou nastavení pripojenia cez lokálny resp sieťový adresár mali by ste sa uistiť, že na disku je miesto pre adresár. Aj keď spravidla nezaberie viac ako 30-50 MB, vo výnimočných prípadoch môže vyžadovať až 600 MB. Požadovaný adresár vytvoríte priamo z konfigurátora.



Pri pripájaní cez sieťový adresár ignorujeme návrhy na konfiguráciu pripojenia cez FTP adresu a e-mailom kliknutím na „Ďalej“.


V nastaveniach ručne zapíšte prefixy - symboly databáz (zvyčajne BP, UPP, RO), nastavte pravidlá a dátum začiatku nahrávania dát. Predpona bude uvedená v názve dokumentov na označenie základne, v ktorej boli vytvorené. Ak nedôjde k úprave pravidiel nahrávania, nahrajú sa predvolené údaje podľa všetkých dostupných parametrov.



Vytvárame súbor s nastaveniami výmeny pre maloobchod, aby sa naše akcie neopakovali. Ak potrebujete odoslať údaje ihneď po nastavení synchronizácie, začiarknite políčko.


Ak chcete automatizovať proces výmeny, musíte si nastaviť plán.


Maloobchodné menu.


Začiarknite políčko a vyberte možnosť Synchronizovať.


Vykonáme „obrátené“ nastavenie výberom Riadenie výrobného podniku.




Načítajte súbor s nastaveniami vytvorenými v SCP.


Zaškrtneme, systém automaticky prevezme adresu.





Postupujeme rovnako ako v UPP.









Overovacie porovnanie údajov (Odporúča sa vykonať manuálne porovnanie údajov prípravná fáza keďže tieto úlohy môžu byť v procese implementácie výmeny časovo najnáročnejšie). Porovnávacie okno sa otvorí dvojitým kliknutím myši.



V prípade chyby pri synchronizácii sa „Podrobnosti…“ nahradí „Nikdy…“.


„Podrobnosti…“ otvorí registračný denník s aktualizovanými informáciami o burze.


Pripravený.

Výmenné plány v 1C 8.3 sú objektom konfiguračných metadát, ktorý sa používa na implementáciu synchronizácie údajov v systéme 1C 8.

Výmenný plán možno prirovnať k adresáru, kde prvky sú uzly informačnej bázy. Pri práci s výmennými plánmi je však veľa nuancií, o nich budeme hovoriť nižšie.

Zvyčajne je výmena v 1C postavená pomocou špeciálnych pravidiel výmeny, ktoré sa vytvárajú pomocou konfigurácie.

Ako už bolo uvedené, plán výmeny je veľmi podobný bežnému plánu, a preto zvážime iba hlavné rozdiely vo výmene.

Ako pracovať s výmenným plánom

Výmenný plán môže uchovávať informácie a zmeny prvkov z výmenného plánu a tiež uchováva informácie o čísle aktuálna správa. Vo všeobecnosti je schéma práce nasledovná:

  1. Meníme údaje (adresáre, dokumenty a pod.) v databáze - výmenný plán si zmeny pamätá. Buď automatickou registráciou, alebo programovým kódom (napríklad metóda Exchange Plans.RegisterChanges).
  2. Keď príde čas, dostaneme zoznam zmenených prvkov - metóda ReadChanges() tieto údaje uvoľní.
  3. Pri nahrávaní / sťahovaní kontrolujeme čísla správ výmenného plánu, aby sme predišli kolíziám. Ak sa nezhodujú, výmenu údajov zrušíme, ak sa nezhodujú, odstránime registráciu zmien a zvýšime číslo správy.

Získajte 267 1C video lekcií zadarmo:

Distribuovaná informačná základňa

Ak je tento príznak nastavený v nastaveniach, potom je tento výmenný plán distribuovanou infobázou (DIB).

- geograficky distribuovaný systém založený na rovnakej konfigurácii 1C 8.3. RIB okrem zmien dát dokáže prenášať aj konfiguračné zmeny, čo je veľmi výhodné napríklad pri aktualizácii konfiguračného vydania.

Zloženie výmenného plánu

Nastavenie, pomocou ktorého vývojár spravuje množinu objektov, ktoré sa majú vymieňať:

V rámci plánu výmeny môžu byť 3 stavy objektu:

  1. Nie je súčasťou výmenného plánu- preto v žiadnom prípade nemôžete nakonfigurovať výmenu údajov pre tento plán výmeny pre takýto objekt.
  2. Odmietnuť automatickú registráciu- to znamená, že zmeny pre tento uzol je potrebné registrovať iba programovým kódom podľa nejakej podmienky, spravidla . Používa sa metóda ExchangePlans.RegisterChanges().
  3. Povoliť automatickú registráciu- ak je toto zaškrtávacie políčko nastavené, potom sa všetky zmeny prvku automaticky zaradia do zoznamu zmien výmenného plánu.

Výmenné plány a výkon 1C

Vzhľadom na systémové vlastnosti implementácie výmenných plánov sa neodporúča zneužívanie nahrávania zmien podľa výmenných plánov. Ide o to, že pri čítaní zmien sú zablokované všetky tabuľky zmien. Tie. pri vykládke výmenný plán neumožňuje zapisovanie nových zmien, a preto blokuje samotné prvky – adresáre, dokumenty a pod.


Kľúčové slová: distribuované, URDB, XML, registrácia, uzol, uzol, automatická registrácia, počiatočné, obrázok, POP3, SMTP, MailMessage, periférne, centrálne, replikácia, výmena

Vylúčenie zodpovednosti a podmienky používania

Všetky ochranné známky náhodne uvedené v tomto článku patria ich príslušným vlastníkom.
Tento článok je publikovaný pod licenciou Creative Commons Attribution-Share Alike 3.0 Unported License.
http://creativecommons.org/licenses/by-sa/3.0/

Okamžite poznamenám, že všetko nasledujúce platí pre vydanie platformy 8.0.7.36 a vyššej.

Krok 1. Vytvorte plán výmeny

V konfigurácii vytvoríme plán výmeny. Hovoríme tomu napríklad „DistributedBase“. Povinné v
Vo vlastnostiach výmenného plánu zaškrtnite políčko „Distribuovaná infobáza“.

Na karte "Ostatné" kliknutím na tlačidlo "Zloženie" určíme, ktoré objekty budú zahrnuté do výmeny. Autor:
V predvolenom nastavení môžete povoliť všetky objekty ("Akcie" - "Povoliť všetky"). Dôležitým bodom je parameter
"Automatická registrácia". Vo všeobecnosti musí byť povolená pre všetky objekty.

Poznámka: pri pridávaní nových objektov do konfigurácie nie sú zahrnuté do plánu výmeny. Tie. po
pridanie objektu, treba ho doplniť do plánu výmeny.

Ak chcete, aby sa niektoré predmety nezúčastňovali výmeny, jednoducho ich vylúčte z kompozície
výmenný plán. Ale potom kontrola referenčnej integrity zostáva výlučne na vašom svedomí. Ak, do
napríklad určitý dokument nie je zahrnutý do výmenného plánu a je zahrnutý register, podľa ktorého vykonáva pohyby,
potom v základni prijímača je celkom možné získať registračné pohyby bez registratúrneho dokumentu, ktorý
súhlas, nie je to dobré.

V zásade tieto akcie stačia na to, aby RDB fungoval v „manuálnom“ režime. Aby sme to urobili, bežíme
Enterprise, otvorte náš plán výmeny cez ponuku „Operácie“. Vo výmennom pláne je vždy prítomný
preddefinovaný uzol „s bodkou“. Toto je popis aktuálneho uzla. Treba ho otvoriť a naplniť. V našom
V tomto prípade budú k dispozícii polia "Kód" a "Názov". Priraďme kód „AA“ nášmu uzlu a zavolajme ho
"Centrálny". Pridajme jeden uzol do plánu výmeny. Priradíme mu kód „BB“ a nazveme ho „Periférne“.

Teraz môžeme vytvoriť obraz periférnej základne. Urobíte to stlačením tlačidla „Vytvoriť iniciál
obrázok". V zozname uzlov treba vybrať periférna základňa. Obraz databázy je vytvorený ako hotový IB
v katalógu alebo na serveri 1C:Enterprise. (na rozdiel od 7.7, kde bol obraz IB vytvorený ako súbor
vykladanie). Ďalej je možné vytvorenú databázu presunúť na správne miesto jednoduchým skopírovaním súboru 1CV8.1CD
(pre verziu súboru), alebo prostredníctvom konfigurátora prostredníctvom nahrávania a sťahovania údajov.

Ak si otvoríte výmenný plán v periférnom IS, uvidíte, že uzol „s bodkou“, t.j. prúd
uzol "Okrajový" sa stal uzlom a ikona uzla "Centrálny" sa zmenila na červenú, t.j. uzol
"Centrálny" je hlavný uzol vo vzťahu k súčasnému.

Výmenu v „ručnom“ režime je možné vykonať pomocou tlačidiel „Zaznamenať zmeny“ a „Prečítať“.
zmeny". V prvom prípade budete vyzvaní na výber súboru, do ktorého sa zapíšu zmeny, v druhom prípade
- súbor, z ktorého sa budú čítať zmeny. Výmena sa vykonáva vo formáte xml. Zmeny sa zaznamenávajú pre
vybraný uzol.

Krok 2: Nahrajte zmeny do súboru XML a odošlite ich e-mailom

Vytvorili sme teda plán výmeny, vytvorili periférnu informačnú bezpečnosť a dokonca sme sa naučili, ako medzi sebou prenášať dáta
základne. Teraz je našou úlohou naučiť základne vymieňať si e-maily.

Do výmenného plánu pridávame dva detaily: EmailAddress typu "string" a "PerformExchange" typu
„booleovský“. Do atribútu EmailAddress uložíme email uzla, t.j. adresu, na ktorú
posielať výmenné správy. Na rýchle vypnutie automatiky je potrebný potrebný PerformExchange
odosielanie-odosielanie správ.

Postup pri práci s e-mailom urobíme univerzálnym, t.j. umožnime to
použiť ako MAPI (odoslať-prijať cez poštového klienta, napríklad MS Outlook) a
priamy prístup k SMTP/POP3 serverom.

Pridajme do konfigurácie niekoľko konštánt:

niekde vo všeobecnej forme poskytujeme úpravu hodnôt týchto konštánt.

Pridajme spoločný modul, nazvime ho „rbDistributedBase“. Píšeme v ňom:

Procedúra pbSendExchangeMessages() Export UseSMTP = Constants.UseExchangeBySMTP.Get(); //Najskôr vytvorte objekt Mail, ktorý bude v závislosti od nastavení typu InternetMail, //ak sa používa priamy prístup k serverom, alebo Mail, ak sa používa MAPI. Ak UseSMTP Then //Pre objekt typu InternetMail vytvorte a vyplňte poštový profil. MailProfile = Nový InternetMailProfile; MailProfile.SMTPServerAddress = Konštanty.SMTPServerAddressExchange.Get(); MailProfile.SMTPPort = Constants.InterchangeSMTPServerPort.Get(); MailProfile.SMTPUser = Constants.SMTPServerUserExchange.Get(); MailProfile.SMTPPassword = Constants.SMTPUserPasswordExchange.Get(); MailProfile.Timeout = Constants.TimeoutServer.Get(); Mail = New InternetMail(); Pokus o Mail.Connect(MailProfile); Správa o výnimke(" VÝMENA: Chyba pri pripájaní k poštový profil! Výmena zlyhala!" + ErrorDescription(), MessageStatus.VeryImportant); Return; EndTry; Inak Mail = NewMail(); Pokus Mail.Connect(); Správa o výnimke("" + ErrorDescription(), MessageStatus.VeryImportant); Return; EndTry; EndIf ; //Ďalej vyberte všetky uzly z plánu výmeny okrem aktuálneho, //pre ktorý je nastavený atribút PerformExchange. NodeSelection = Exchange Plans.DistributedBase.Select(); Kým SelectNodes.Next() Slučka Ak nie SelectNodes.PerformExchange Then Continue; Koniec Ak; If NodeSelection.Reference = Exchange Plans.DistributedBase.ThisNode() Then Continue; Koniec Ak; E-adresa = skrátená LP (výber uzlov. E-adresa); Ak EmailAddress = "" Potom pokračovať; Koniec Ak; //Pomocou objektov XMLWrite a MessageWrite zapisujeme zmeny //pre vybraný uzol do súboru xml. Node = NodeSelection.Reference; XMLWriter = Nový XMLWriter(); MessageFileName = TempFile Directory() + "Message_" + skrátené LP(Exchange Plans.DistributedBase.ThisNode().Code) + "_" + SkrátenéLP(Node.Code) + ".xml"; WriteXML.OpenFile(MessageFileName); MessageRecord = ExchangePlans.CreateMessageRecord(); WriteMessage.StartWrite(WriteXML, Node); Výmenné plány.WriteChanges(WriteMessage); WriteMessage.EndWrite(); WriteXML.Close(); //Potom vytvoríme nový list, pripojíme k nemu výsledný xml súbor a //odoslanie na adresu uvedenú v atribúte E-Address uzla. File = New File(MessageFileName); MessageSubject = "1C: Exchange" + skrátený LP(Výmenné plány.DistribuovanáBase.TentoUzol().Kód) + "_" + Skrátený LP(Uzol.Kód); If UseSMTP Then MailMessage = New InternetMailMessage; MailMessage.Subject = Predmet správy; MailMessage.Attachments.Add(MessageFileName, File.Name); MailMessage.Recipients.Add(EmailAddress); Mail.Send(MailMessage); Else MailMessage = Nová poštová správa; MailMessage.Subject = Predmet správy; MailMessage.Attachments.Add(MessageFileName); MailMessage.Recipients.Add(EmailAddress); Mail.Send(MailMessage, False); Koniec Ak; If Constants.OutputMessages.Get() Then Report(" EXC: Výmena správy pre uzol" + Node.Name + " odoslané! ", MessageStatus.Information); EndIf; DeleteFiles(MessageFileName); EndCycle; Mail.Disconnect(); EndProcedure

Odporúčam pridať do rozhrania prídavný panel, na jednom z tlačidiel ktorého zavesíte volanie tohto
postupy. Teraz zostáva spustiť Enterprise, nakonfigurovať emailová adresa periférne IS,
zaškrtnite políčko „Vykonať výmenu“, kliknite na tlačidlo postupu na paneli a spustite príjem pošty pre
zadaný email. adresy. Mali by ste dostať list s predmetom „1C: Exchange AA_BB“ a priložený súbor
"Message_AA_BB.xml".

Polovica práce je teda hotová: naučili sme „osmičku“ posielať RDB výmenné správy e-mailom.
pošty.

Krok 3. Prijímanie aktualizácií e-mailom a ich zaznamenávanie do IB

Teraz urobme opačný postup: dostávať aktualizácie e-mailom a písať ich do IB.

K parametrom relácie pridajme parameter „DistributedBaseExchange in Progress“ typu Boolean. Nižšie to vysvetlím
vymenovanie.

Do spoločného modulu rbDistributedBase pridáme nasledujúci postup:

Procedúra rbGetInterchangeMessages() Export UseSMTP = Constants.UseExchangeBySMTP.Get(); //rovnaké ako v procedúre rbSendExchangeMessages(), najprv vytvorte objekt Mail If UseSMTP Then MailProfile = Nový InternetMailProfile; MailProfile.POP3ServerAddress = Constants.POP3ExchangeServerAddress.Get(); MailProfile.POP3 Port = Constants.POP3ExchangeServerPort.Get(); MailProfile.User = Constants.POP3ExchangeServerUser.Get(); MailProfile.Password = Constants.POP3UserPasswordExchange.Get(); MailProfile.Timeout = Constants.TimeoutServer.Get(); Mail = New InternetMail(); Pokus o Mail.Connect(MailProfile); Správa o výnimke(" VÝMENA: Chyba pri pripájaní k poštovému profilu! |Výmena zlyhala!", MessageStatus.Very Important); Return; EndTry; Else Mail = New Mail(); Pokus Mail.Connect(); Správa o výnimke(" VÝMENA: Chyba pri pripájaní k poštovému profilu používateľa! |Výmena zlyhala!", MessageStatus.Very Important); Return; EndTry; EndIf;MessageArray = Nové pole; If UseSMTP Then AllMessages = Mail.Select(False); Else AllMessages = Mail.Select(False, False); EndIf; //Zo všetkých písmen vyberte tie, ktoré majú predmet "1C: Exchange". //Malá, ale dôležitá poznámka: //uvažujeme, že všetky prijaté listy s predmetom "1C: Exchange" sú určené //menovite pre aktuálny uzol, //tie. že rôzne uzly z hľadiska výmeny majú RÔZNE e-mailové adresy. Pre každú správu od všetkých správ slučka If Lion(Message.Subject, 8 )<>"1C: Výmena" Potom pokračujte; Koniec Ak; TryingMessageArray.Add(Message); //Uložte listovú prílohu na disk. //Presnú kontrolu hniezdenia nechajme zatiaľ v zákulisí. Attachment = Správa. Prílohy; MessageFileName = TempFileDirectory() + Attachment.Name; ExchangeData = Attachment.Data; ExchangeData.Write(MessageFileName); //Pomocou objektov XMLReader a MessageReader načítame dáta //aktualizácie z uloženého súboru. Pred zápisom aktualizácií do IB //nastavíme parameter relácie DistributedBaseExchange In Progress na hodnotu True. //Potom si prečítajte zmeny v IB: Exchange Plans.ReadChanges(ReadingMessage). //Zároveň uložíme správy do poľa, aby sme ich neskôr mohli všetky naraz vymazať. XMLReader = Nový XMLReader(); ReadingXML.OpenFile(MessageFileName); ReadMessage = ExchangePlans.CreateReadMessage(); ReadingMessage.StartReading(ReadingXML); SessionParameters.DistributedBaseExchange in Progress = True; Výmenné plány.ReadChanges(ReadMessage); ReadMessage.FinishReading(); ReadXML.Close(); If Constants.OutputMessages.Get() Then Report(" VÝMENA: Výmena údajov je akceptovaná",MessageStatus.Information); EndIf; Správa o výnimke(" VÝMENA: Chyba pri získavaní údajov výmeny:" + ErrorDescription(), MessageStatus.Very Important); EndTry; //Po dokončení čítania výmenných údajov sa vráťte //parameter relácie IsExchangingDistributedBase hodnota je False. SessionParameters.DistributedBaseExchange in Progress = False; Pokus o DeleteFiles(MessageFileName); Výnimka // ak to nebude fungovať, ok Koniec pokusu; EndCycle; If UseSMTP Then Mail.DeleteMessages(MessageArray); Koniec Ak; Mail.Disconnect(); EndProcedure

Teraz o tom, na čo slúži parameter relácie.
Faktom je, že pri čítaní údajov metódou Exchange Plans.ReadChanges() dochádza k volaniu
procedúry obsluhy udalostí BeforeWrite() zmenených/pridaných objektov. A ak pri nahrávaní
akéhokoľvek objektu v procedúre handlera, parameter Cancel bude nastavený na hodnotu True
pri vykonávaní ExchangePlans.ReadChanges() sa vyskytne výnimka, a teda výmena
nebude vykonaná. Hodnota parametra relácie IsInDistributedBaseExchange môže byť
analyzovať v procedúrach obsluhy, aby sa predišlo tejto situácii.
S vydaním revízie 12 (hoci sa môžem mýliť s verziami) je relevantnosť tejto metódy do istej miery
zastaranéA, pretože objekty majú vlastnosť Možnosti výmeny, ktorý vo svojom . Táto vlastnosť je nastavená na hodnotu True, keď
ukladanie údajov prostredníctvom výmenného plánu.

Teraz v rozhraní na našom paneli pridáme ešte jedno tlačidlo, na ktorom zavesíme hovor
postupy. Spustíme Enterprise a užívame si.
Takmer všetko je hotové, zostáva málo: aby sa naše postupy zaviedli automatický režim.
Krok 4. Nastavenie automatickej výmeny

Takže sme takmer blízko k cieľu nášho príbehu. Zostáva už len jeden krok: spustiť
vykonávanie výmenných procedúr v automatickom režime. Začnime.

Pridajme konštantu DistributedBaseAutoExchange Interval typu Number(5,0).

Do užívateľských nastavení pridáme parameter ExecuteDistributedBaseExchange. Pre konfiguráciu
„Riadenie obchodu“ sa vykonáva takto:

* V pláne typov charakteristík "Užívateľské nastavenia" pridajte preddefinované
charakteristika PerformExchange of DistributedBase typu Boolean.
* Vo forme prvku adresára „Users“ nakonfigurujeme zmenu tohto parametra (ako
možno zobraziť v module formulára, analogicky s inými parametrami).

Pridajte procedúru do modulu rbDistributedBase:

Procedúra rbExecuteExchange(prUser) Export If npGetDefaultValue(prUser, "") Then rbGetExchangeMessages(); rbSendExchangeMessages(); Koniec Ak; EndProcedure

do aplikačného modulu:

Procedúra CheckConnectionAutoExchange() Export If npGetDefaultValue(chCurrentUser, " PerformDistributedBaseExchange") And Constants.DistributedBaseAutoExchange Interval.Get() > 0 Then ConnectWaitingHandler(" Vykonajte automatickú výmenu", Constants.DistributedBaseAutoExchange Interval.Get()); Else DisableWaitingHandler(" Vykonajte automatickú výmenu"); EndIf; EndProcedure Procedure ExecuteAutoExchange() Export rbExecuteExchange(chCurrentUser); DisableWaitingHandler(" Vykonajte automatickú výmenu"); Ak npGetDefaultValue(chCurrentUser, " PerformDistributedBaseExchange") And Constants.DistributedBaseAutoExchange Interval.Get() > 0 Then ConnectWaitingHandler(" Vykonajte automatickú výmenu", Constants.DistributedBaseAutoExchange Interval.Get()); EndIf; EndProcedure Procedure DisableAutoExchange() Export DisableWaitingHandler(" Vykonajte automatickú výmenu"); KoniecPostupu

pridajte nasledujúce riadky do procedúry AtStartSystem() aplikačného modulu:

(po pripojení komerčného zariadenia)
...
SessionParameters.DistributedBaseExchange in Progress = False; CheckConnectionAutoExchange();

Pridajme na náš panel niekoľko ďalších tlačidiel na ovládanie procesu: postup zavesíme na jedno
CheckConnectingAutoExchange() k inému - DisableAutoExchange()

Spustíme podnik, nastavíme vlastnosti používateľov a interval automatickej výmeny a je to!

Teraz, pri vstupe do databázy pod týmto najviac nakonfigurovaným používateľom, sa spustí handler
čaká ExecuteAutoExchange(). Prirodzene, v periférnej databáze je tiež potrebné nakonfigurovať používateľa
na výmenu.

Ešte malá, ale dôležitá poznámka:

Vo všetkých kúzlach, ktoré sme vytvorili, je jedna nepríjemnosť: zmeny konfigurácie. O
Keď okrajová základňa dostane správu obsahujúcu zmeny v konfigurácii
budú akceptované, ale nastane výnimka. V tomto prípade bude upravená konfigurácia
naložený. Ak chcete aktualizovať konfiguráciu databázy, musíte vyradiť všetkých používateľov, prejdite na
konfigurátor a aktualizujte konfiguráciu databázy (predtým je dobré uvoľniť údaje). Komu
Žiaľ, ide o nutné zlo. Môžete si trochu uľahčiť život napísaním krátkeho bat súboru
niečo ako tento obsah:

1cv8.exe CONFIG /F<путь к ИБ>/N<Пользователь>/P<Пароль>/UpdateIBCfg

A ešte jedna poznámka:

Súbory xml bohužiaľ nie sú kompaktné, ale našťastie sa dokonale komprimujú. Môže byť v
procedúry na odosielanie a prijímanie správ pridávajú súbory na balenie a rozbaľovanie. COLOR="#666666">Môžete to urobiť buď pomocou externého archivátora alebo pomocou VK, napríklad Wheel.AddIn
(http://1c.proclub.ru/modules/mydownloads/personal.php?cid=81&lid=2714) .
S vydaním 10. (zdá sa) vydania je predchádzajúca veta trochu zastaraná, keďže platforma
boli vstavané prostriedky na kompresiu súborov pomocou algoritmu ZIP. Tie. teraz je možné komprimovať súbory
bez použitia VK.

Technológia distribuovaných informačných základní (RIB) vám umožňuje vytvoriť geograficky distribuovaný systém založený na konfiguráciách 1C Enterprise. To vám umožní mať spoločné informačný priestor aj s tými jednotkami, ktoré nemajú spoľahlivý komunikačný kanál, kombinujúci vysokú autonómiu uzlov so schopnosťou rýchlej výmeny informácií. V našich článkoch sa budeme zaoberať funkciami a praktickou implementáciou tohto mechanizmu na platforme 8.2.

Najprv si položme otázku: prečo automatická výmena? Moderné technológie, v kombinácii s lacnými a rýchly internet, umožňujú organizovať prácu na diaľku bez akýchkoľvek problémov. Výber metód je širší ako kedykoľvek predtým: RDP, tenký a webový klient, kedy sieť Pomocník VPN- je o čom premýšľať. Všetky tieto metódy však majú jednu významnú nevýhodu - silnú závislosť od kvality komunikačného kanála.

Ani pri ideálnej práci lokálneho poskytovateľa nie je možné zaručiť 100% dostupnosť komunikačného kanála. Problémy s chrbticovým poskytovateľom, nedostatok napájania, fyzické poškodenie komunikačnej linky a mnohé ďalšie faktory robia túto úlohu neriešiteľnou. Neprístupnosť informačnej základne vo vzdialenom sklade alebo maloobchode zároveň vedie k pomerne značným stratám. A napokon nezabúdajme, že sú miesta (napríklad priemyselné zóny na okraji miest), kde je nákladné a/alebo problematické priniesť kvalitný komunikačný kanál.

Mechanizmus RIB vám umožňuje zbaviť sa týchto nedostatkov, každá jednotka má vlastnú kópiu informačnej základne, s ktorou môžete pracovať autonómne aj pri absencii komunikácie s vonkajším svetom. Malé množstvo prenášaných informácií vám umožňuje použiť na výmenu akýkoľvek komunikačný kanál vrátane mobilného internetu.

RIB na platforme 8.2 nie je niečo zásadne nové, čo predstavuje ďalší vývoj Platforma URIB 7.7, až teraz sa táto technológia stala dostupnejšou a jednoduchšou. Na rozdiel od komponentu URIB, ktorý bolo potrebné zakúpiť samostatne, RIB je neoddeliteľnou súčasťou mnohých typické konfigurácie a funguje úplne v užívateľskom režime, čo vám umožňuje zaobísť sa bez konfigurátora aj vo fáze konfigurácie.

V tejto chvíli by bolo načase prejsť k praktickej časti, ale bude potrebné urobiť ešte jednu odbočku. Faktom je, že prechod na platformu 8.2, ktorý, ako sa zdá, už nastal, v skutočnosti viedol k vzniku dvoch typov konfigurácií: založených na riadenej aplikácii, natívnej pre platformu 8.2 a prispôsobenej z 8.1, pričom sa naďalej používa zastarané technológie a mechanizmy. Keďže značná časť konfigurácií (Podnikové účtovníctvo, Mzdy a Personalistika) je prispôsobená alebo prechodná, nemožno ich zľaviť, preto prvá časť nášho článku bude venovaná týmto konfiguráciám (v podstate platforma 8.1), zatiaľ čo v druhej budeme bude analyzovať konfiguráciu automatickej výmeny pre konfigurácie založené na riadených aplikáciách (platforma 8.2).

Zoberme si praktickú úlohu: nastavte automatickú výmenu cez FTP pre konfiguráciu Enterprise Accounting 2.0. Napriek tomu, že RIB umožňuje výmenu pomocou Email alebo zdieľania súborov, odporúčame použiť FTP ako najjednoduchšie a najbežnejšie spoľahlivým spôsobom spojenia. Môžete si prečítať, ako si nastaviť vlastný FTP server, alebo môžete využiť službu FTP ktoréhokoľvek poskytovateľa hostingu.

V prvom rade musíme nastaviť výmenné uzly. Ak to chcete urobiť, spustite konfiguráciu s právami správcu a vyberte Operácie - Výmenné plány.

V zobrazenom zozname vyberte Plný plánovať resp Podľa organizácie, ak jedna databáza vedie evidenciu viacerých firiem a výmenu je potrebné vykonať len za jednu z nich. V okne, ktoré sa otvorí, je už jeden uzol - centrálny, musíme ho upraviť zadaním kódu a názvu.

Potom vytvoríme ďalší uzol pre vetvu a vyplníme ho rovnakým spôsobom (ak chcete pridať, kliknite na zelený kruh so znamienkom plus). Ďalším krokom je vytvorenie počiatočného obrazu pre tento uzol, čo je hotová infobáza v režime súborov. Ak to chcete urobiť, kliknite kliknite pravým tlačidlom myši kliknite na požadovaný uzol a v rozbaľovacom zozname vyberte Vytvorte úvodný obrázok.

Teraz poďme ďalej Služba - Distribuovaná informačná základňa (RIB) - Konfigurácia uzlov DIB.

V okne, ktoré sa otvorí, kliknite na tlačidlo Pridať a prispôsobiť nová výmena, špecifikujúc vzdialeného hostiteľa, typ výmeny (cez FTP) a nastavenia pripojenia k serveru.

Záložka Automatická výmena umožňuje konfigurovať harmonogram výmen, výmeny podľa udalostí (začiatok a koniec práce atď.), tieto nastavenia sa vykonávajú pre používateľa, v mene ktorého sa bude výmena vykonávať, preto sa uistite, že má práva na výmenu údajov .

Nezabudnite zadať prefix uzla pre číslovanie dokladov (inak dostanete rôzne doklady s rovnakými číslami) v Nástroje - Nastavenia programu, tu môžete nakonfigurovať aj niektoré ďalšie nastavenia výmeny. Na tej istej karte by ste mali vybrať používateľa na vykonávanie úloh výmeny, ak to neurobíte, plán nebude fungovať. Nezabudnite, že výmena sa uskutoční iba vtedy, ak daný používateľ prihlásený do programu.

Tým je konfigurácia centrálneho uzla dokončená, teraz je potrebné vykonať podobné nastavenia pre periférny uzol pripojením úvodného obrazu ako existujúceho IB. Potom môžete začať s výmenou údajov. Na kontrolné použitie Monitor komunikácie, umožňuje vám nielen kontrolovať úspešnosť nahrávania / sťahovania, ale zobrazuje aj kolízie alebo čakajúce pohyby (ak používateľ, ktorý uskutočnil výmenu, nemá dostatočné práva na vykonávanie akýchkoľvek akcií v databáze). Prítomnosť tohto nástroja vám umožňuje rýchlo a efektívne riešiť rôzne druhy problémov, ktoré vznikajú pri automatickej výmene.

V tomto prípade možno nastavenie výmeny považovať za dokončené a môžete začať pracovať v distribuovanom režime. Samostatne sa oplatí venovať aktualizácii alebo zmenám konfigurácie. Tieto akcie sú dostupné len na centrálnom uzle, všetky vykonané zmeny sa automaticky prenesú do periférnych uzlov na ďalšej ústredni. Automatické zmeny vyžadujú, aby okrajová základňa bola v exkluzívnom režime, inak budete musieť spustiť Konfigurátor a vykonať Aktualizácia konfigurácie databázy manuálne.

Ak vaša organizácia zamestnáva viac ako 5 ľudí, potom s najväčšou pravdepodobnosťou používate produkty 1C. Takmer vždy organizácie inštalujú niekoľko databáz 1C, pretože každá z nich rieši určitý rozsah úloh. Napríklad spoločnosť sa zaoberá maloobchodným predajom a vedie účtovníctvo, v takejto situácii si klient zvyčajne nainštaluje UT (Trade Management) a BP (Enterprise Accounting). Dokonca aj jednoduchý individuálny podnikateľ s niekoľkými zamestnancami môže dobre pôsobiť ako taká spoločnosť!

Prečo by som mal nastaviť výmenu údajov?

Pokračujme v zvažovaní situácie s UT a BP. Predstavte si, že teraz nemáme nakonfigurovanú ústredňu, aké akcie musíme vykonať, aby sa účtovné transakcie premietli do oboch databáz? Presne tak, najprv vyplníme údaje v UT a potom tie isté údaje budeme musieť zadať do BP, pretože nevieme napr. zadať príjem tovaru do UT, ale nedá sa to v r. BP.

Aj keď sa rozhodnete použiť typickú výmenu údajov (nastavenie typickej výmeny údajov (synchronizácia 1C)), neznamená to, že je možné ju nakonfigurovať vo vašej databáze. Problémy sa objavia, ak ste napríklad dlho neaktualizovali databázu (na zachovanie výmeny typov musia byť vaše databázy aktuálne) alebo ak sú objekty, ktoré sa chystáte preniesť z jednej databázy do druhej, upravené (v tomto prípade výmena typov nebude fungovať správne), okrem toho všetkého, aj keď sa verzie databázovej platformy líšia (7.7 - 8.3), potom bude pravdepodobne potrebné dokončiť alebo rozvinúť výmenu údajov od začiatku.

Kto potrebuje používať výmenu údajov medzi databázami 1C?

Ak sú pre vás nižšie uvedené vyhlásenia relevantné, musíte nakonfigurovať výmenu medzi vašimi konfiguráciami:

  • Máte viac ako 1 jednu základňu 1C
  • Potrebujete rýchlo preniesť informácie z jednej databázy do druhej a naopak
  • Potrebujete automatickú výmenu alebo výmenu v reálnom čase

Vývoj a konfigurácia výmeny dát medzi konfiguráciami 1C

Správne navrhnutá výmena údajov vám umožní:

  • Uvoľnite a načítajte objekty z jednej databázy do druhej
  • Vykonajte výmeny medzi rôzne verzie 1C
  • Zdieľajte údaje v reálnom čase
  • Výrazne znížiť náklady na mzdy zamestnancom, pretože teraz budú mať viac voľného času
  • Ušetrite čas a rozpočet

Vývoj pravidiel výmeny údajov na príklade upravených databáz UT a BP

Máme dve bázy, v ktorých sa finalizuje doklad „Prijatie tovaru a služieb“, a to najmä v dokladoch a tabuľkové časti boli pridané nové detaily, niektoré typické detaily boli odstránené, v dôsledku čoho nefunguje štandardná výmena dát. Vyvinuli sme nové pravidlo výmeny a zapísali sme ho do súboru.