Internet Windows Android

Revizuirea conversiei datelor 3.0. Atunci de ce avem nevoie de KD3? Avantaje și dezavantaje

Scopul acestui articol este de a răspunde la primele întrebări despre KD3 și mai departe exemplu simplu arată cum se modifică regulile standard. Informațiile sunt utile pentru începători și pentru cei care au început deja să stăpânească și au întrebări noi.

Abrevieri acceptate în această publicație

KD2- Conversia datelor de configurare, versiunea 2.0.
KD3- configurare Conversia datelor, revizuirea 3.0, configurația 3.0.5.3.
ED- format de schimb universal EnterpriseData.

Răspunsuri la întrebări după o cunoaștere superficială cu KD3. Dacă știți de ce aveți nevoie de KD3, puteți sări peste acest paragraf;)

Intrebari si raspunsuri

  • KD3 este o versiune nouă a KD2? Nu! Acesta este un alt instrument care rezolvă sarcini similare cu KD2. Fiecare instrument are propria aplicație.
  • Este KD3 mai bun decât KD2? Nu se pot compara, pentru că sunt instrumente diferite și fiecare are propriile sale avantaje și dezavantaje.
  • Pentru a schimba regulile pentru schimbul KD3, aveți nevoie pentru a elimina configurația din suport? Nu NU trebuie să vă retrageți din suport! În configurațiile tipice, puteți conecta în mod standard procesarea externă cu reguli, iar în configurațiile care acceptă platforma 8.3.10 și o versiune ulterioară, puteți edita regulile folosind extensia.
  • Trebuie să transferați date din configurațiile interne. În scopuri de studiu, puteți utiliza KD3? Dacă pui această întrebare, cel mai probabil nu poți. Pentru KD3, configurația trebuie să includă BSP 2.3 și o versiune ulterioară cu sincronizare printr-un format universal. KD2 vă va potrivi 100%, KD3 este discutabil.
  • KD3 poate fi utilizat pentru configurații modificate tipice? Da, poti. Dacă datele dvs. atipice pot fi transmise folosind elemente de recuzită ED sau AdditionalInfo, este în regulă. În caz contrar, există o opțiune pentru a schimba formatul de schimb (schema XML). În acest caz, capacitățile CD3 vor fi aproape egale cu CD2, dar principalul avantaj al CD3 va fi pierdut - versatilitatea formatului de schimb.
  • Configurațiile care acceptă ED pot fi schimbate între ele? Da! Dar pentru schimbul BP 3.0 - BP 3.0, la crearea sincronizării, nu puteți selecta BP 3.0. Este în regulă, alegeți „Alt program”. Dacă aveți nevoie de un schimb unic, este suficient să utilizați procesarea „Încărcare / Încărcare EnterpriseData” din meniul Toate funcțiile.
  • După actualizarea configurației, trebuie să descărcați cele mai recente reguli din pachet? Nu! Regulile sunt cuprinse în modulul de configurare. Pentru a face schimb cu alte baze de date 1C, nu trebuie să încărcați regulile unei alte baze de date. De ce? Detalii în acest articol.
  • După actualizarea unei baze de date, este necesar să actualizați cealaltă bază de date participantă la schimb? Nu! Nu este necesară actualizarea sincronă a tuturor bazelor de date care participă la schimb. Acesta este unul dintre avantajele KD3.
  • Configurațiile noastre au fost mult îmbunătățite, există noi tipuri de documente și directoare, poate KD3 să le transfere? Există șansa ca acesta să nu poată face fără a schimba formatul. Acesta este unul dintre dezavantajele KD3 comparativ cu KD2.

Atunci de ce avem nevoie de KD3? Avantaje și dezavantaje

Avantajele KD3

Să luăm în considerare principalul avantaj al KD3 folosind exemplul unei sarcini întâlnite frecvent. Există o configurație UT 11.3, care nu este actualizată din anumite motive. Este necesar să se organizeze un schimb cu BP 3.0, care este actualizat constant la versiunea actuală.

Nici o problemă.

  • Formatul de schimb universal utilizat în KD3 este conceput pentru a rezolva astfel de probleme.
  • Regulile de schimb în UT nu sunt create pentru schimb cu BP, ci pentru schimb cu formatul universal EnterpriseData.
  • Dacă operăm în termeni de KD2, atunci UT schimbă cu configurația ED, care nu se schimbă. BP 3.0 este, de asemenea, schimbat cu ED.

Fiecare configurație are propriile reguli pentru schimbul cu ED. Astfel, UT încarcă întotdeauna date în același format. Configurarea BP 3.0, oricât de nouă ar fi, ar trebui să poată primi date din acest format.

Se pare că UT nu trebuie să-și facă griji cu privire la faptul că BP va schimba unele detalii. Sarcina este simplă - încărcați în ED, iar configurația PSU ar trebui să poată accepta date din acest format.

  • Datorită faptului că sursa încarcă întotdeauna configurația într-un singur format, orice receptor de configurare poate încărca date din acest format universal.
    Acestea. pentru o combinație arbitrară de schimburi UT - BP, UT - KA, UT - ERP, KA-BP, ERP - BP. nu este nevoie să scrieți reguli individuale. În KD3, regulile sunt universale. Orice configurație care acceptă schimbul de format universal poate fi schimbată cu orice configurație care acceptă formatul ED.

Depanarea algoritmilor și regulilor este disponibilă în configurația propriu-zisă, deoarece toate regulile sunt modul general sau cod de procesare extern. Puteți face fără KD3 pentru a remedia rapid eroarea.

Contra ale KD2

Regulile de schimb sunt individuale pentru fiecare pereche de configurații. Pentru toate combinațiile de mai sus schimbă între tipuri diferite configurații și versiuni diferite configurațiile au nevoie de propriile reguli de schimb. Prin urmare, pentru a rezolva problema sus-menționată a schimbului UT 11.3 și BP 3.0, va fi necesar să depanați și să rafinați regulile de schimb aproape după fiecare actualizare a BP 3.0.

Depanarea algoritmilor și regulilor este dificilă pentru un programator începător sau pentru cineva care se confruntă rar cu această sarcină. Regulile sunt stocate în fișier xml. Soluție rapidă eroarea nu este disponibilă. Este necesar să încărcați regulile în KD2, să le corectați și să le descărcați înapoi.

Contra KD3

Formatul universal impune restricții asupra tipurilor de documente și directoare. Este proiectat pentru configurații tipice. Dacă aveți o cerință sau un tip de document atipic, pot apărea dificultăți în schimb.

Pentru sincronizarea în format ED, configurația trebuie să suporte aceste mecanisme. Toate acestea sunt în BSP 2.3 și mai sus. Acesta nu este cu adevărat un minus, ci mai degrabă o caracteristică.

Plusul principal se estompează puțin din cauza intervalului de timp limitat pentru suportarea formatului. Acest lucru a fost deja simțit de utilizatorii UT 11.1, UT 11.2, care fac schimb cu BP 3.0. Orele de asistență sunt listate aici. Se spune că perioada minimă garantată de suport pentru format este de un an, de fapt, aproximativ 3 ani. Astfel, dacă configurați sincronizarea astăzi, atunci timp de cel puțin un an nu puteți actualiza baza de date UT 11 și apoi fie actualizați configurația, fie pur și simplu adăugați un nou format, faceți o mică modificare în BSP și în reguli, daca este necesar. Cum să o facă? Va fi menționat mai târziu în acest articol.

Avantajele KD2

Posibilitățile KD2 sunt nesfârșite. Puteți crea reguli de schimb pentru orice configurație pe orice platformă. De la 1C 7,7 până la ultima 8,3. Nu este necesar nimic din configurație, BSP este opțional. Regulile pot fi create automat și modificate.

În legătură cu argumentele pro și contra de mai sus, se recomandă utilizarea KD3 pentru configurații tipice. KD2 poate fi utilizat pentru orice configurație, dar având în vedere dezavantajele sale, nu uitați că uneori este mai oportun să utilizați KD3.

Sper că înțelegeți de ce este nevoie de KD3, continuăm pe fond.

Abrevieri acceptate în continuare

BSP- Biblioteca subsistemelor standard.
SUB- regula de prelucrare a datelor.
PKO- regula de conversie a obiectelor.
PKPD- regula pentru conversia datelor predefinite.
PKS- regula de conversie a proprietatii.

Luați în considerare un exemplu - este necesar să schimbați regulile standard pentru schimbul de BP 3.0 și UT ​​11.3

Pe un fundal galben, există pași din instrucțiunile care se deschid în KD3. Secvența pașilor propuși în acest articol este diferită, pentru a nu se confunda și a finaliza imediat logic acțiunea începută.

Cum schimb regulile ED?
  1. Modificați modulul cu reguli de schimb chiar în configurație. Nu luăm în considerare această opțiune încă, deoarece pentru a înțelege ce și unde trebuie schimbat, este necesar să o faceți cel puțin o dată în KD3. În acest caz, va fi mai ușor în viitor să rezolvați rapid problemele, să depanați modulul și să transferați în KD3 dacă este necesar.
  2. Folosiți KD3.
    Cum se face acest lucru în KD2? Descărcăm metadatele ambelor configurații și le încărcăm în KD2.
    Pasul 1. Pentru KD3 facem același lucru - în fiecare configurație în modul întreprindere prin procesare \ tmplts \ 1c \ Conversie \ 3_0_5_3 \ MD83Exp.epfîncărcați metadate de configurare,
    de exemplu, în folderul „ D: \ Reguli BP3 \ BP 3.0.54.15 \", Nume de fișier " MD.xml».

Nu este clar în ce scop sunt ascunse setările acestei prelucrări, ca urmare, în mod implicit, datele din registrele de informații nu sunt descărcate. Eliminam acest defect.
În procedura ChangeProcessingMode () din formularul principal, comentați linia

// Elements.Settings.Visibility = False;

Salvăm procesarea, o deschidem în modul întreprindere, punem steag pe „Descărcați registrele de informații”, descarcăm.

Pasul 3.Încărcați fișierul creat anterior „ MD.xml„În KD3, semnalizator de secțiune” V versiune noua configurație».

pentru că în KD3, „configurația intermediară” (ED) este utilizată pentru schimb, încărcăm și „metadatele” acesteia, care este o schemă XML, un fișier cu extensia „xsd”. Pasul 2.Îl puteți lua din configurația UT 11 sau BP 3.0. Sunt la fel. Deschideți configurația, în bara de căutare, introduceți „ introduce„, vedem în copac Generalități - pachete XDTO unele pachete de genul acesta: EnterpriseData_1_3_8, EnterpriseData_1_4_4și altele asemenea .. Acestea sunt versiuni ale formatului 1.3 și, respectiv, 1.4, și 1.2, 1.1, 1.0 dacă există. Butonul dreapta al mouse-ului de pe pachet, în meniul contextual alege „”.

Pasul 4.În secțiunea KD3, selectați fișierele încărcate anterior cu extensia „xsd”. Trebuie să selectați un fișier! Alegere multiplă împreună cu ExchangeMessage nu este necesar! Acest lucru a fost sugerat în vechile instrucțiuni KD3 Versiunile anterioare... În ultimul CD3, acest lucru nu este necesar.

După încărcarea formatului în secțiune Data Format - Format Object Tree, selectați versiunea formatului. Dacă există documente și directoare acolo, atunci ați încărcat fișierul corect. Dacă nu, începeți din nou cu un nou CD3 gol și încărcați mai întâi formatul și verificați arborele.

Etapa 2. După încărcarea metadatelor în CD3, trecem la încărcarea regulilor standard de schimb.
Cum se face acest lucru în KD2? Regulile sunt încărcate în conversie.
Este aproape la fel în KD3. Descărcăm regulile din cea standard, creăm o conversie și apoi încărcăm regulile în ea.

Descărcarea regulilor tipice din configurație pentru încărcare în CD3

Configurațiile sunt schimbate pe versiunea comună maximă a formatului de schimb. De exemplu, o configurație are un format maxim de 1.5, cealaltă 1.6, ceea ce înseamnă că se vor schimba între ei într-un format 1.5. Prin urmare, este suficient să descărcați formatul 1.5 din ambele configurații și să îl încărcați în reguli.

Deschidem configurația BP 3.0 sau UT 11.3 în modul configurator, în bara de căutare puteți introduce „ barbati uni”, Deschideți modulul general. Dacă acesta este BP 3.0, atunci deschideți-l. În modulul deschis, accesați meniul Fișier - Salvați o copie, salvați fișierul cu un nume arbitrar, de exemplu, „ D: \ Reguli BP3 \ BP 3.0.54.15 \ Modul comun ExchangeManager prin UniversalFormat_Module».
Deschideți configurația BP 3.0 sau UT 11.3 în modul întreprindere, procesare deschisă \ tmplts \ 1c \ Conversie \ 3_0_5_3 \ Încărcați regulile de sincronizare.epf

Lipsa procesării tipice:

  • adesea eșuează;
  • descarcă reguli din procesarea externă conectată la nod, dar avem nevoie de reguli tipice;
  • nu funcționează în BP 3.0.53 și versiuni ulterioare.

Modificarea modulului formularului principal de prelucrare. Efectuarea de modificări la proceduri OnCreateAtServer.

& AtServer Procedure OnCreateAtServer (Anulare, StandardProcessing) // Lista de selectare a versiunilor de format. Versiuni de format = potrivire nouă; Schimb de dateRedefinable.OnGettingAvailableFormatVersions (FormatVersions); Pentru fiecare ExchangePlan de la DataExchangeRepeatExchangePlansBSP () Ciclu If DataExchangeRepeat.ThisExchangePlanXDTO (ExchangePlan) Apoi ExchangePlan Format Versions = New Match; Versiunea BSP243 = GeneralPurposeClientServer.CompareVersions (Versiunea StandardSubsystemsServer.Library (), "2.4.3.1")> = 0; ModuleDataServer = scop general CommonModule ("Server de schimb de date"); Dacă versiunea BSP243, atunci ExchangePlaneFormatVersions = DataExchange ModuleServer.ExchangePlanSettingsValue (ExchangePlan, „ExchangeFormatVersions”); În caz contrar, ExchangePlans [ExchangePlan] .GetExchangeFormatVersions (Versiuni ExchangePlanFormat); EndIf; Pentru fiecare ExchangePlaneVersion din ExchangePlanFormatVersion CycleManager Module = FormatVersions.Get (ExchangePlaneVersion.Key); Dacă Manager Unit = Undefined Sau Manager Unit<>ExchangePlaneVersion.Value ThenFormatVersions.Insert (ExchangePlaneVersion.Key, ExchangePlaneVersion.Value); EndIf; Sfârșitul ciclului; EndIf; Sfârșitul ciclului; Pentru EachFormatVersionFROMFormatVersion Loop Elements.FormatVersionNumber.SelectionList.Add (FormatVersion.Key); Sfârșitul ciclului; FormatVersionStoreAddress = PutToTemporaryStore (Versiuni de format, UniqueIdentifier); Sfârșitul procedurii

  • Selectăm „Format versiunea număr”, de exemplu, „ 1.3 »,
  • „Director de schimb” - creați un folder, de exemplu, „”
  • Apasa butonul " Descărca».

Repetăm ​​acești pași pentru alte versiuni ale formatului și le salvăm în folderele corespunzătoare „1.4”, „1.5” etc. Pentru BP 3.0, este suficient să descărcați toate formatele de la 1.3 și versiuni ulterioare. Pentru alte configurații de la 1.2 și mai sus.

Regulile au fost descărcate, acum trebuie să le încărcați în KD3. În KD2, regulile sunt încărcate simultan cu crearea conversiei. În CD3, trebuie să creați o conversie și să încărcați regulile în ea.
În secțiunea KD3 Conversii - Conversii - Creare... ... Alegerea unei configurații. Pentru comoditate, puteți schimba numele configurației accesând modul de editare a elementelor. De exemplu, în loc de ContabilitateIntreprinderi indica " BP 3.0.54.15". Recuzită Nume nu trebuie schimbat! Nume conversiile pot fi specificate la fel, de exemplu, „ BP 3.0.54.15". V parte tabulară selectați versiunile acceptate ale formatului. Versiunile formatului sunt cele pe care le-am descărcat din baza de date de mai sus. Salvăm conversia.

Accesați secțiunea Conversie - Se încarcă regulile de sincronizare din fișiere.
:

    Locul de încărcare: " În conversia existentă»

    Director Exchange: " D: \ Reguli BP3 \ BP 3.0.54.15 \ 1.3»

  • Fișier cu modulul de schimb: " D: \ Reguli BP3 \ BP 3.0.54.15 \ Modul comun Exchange Manager prin UniversalFormat13_ Module.txt»
  • Conversie: " BP 3.0.54.15»

La încărcarea regulilor de sincronizare din fișiere pentru UT 11.3, apare o eroare „ Câmpul obiect nu a fost detectat". Motivul este pentru TekPKO.UseForReceive = False CD3 necesită informații despre opțiunea de identificare la primire. Dacă aceasta nu se află în fișierul regulilor, apare o eroare. Corectăm această neînțelegere. Fie eliminăm acest formular din suport, fie folosim extensie.

// Principala formă de procesare LoadingSynchronizationRulesFromFiles // Înainte de a fi efectuate modificări: // Procedura încarcă regulile de conversie a obiectelor & Pe server Procedura LoadPKO () ... FillProperty Values ​​​​(TekPKO, Attributes Structure); // Opțiune de identificare - logică specială. TekPKO.ObjectIdentification Option = Enumerări.Opțiuni de identificare a obiectelor [AttributesStructure.Identification Option]; ElseIf XMLReader.NodeType = XMLNodeType.EndItem Apoi // Scrieți POC-ul încărcat. ... // Modificările sunt marcate cu „// ED” // Procedura încarcă regulile pentru conversia obiectelor & Pe procedura Server LoadPKO () ... FillProperty Values ​​(TekPKO, Structura atributelor); // Opțiune de identificare - logică specială. If TekPKO.UseFor Obtaining Then // ED TekPKO.Identification Option = Enumerations.Object Identification Options [Attribute Structure.Identifying Option]; EndIf; ElseIf XMLReader.NodeType = XMLNodeType.EndItem Apoi // Scrieți POC-ul încărcat. ...

Apasa butonul " Descarca». « Handlerele sunt destinate unei conversii diferite: BP 3.0.44 (format 1.4). Continuați descărcarea?"Clic" da».
Fără a închide formularul, selectați alt „ Director de schimb„Și apăsați butonul” „. Repetăm ​​de mai multe ori încărcarea regulilor pentru fiecare format în conversia curentă.
După încărcarea cu succes, accesați secțiunea " Conversie „-” Configurarea regulilor de conversie", Deschideți conversia noastră din formularul de listă.
Dacă vedem POD etc., atunci încărcarea în CD3 a avut succes.

Verificarea corectitudinii regulilor de încărcare

Aceasta este o operațiune opțională! Dacă veți folosi aceeași versiune a formatului în reguli, nu este necesar să obțineți identitatea textului modulului.

  • Deschideți configuratorul BP, creați o nouă procesare externă, de exemplu, Nume „ Sincronizarea EDBP", Sinonim pentru" Sincronizare ED BP 3.0».
  • În KD3 sub forma „ Stabilirea regulilor de schimb„Apăsați butonul” „și inserați acest cod din clipboard în noua noastră procesare.
  • În configuratorul BP, verificăm modulul pentru erori de sintaxă... Salvăm procesarea.
  • creați o altă procesare goală în BP, de exemplu, Nume „ Sincronizare EDB Tipic", Sinonim pentru" Sincronizare ED BP 3.0 tipică". Copiați textul modulului de alimentare generală Manager de schimb prin format universal13în modulul de procesare și salvați-l.

Să comparăm ambele tratamente. Meniul Fișier - Comparați fișiere.

Dacă un modul standard conține proceduri care sunt absente în regulile noastre, înseamnă că nu ați încărcat regulile de conversie pentru toate formatele de date. Daca este necesarîncărcați regulile în formatul lipsă în conversie și repetați compararea regulilor noastre cu cele standard. Când am atins identitatea puteți trece în siguranță la finalizarea regulilor... Nu este necesar să obțineți o identitate completă dacă știți care dintre formatele de schimb nu vor fi utilizate pentru sincronizare.

Într-un mod similar, creăm o conversie pentru UT 11.3 în KD3.

BP 3.0.54.15

  • Se observă încărcarea incorectă a PKO " Referință_Utilizatori„. Trebuie corectat. Ar trebui.
  • În PKO" Document_Inventar_Produs_Livrare"pentru PKS" Persoana responsabila"PEC nu este specificat. Deschideți, reselectați proprietatea de configurare și proprietatea de formatare pentru a completa tipul acestora, după care selectarea din" Regula de conversie a proprietății". Selectați" Director_Persoane_Trimite".

Luați în considerare un exemplu de revizuire

Scopul principal al exemplului este de a arăta posibilitățile de îmbunătățire a transferului de date suplimentare care nu se încadrează în formatul de schimb.

Trebuie să transferați recuzita " TypeNomenclature"carte de referință" Nomenclatură ", tip de variabilă" Directory.ViewsNomenclatures„. Acest tip de carte de referință nu este suportat de regulile standard ale KD3 și nu este acceptat de versiunea în format ED sub 1.6.

Există mai multe opțiuni pentru a rezolva această problemă.

  • Rafinament Pachetul XDTO , adăugând obiectul „Reference.Nomenclature Types” la format. Ca urmare, principalul avantaj al formatului universal este pierdut - acesta încetează să mai fie universal. Modificarea pachetului XDTO va fi necesară în toate bazele de date care participă la schimb.
  • Utilizați proprietatea format " Detalii suplimentare", care se află în multe obiecte. Această opțiune nu va fi luată în considerare în acest articol din cauza unei anumite complexități. Rețineți că există o astfel de metodă.
  • Recuzită Informații suplimentare. Este prezent în antetul tuturor obiectelor de format. Orice tip. Conceput pentru astfel de cazuri. O vom folosi ca fiind cea mai simplă modalitate.

Înainte de a continua cu rafinarea regulilor standard, să creăm două grupuri în grupul de reguli „ Adăugat de», « Schimbat". Acest lucru se face în „ Conversii -".
Noi POD, PKO, algoritmi etc. vom crea în grupul „Adăugat”, obiectele standard la care facem modificări vor fi transferate în grupul „Modificat”. Acest lucru va facilita menținerea ulterioară a regulilor modificate.

Deci sa începem.

Modificări ale regulilor din UT 11.3

În KD3 sub forma „ UT 11.3.4.12 Stabilirea regulilor de schimb„Pe filă Algoritmi crearea unui nou algoritm

  • Numele algoritmului „AdditionalInfoInsert”
  • Grup: „Adăugat”

Parametri: "DataXDTO, Name, AdditionalValue"

Cod algoritm

Dacă DataXDTO.Property ("AdditionalInfo") ȘI TypeValue (DataXDTO.AdditionalInfo) = Type ("Structură"), atunci AdditionalData = DataXDTO.AdditionalInfo; În caz contrar, AdditionalData = Structură nouă; EndIf; AdditionalData.Insert (Name, AdditionalValue); DataXDTO.Insert ("AdditionalInfo", AdditionalData);

Salvăm algoritmul și mergem la fila „ Reguli de conversie a obiectelor»

Prin butonul " Găsi"Se caută" Nomenclatură ", deschide PKO" Reference_Nomenclature_Send". Accesați fila " La trimitere". Acolo vedem câmpul „Handler name:” „”. Puteți face modificări direct acolo.
Codul mai complex care necesită depanare poate fi scris în configurație. Căutăm în modulul de schimb din UT 11.3 o procedură numită „ PQS_Reference_Nomenclature_Send_When SendingData„Și finalizând acolo.
Pentru a transfera modificările de la UT 11.3 la KD3, copiați întreaga procedură în clipboard, în KD3 sub forma „ Stabilirea regulilor de schimb"Apasa butonul" ".

Pentru exemplul nostru, codul este

Dacă ValueFilled (DataIB.NomenclatureView) Atunci // ED AdditionalInfoInsert (DataXDTO, "NomenclatureView ", String (DataIB.NomenclatureView.UniqueIdentifier ())); AdditionalInfo Insert (DataXDTO, „NomenclatureNomenclatureName”, GeneralPurpose.ObjectAttributeValue (DataIB.NomenclatureView, „Name”)); // AdditionalInfo Insert ... // adăugați alte detalii de serviciu EndIf;

După transferul modificărilor în KD3, apăsați butonul " Salvați modulul de manager de schimb„și transferați codul din buffer în modulul UT 11.3.

Modificări ale regulilor din BP 3.0

Facem modificări la PKO" Nomenclatura_Referință_Obținere", pe" La conversia datelor XDTO", numele procedurii" PKO_Reference_Nomenclature_Getting_WhenXDTODataConversion".

Cod adăugat la modulul „PKO_Reference_Nomenclature_Getting_WhenXDTODataConversion”

Dacă DataXDTO.Property ("AdditionalInfo") ȘI TypeValue (DataXDTO.AdditionalInfo) = Type ("Structură") Apoi // ED AdditionalData = DataXDTO.AdditionalInfo; Dacă AdditionalData.Property ("NomenclatureType") ThenNomenclatureType = ExchangeDataXDTOServer.ObjectLinkPoUIDObjectXDTO (AdditionalData.NomenclatureView, Type ("DirectoryLink.NomenclatureType"), Componente Exchange); IfNomenclature.GetObject () = Undefined AND AdditionalData.Property ("NomenclatureKindName") Then // Creați un newNomenclatureKindObject = Directories.NomenclatureTypes.CreateElement (); NomenclatureKindObject.SetNewLink (NomenclatureKind); Nomenclature typeObject.Name = AdditionalData.Nomenclature typeName; // completați alte detalii de serviciu FillPropertyValues ​​(NomenclatureKindObject, AdditionalData); NomenclatureKindObject.Write (); NomenclatureKind =NomenclatureKindObject.Ref; EndIf; ReceivedData.NomenclatureType = NomenclatureType; EndIf; EndIf;

Numai codul nu este suficient. În fila „Reguli de conversie a proprietăților” este necesar să adăugați un PCA cu proprietatea de configurare „„ și o casetă de selectare „ Algoritmul de conversie utilizat".

Transferăm modulul de manager de schimb în modulul de configurare BP 3 sau la procesare externă.

Cum se încarcă regulile modificate ale CD3 în baza de date?

În configurațiile care schimbă reguli pe CD2, acest lucru se face în setările nodului. Pentru regulile create în KD3, vom vedea acolo doar posibilitatea de a modifica regulile de înregistrare.

Regulile pregătite în KD3 pot fi instalate în configurație în trei moduri

  1. Eliminați configurația din suport și faceți modificări la modulul comun Manager de schimb prin format universal;
  2. În configurațiile care rulează în modul de compatibilitate cu platforma 8.3.10 și o versiune ulterioară, puteți patch modulul partajat folosind o extensie.
  3. Conectați o extensie care înlocuiește complet modulul general cu reguli.
  4. Conectați procesarea externă cu reguli la nod fără a elimina configurația din suport;

Cu prima opțiune, totul este clar, este descris în documentație, dezavantajul este că trebuie să eliminați configurația din suport. A doua opțiune - corectarea procedurii selectate cu o extensie nu va fi, de asemenea, dificilă pentru programatorul 1C - trebuie să comparați cele două procesări cu regulile standard și cu cele modificate, așa cum este descris mai sus în acest articol și să faceți o modificare a necesarului. procedură.

A treia opțiune este folosind o extensie cu reguli de schimb într-un format universal în prezent cel mai optim. Există un singur dezavantaj - este necesar să eliminați steagul " Mod sigur„la conectarea acestei extensii. Acest lucru limitează utilizarea acesteia în servicii cloud... Așteptăm o decizie de la 1C cu privire la procedura de înlocuire a regulilor de schimb în format universal în 1C fresh.

Concluzia este că trebuie să găsiți în configurație o secțiune de cod care este responsabilă pentru alegerea unui modul comun, în funcție de versiunea formatului de schimb, și să înlocuiți alegerea modulului cu modul propriu. Exemplu pentru BP 3.0.67:

//////// // Modulul de schimb de date generic suprascris și în loc de ("La preluarea versiunilor de format disponibile") Procedura ED_La preluarea versiunilor de format disponibile (versiuni de format) ED_ExchangeDataServer.La preluarea versiunilor de format disponibile (versiuni de format); EndProcedure //////// // Sincronizarea datelor planului de schimb prin format universal: modulul Manager # Dacă server sau client gros sau aplicație obișnuită sau conexiune externă, apoi și în loc de („Când primiți setări”) Procedură ED_Când primiți setări (Setări). DefaultName = GeneralConfigurations; Settings.ThisExchangePlanXDTO = Adevărat; Settings.WarningOnMismatchRuleVersions = False; Settings.ExchangeFormat = "http://v8.1c.ru/edi/edi_stnd/EnterpriseData"; Versiuni de format = potrivire nouă; ED_DataServer.La primirea versiunilor de format disponibile (versiuni de format); // ED Settings.ExchangeFormatVersions = FormatVersions; Settings.ExchangePlanUsedInServiceModel = Adevărat; Settings.Algorithms.WhenGettingExchangeSettingsVariants = Adevărat; Settings.Algorithms.OnGettingOptionDescriptionSettings = Adevărat; Settings.Algorithms.InteractiveOffsetSelection View = Adevărat; Settings.Algorithms.ConfigureInteractiveOffload = Adevărat; EndProcedure #EndIf //////// // Modulul generic în extensia ED_DataServer Procedura OnGetAvailableFormatVersions (FormatVersions) ExportFormatVersion.Insert ("1.2", ExchangeManagerViaUniversalFormat); Format Versions.Insert ("1.3", ED_ExchangeManagerViaUniversalFormat); Format Versions.Insert ("1.4", ED_ExchangeManagerViaUniversalFormat); Format Versions.Insert ("1.5", ED_ExchangeManagerViaUniversalFormat); Format Versions.Insert ("1.6", ED_ExchangeManagerViaUniversalFormat); EndProcedure //////// // Modul comun în extensia ED_ExchangeManagerThrough the UniversalFormat // Conversia BP3.0.44 (formatul 1.6) din 11/27/2018 11:23:58 // Îmbunătățire pentru BP 3.0.67. x de la 31,12 ......

Să luăm în considerare a 4-a opțiune, care nu este descrisă în documentație, deoarece nu există o astfel de posibilitate în BSP. Această opțiune este deja depreciat. Prelucrare externă cu reguli a fost folosit în primele versiuni cu un format de schimb universal. Acum 1C scapă treptat de această funcționalitate.

În modul întreprindere, în secțiunea de administrare, urmați linkul Data Sync - Setări de sincronizare a datelor, apasa butonul " Ton...„dacă setarea este una sau” Schimbare"dacă există mai multe setări. Accesați modul de editare formular prin meniu" " , Extindeți " grup", aici includem elementul de formă ascuns" "," Bine".
Pe " Informații de serviciu"alege" Calea către managerul de schimb„, substituim procesarea noastră cu regulile de acolo.

Conectarea procesării externe cu reguli la BP 3.0.52 și o versiune ulterioară

În BP 3.0.52 și mai mare din motive necunoscute prelucrare externă cu reguli nu este folosit. Interfața pentru conectarea procesării rămâne. Mulțumesc pentru că.

Puteți activa procesarea cu reguli folosind o extensie. Modulul comun trebuie corectat " Schimb de dateXDTOServer", funcție" Format VersionsExchange".

Procedura EDm_PoluchitVersiyuFormataObmena (VersiiFormata înseamnă UzelInformatsionnoyBazy) interogare = new interogare ( „SELECT DIVERSE | SinhronizatsiyaDannyhCherezUniversalnyyFormat.PutKMenedzheruObmena AS PutKMenedzheruObmena, | SinhronizatsiyaDannyhCherezUniversalnyyFormat.VersiyaFormataObmena AS VersiyaFormataObmena | DIN | PlanObmena.SinhronizatsiyaDannyhCherezUniversalnyyFormat SinhronizatsiyaDannyhCherezUniversalnyyFormat CUM | UNDE | SinhronizatsiyaDannyhCherezUniversalnyyFormat.PutKMenedzheruObmena<>"" "" "| Și sincronizarea datelorVia UniversalFormat.Ref = & Link "); Request.SetParameter (" Reference ", InformationBase Node); Fetch = Request.Run (). Select (); While Fetch.Next () Loop ProcessingName = Fetch.Path to the Manager Dacă Common Exchange Manager NU este () Atunci ProcessingData = New BinaryData (ProcessingName); ProcessingAddress = PutToTemporaryStore (ProcessingData); Dacă GeneralPurpose.Există protecție împotriva acțiunilor periculoase () Atunci ProcessingName = ExternalProcessing.Descriptions. EndIf; Enager =If; ExternalProcessing.Create (ProcessName); Format Versions.Insert (Selection.ExchangeFormatVersion, ExchangeManager); Sfârșitul buclei; EndProcedure & În loc de ("ExchangeFormatVersion") EDMNodeVersionNodeVersionValue Adăugat (InfoBase Node) Apoi ExchangePlaneName = InfoBaseNode.Metadata () .Name; ExchangeFormatVersions = DataExchangeServer.ExchangePlanSettingsValue (ExchangePlaneName, „ExchangeFormatVersions”); EDm_GetExchangeFormatVersion (ExchangeFormatVersions, InformationBase Node); OtherwiseDataExchangeRedefinable.WhenGettingAvailableFormatVersions (ExchangeFormatVersions); EndIf; Dacă ExchangeFormatVersions.Number () = 0, atunci CallExceptionStringFunctionsClientServer.SubstituteParametersVSString (NStr ("ru =" Versiunile în format Exchange nu sunt specificate. | Numele planului Exchange:% 1 | Procedură: GetExchangeFormatVersions (<ВерсииФорматаОбмена>) ""), DatabaseNode.Metadata (). Nume); EndIf; Rezultat = Potrivire nouă; Pentru fiecare versiune FromVersionFormatExchange Cycle Result.Insert (AbbrLP (Version.Key), Version.Value); Sfârșitul ciclului; Rezultat rambursare; EndFunction

Cum se depanează regulile în procesarea externă

    În configuratorul " Service -> Parametri -> Start 1C: Enterprise -> Start Parameter", specificați parametrul" ".

  • Mai jos este codul pentru extensie, pentru UT 11.4, KA 2.4, ERP 2.4. Codul pentru BP 3.0 este dat mai sus. Modulul de gestionare a planului de schimb Sincronizarea datelor prin format universal.

Cod de extensie ED Debug

& În loc de ("GetExchangeFormatVersions") Procedura ED_GetExchangeFormatVersions (FormatVersions) DataExchangeUT.AvailableUniversalFormatVersions (FormatVersions); Solicitare = Interogare nouă ("SELECTARE DIFERENT | Sincronizare date prin UniversalFormat.PathTo Exchange Manager, | Sincronizare date prin UniversalFormat.ExchangeFormatVersion | FROM | Plan de schimb.<>"" "" "); Fetch = Query.Execute (). Selectați (); While Fetch.Next () Loop ProcessingName = Fetch.PathToExchange Manager; DACĂ NU SharedPurposeClientServer.Debug Mode () Atunci // EDProcessingData = New BinaryData) ( NameProcessingData; AdresObrabotki = PomestitVoVremennoeHranilische (DannyeObrabotki) Dacă ObschegoNaznacheniya.EstZaschitaOtOpasnyhDeystvy () Apoi ImyaObrabotki = VneshnieObrabotki.Podklyuchit (AdresObrabotki, ObschegoNaznacheniya.OpisanieZaschityBezPreduprezhdeny ()); în caz contrar ImyaObrabotki = VneshnieObrabotki.Podklyuchit (AdresObrabotki); ENDIF; ENDIF; MenedzherObmena VneshnieObrabotki.Sozdat = ( ImyaObrabotki) VersiiFormata.Vstavit (Vyborka.VersiyaFormataObmena, MenedzherObmena) KonetsTsikla; KonetsProtsedury & loc ( "DostupnyeVersiiFormataObmena") Procedura ED_DostupnyeVersiiFormataObmena (VersiiFormata) ObmenDannymiUT.DostupnyeVersiiUniversalnogoFormata (VersiiFormata) = Solicitare nouă interogare ( „SELECT DIVERSE | SinhronizatsiyaDannyhCherezUniversalnyyFormat.PutKMenedzher la schimb, | Sincronizarea datelorViaUniversalFormat.ExchangeFormatVersion | FROM | Plan de schimb. Sincronizarea datelor prin UniversalFormat AS Sincronizarea datelor prin UniversalFormat | Sincronizarea datelor prin format universal. Calea către Managerul de schimb<>"" "" "); Fetch = Query.Execute (). Selectați (); While Fetch.Next () Loop ProcessingName = Fetch.PathToExchange Manager; DACĂ NU SharedPurposeClientServer.Debug Mode () Atunci // EDProcessingData = New BinaryData) ( NameProcessingData; AdresObrabotki = PomestitVoVremennoeHranilische (DannyeObrabotki) Dacă ObschegoNaznacheniya.EstZaschitaOtOpasnyhDeystvy () Apoi ImyaObrabotki = VneshnieObrabotki.Podklyuchit (AdresObrabotki, ObschegoNaznacheniya.OpisanieZaschityBezPreduprezhdeny ()); în caz contrar ImyaObrabotki = VneshnieObrabotki.Podklyuchit (AdresObrabotki); ENDIF; ENDIF; MenedzherObmena VneshnieObrabotki.Sozdat = ( ProcessingName); Format Versions.Insert (Fetch.ExchangeFormatVersion, ExchangeManager); EndLoop; EndProcedure

Depanarea este cel mai ușor de făcut baza de fișiere... Am stabilit un punct de întrerupere în procesare cu reguli. Pentru a găsi procedura necesară, utilizați KD3. Găsim PKO, POD sau algoritm, uite" Numele handlerului" sau " Numele algoritmului", căutăm această procedură în modulul de reguli. După editarea modulului, nu uitați să copiați procedura în clipboard și să apăsați butonul" "din CD3. Atenție, aceeași conversie trebuie să fie deschisă.

Asta este tot pentru acum. Aceste informații sunt deja suficiente pentru ca un programator 1C să stăpânească independent KD3 și să-l mențină în stare de funcționare mod modern sincronizare între bazele 1C. Dacă sunt pete albe, întrebați, articolul va fi suplimentat și puteți reveni la el dacă ați uitat ceva.

Link-uri binecunoscute către documentația despre KD3:
  • 1C-Centrul de instruire nr. 3, „Conversie date 3.0” - http://www.1c-uc3.ru/konvert30.html
Puteți extinde domeniul de aplicare al KD3 utilizând aceste publicații:
  • - configurațiile versiunilor anterioare pe platforma 8.2 și mai jos devin compatibile cu ED.
Economisiți timp și folosiți reguli gata făcute pentru ultimele versiuni configurațiile pot fi găsite aici
  • - funcționalitate extinsă, remedierea erorilor.

Întrebarea principală care apare pentru un specialist atunci când începe lucrul în configurația "1C: Conversie date" versiunea 3.0 - care este diferența? Care sunt diferențele dintre versiunea 3.0 și versiunea 2.1.
Diferențele pot fi împărțite condiționat în două grupuri:

  • Funcţional
  • Arhitectural

Diferențele arhitecturale

În versiunea 2.1, a fost realizată dezvoltarea regulilor de schimb, separate pentru fiecare configurație individuală. Apoi aceste reguli au fost folosite în prelucrare universală schimb în format XML sau pentru schimbul de reguli între configurații. Ieșirea a primit un fișier cu Extensie XML, care conținea, pe lângă date, handlerele executate pe partea destinatarului. Versiunea 3.0 folosește un singur format universal EnterpriseData prin care se realizează transmiterea a trei tipuri principale de date:
  • Informații de referință
  • Documentele
  • Solduri de la data în cantitate sau sumă
Descrierea formatului EnterpriseData versiunea 1.0 poate fi găsită. Această versiune a formatului include o descriere a 94 de tipuri de entități de afaceri din diferite domenii de afaceri. De asemenea, rețineți că formatul este extensibil.

Diferențele funcționale

Pentru a putea folosi formatul EnterpriseData trebuie să utilizați versiunea Bibliotecii de subsisteme standard nu mai mică de 2.2.5, altfel doar versiunea 2.1.
Dacă trebuie să dezvoltați reguli pentru un transfer unic de date (sau recuperare) sau să transferați resturile... Atunci! Este mai rapid și mai profitabil să utilizați conversia versiunii 2.1 pentru dezvoltare
Dar dacă doriți un schimb zilnic de încredere între soluții pe platforma 1C: Enterprise (cu condiția ca versiunea BSP să se potrivească), atunci alegerea dvs. este „1C: Conversie date” versiunea 3.0.


Desigur! Mulți vor spune că până în prezent, întreprinderile folosesc schimbul în vechiul format, iar gigaocteții de date zboară la fiecare jumătate de secundă și totul funcționează și mai departe... Cu siguranță funcționează! La fel ca multe organizații, acestea folosesc platforma 1C versiunea 7.7 pentru contabilitate. Este important să înțelegem că vorbim despre un nou format și că soluțiile standard utilizează formatul „EnterpriseData”, ceea ce înseamnă că trebuie să vă puteți dezvolta în versiunea 3.0 chiar acum.

Stimați colegi, sunt două noutăți pe CD 3.0

1. Acceptat deja peste 500 de aplicații pentru curs. Este clar că nu toate comenzile vor fi plătite, dar acest lucru este deja mult.

Prin urmare, vom încetini setul către grup și conditiile preferentiale vor fi eliminate intr-o zi.

2. Pentru cei care doresc să înceapă să lucreze cu CD 3.0, dar din anumite motive nu intră în grup - îl răspândim.

Trei videoclipuri pentru începători pentru a lucra cu CD 3.0

Judecând după discuțiile despre ceață, unele dintre poreclele 1C „se uită în interior” CD 3.0 și ies de acolo, făcând semn „mind me” :)

De fapt, totul este mult mai ortodox. Pur și simplu pare complicat.

Neobișnuit - da. Dar nu dificil.

Aceasta este ceea ce vrem să arătăm astăzi.

În videoclipurile de astăzi - dezvoltarea regulilor de schimb „de la zero” pentru configurații auto-scrise (atipice).

Configurarea schimbului de date între cele standard va fi complet similară, cu excepția faptului că vor exista mai multe obiecte pentru schimb (vor fi necesare mai multe setări).

Și o vom face în 20 de minute :)

Mai mult, jumătate din timp sunt operațiuni pregătitoare care se efectuează o dată înainte de înființarea bursei.

Dacă unul dintre colegii tăi spune: „Da, 1C s-a îngrămădit acolo în CD 3, vei înțelege iadul ...” - arată-i acest videoclip.

Dacă cineva spune: „Ok, voi configura transferul în câteva zile” și se duce să stârnească OLE / .txt - arată-i acest videoclip.

Să le fie rușine bătrânilor :)))

Deci, rezolvăm o sarcină simplă - transferul elementelor directorului, dar vom face totul bine:

  • Schimbul va funcționa printr-un format universal (încărcare în xdto)
  • Doar obiectele modificate vor fi descărcate - vor fi folosite planurile de schimb și funcționalitatea standard pentru înregistrarea modificărilor

Astfel, veți înțelege cum să efectuați transferuri pe CD 3.0 de la zero.

Aceste tutoriale video sunt relevante pentru BSP versiunea 2.3.2(pentru orice ansamblu mai vechi de 2.3.2.43).

Dacă utilizați o versiune mai veche a BSP 0, faceți o „corecție” pentru interfața modificată și funcționalitatea extinsă. Pentru a face acest lucru, repetați singur exemplul din videoclip.

În lecție, facem performanță actiuni obligatorii pentru a crea un schimb:

  • Descărcarea structurii metadatelor din configurațiile sursă și destinație
  • Încărcarea metadatelor pe CD 3.0
  • Descarca Pachete XDTO EnterpriseData și ExchangeMessage în CD 3.0
  • Creare două conversii- pentru configuratii sursa si receptor

Dacă ați făcut deja acest lucru, puteți trece în siguranță la următorul videoclip - acolo va începe magia de transfer :)

În videoclip vom arăta:

  • Cum personalizați conformitatea obiecte și proprietăți între configurație și format generic
  • Cum codul regulilor de migrare v module comune config sursa
  • Cum să încărcați date în format universal

Apropo, ca parte a cursului, arătăm cum să efectuați aceleași acțiuni fără a modifica configurația ( fără retragere din sprijin).

De asemenea, vom demonstra cum să creăm regulile necesare pentru schimbul de date:

  • Reguli de conversie a obiectelor (OCP)
  • Reguli de conversie a proprietăților (PKS)
  • Reguli de conversie a datelor predefinite (PKPD)
  • Reguli de prelucrare a datelor (POD)

Vom arăta și noi cum să înțelegi rapid ce proprietăți de format sunt necesare.

Videoclipul # 3: Încărcarea datelor dintr-un format universal

În lecție, creați reguli de încărcare a datelor pentru configurația țintă.

La fel ca și în timpul descărcării, va trebui să configurați PKO, PKS, POD.

Ca rezultat, am primit un schimb care funcționează pe planuri de schimb:

Și câteva cuvinte despre recrutarea în grup

Există multe aplicații.

De obicei, încetăm să mai recrutăm în grup.

Dar aici totul este mai simplu - va rămâne oportunitatea de a cumpăra cursul, dar vom crește prețul la 9700 mâine (miercuri, 25 mai) ...

Reducerile și beneficiile vor fi, de asemenea, oprite mâine.

Singura excepție o fac cumpărătorii cursului pe CD 2.0: pentru ei prețul de 6900 va mai fi valabil pentru câteva zile.

Conversia datelor 2.0 și 2.1 - configurație tehnologică a companiei 1C, implementată pe versiunile platformei de la 8.1 la 8.3.

Sarcina principală a instrumentului este de a scrie reguli de schimb între soluțiile aplicate 1C 8 și 7. Versiunea actuală de conversie a datelor de astăzi este 3.0.

Conversia datelor este o configurație foarte utilă, cu ajutorul acesteia puteți rezolva nu numai problema transferului de informații de la unul baza de informatii la altul, dar și, de exemplu, transformarea informațiilor într-o bază de date.

Configurația este foarte convenabilă de utilizat atunci când.

Conversia datelor va fi utilă oricărui programator: deținerea abilităților de a crea reguli de schimb este un plus serios pentru abilitățile profesionale.

Pentru a învăța cum să lucrați cu configurația, rezolvarea problemelor practice este cea mai potrivită. Încercați să veniți cu sarcini pentru dvs., de exemplu: transferați orice informație dintr-o bază de date în alta, transformați un document de vânzare într-un document de chitanță, „conduceți” soldurile contabile curente într-un document de „înregistrare a soldului” și alte sarcini.

Va fi foarte util să înțelegeți regulile de schimb „tipice” 1C 8.3, acolo puteți găsi adesea exemple interesante implementarea sarcinilor.

Pentru a înțelege elementele de bază, veți avea nevoie de materiale, le vom lua în considerare mai jos.

Instrucțiuni de conversie video

Bazele configurării schimbului de date în 1C utilizând configurația „1C Data Conversion”, de exemplu, consultați videoclipul:

Materiale, manuale pentru studiul 1C Data Conversion 2.0

Nu sunt prea multe materiale și documentație pe net, am încercat să adun cele mai importante și mai interesante materiale:

0.În primul rând, vă sfătuiesc cursul video gratuit al lui Ilya Leontyev, acesta este disponibil la legătură.

1. V-aș sfătui să folosiți mai întâi de toate ajutorul încorporat în configurație. Este foarte bine scris și bine implementat din punct de vedere tehnic:

2. A doua cea mai importantă sursă de informare este site-ul http://www.mykod.info/ (site-ul a fost închis), specializat în conversia datelor. Acolo poți descărca un numar mare de materiale pentru transformare.

3. Separat, aș dori să evidențiez manualul ((de Olga Kuznetsova).