Computer finestre Internet

1c modificare le regole di scambio attraverso un formato universale. 1C offre il formato EnterpriseData per lo scambio di dati aziendali. Che cos'è il formato EnterpriseData?

Lo scopo di questo articolo è rispondere alle prime domande su KD3 e, utilizzando un semplice esempio, mostrare come modificare le regole standard. Le informazioni sono utili per i principianti e per coloro che hanno già iniziato a padroneggiare e hanno nuove domande.

Abbreviazioni accettate in questa pubblicazione

KD2- Conversione dei dati di configurazione, revisione 2.0.
KD3- configurazione Conversione dati, revisione 3.0, configurazione 3.0.5.3.
ED- formato di scambio universale EnterpriseData.

Risposte alle domande dopo una conoscenza superficiale con KD3. Se sai perché hai bisogno di KD3, puoi saltare questo paragrafo;)

Domande e risposte

  • KD3 è una nuova versione di KD2? No! Questo è un altro strumento che risolve problemi simili a KD2. Ogni strumento ha la sua applicazione.
  • KD3 è migliore di KD2? Non possono essere confrontati, dal momento che sono strumenti diversi e ognuno ha i suoi pro e contro.
  • Per modificare le regole per lo scambio di KD3, è necessario rimuovere la configurazione dal supporto? No NON è necessario ritirarsi dal supporto! Nelle configurazioni tipiche, è possibile connettere in modo standard l'elaborazione esterna con le regole e nelle configurazioni che supportano la piattaforma 8.3.10 e successive, è possibile modificare le regole utilizzando l'estensione.
  • È necessario trasferire i dati dalle configurazioni interne. Per motivi di studio, puoi usare KD3? Se stai facendo questa domanda, molto probabilmente non puoi. Per KD3, la configurazione deve includere BSP 2.3 e versioni successive con sincronizzazione tramite un formato universale. KD2 ti soddisferà al 100%, KD3 è discutibile.
  • È possibile utilizzare KD3 per configurazioni modificate tipiche? Si, puoi. Se i tuoi dati atipici possono essere passati utilizzando gli oggetti di scena ED o AdditionalInfo, va bene. Altrimenti, c'è un'opzione per cambiare il formato di scambio (schema XML). In questo caso, le capacità di CD3 saranno quasi uguali a CD2, ma il vantaggio principale di CD3 andrà perso: la versatilità del formato di scambio.
  • Le configurazioni che supportano ED possono essere scambiate tra loro? Sì! Ma per lo scambio di BP 3.0 - BP 3.0, quando si crea la sincronizzazione, non è possibile selezionare BP 3.0. Va bene, scegli "Altro programma". Se hai bisogno di uno scambio una tantum, è sufficiente utilizzare l'elaborazione "Carica / Carica dati aziendali" nel menu Tutte le funzioni.
  • Dopo aver aggiornato la configurazione, è necessario scaricare le ultime regole dal kit di distribuzione? No! Le regole sono contenute nel modulo di configurazione. Per scambiare con altri database 1C, non è necessario caricare le regole di un altro database. Come mai? Dettagli in questo articolo.
  • Dopo aver aggiornato un database, è necessario aggiornare l'altro database che partecipa allo scambio? No! Non è necessario aggiornare in modo sincrono tutti i database che partecipano allo scambio. Questo è uno dei vantaggi di KD3.
  • Le nostre configurazioni sono state notevolmente migliorate, ci sono nuovi tipi di documenti e directory, KD3 può trasferirli? È possibile che non sia in grado di farlo senza modificare il formato. Questo è uno degli "svantaggi" di KD3 rispetto a KD2.

Perché allora abbiamo bisogno di KD3? Vantaggi e svantaggi

Vantaggi di KD3

Consideriamo il vantaggio principale di KD3 usando l'esempio di un'attività incontrata di frequente. Esiste una configurazione UT 11.3, che non viene aggiornata per qualche motivo. È necessario organizzare uno scambio con BP 3.0, che viene costantemente aggiornato alla versione corrente.

Nessun problema.

  • Il formato di scambio universale, utilizzato in KD3, è progettato per risolvere tali problemi.
  • Le regole di scambio in UT sono create non per lo scambio con BP, ma per lo scambio con il formato universale EnterpriseData.
  • Se operiamo in termini di KD2, allora UT scambia con la configurazione ED, che non cambia. BP 3.0 viene anche scambiato con ED.

Ogni configurazione ha le sue regole per lo scambio con ED. Pertanto, UT carica sempre i dati nello stesso formato. La configurazione di BP 3.0, non importa quanto sia nuova, dovrebbe essere in grado di ricevere dati da questo formato.

Si scopre che UT non ha bisogno di preoccuparsi del fatto che la BP cambierà alcuni dettagli. Il compito è semplice: caricare su ED e la configurazione dell'alimentatore dovrebbe essere in grado di accettare dati da questo formato.

  • A causa del fatto che la sorgente carica sempre la configurazione in un formato, qualsiasi destinatario della configurazione può caricare dati da questo formato universale.
    Quelli. per una combinazione arbitraria di scambi UT - BP, UT - KA, UT - ERP, KA-BP, ERP - BP. non c'è bisogno di scrivere regole individuali. In KD3, le regole sono universali. Qualsiasi configurazione che supporta lo scambio di formato universale può scambiare con qualsiasi configurazione che supporta il formato ED.

Il debug di algoritmi e regole è disponibile nella configurazione stessa, poiché tutte le regole sono codice modulo comune o elaborazione esterna. Puoi fare a meno di KD3 per correggere rapidamente l'errore.

Contro di KD2

Le regole di scambio sono individuali per ogni coppia di configurazioni. Tutte le suddette combinazioni di scambio tra diversi tipi di configurazioni e diverse versioni di configurazioni richiedono regole di scambio proprie. Pertanto, per risolvere il problema sopra menzionato dello scambio di UT 11.3 e BP 3.0, sarà necessario eseguire il debug e perfezionare le regole di scambio quasi dopo ogni aggiornamento di BP 3.0.

Il debug di algoritmi e regole è difficile per un programmatore alle prime armi o per qualcuno che affronta raramente questo compito. Le regole sono memorizzate in un file xml. Non è disponibile una soluzione rapida. È necessario caricare le regole in KD2, correggerle e scaricarle nuovamente.

Contro di KD3

Il formato universale impone restrizioni sui tipi di documenti e directory. È progettato per configurazioni tipiche. Se hai un requisito o un tipo di documento atipico, potrebbe essere difficile scambiarlo.

Per la sincronizzazione in formato ED, la configurazione deve supportare questi meccanismi. Tutto questo è in BSP 2.3 e versioni successive. Questo non è davvero un aspetto negativo, ma piuttosto una caratteristica.

Il vantaggio principale svanisce un po' a causa del lasso di tempo limitato per supportare il formato. Questo è già stato avvertito dagli utenti di UT 11.1, UT 11.2, che scambiano con BP 3.0. Gli orari del supporto sono elencati qui. Dice che il periodo minimo di supporto del formato garantito è di un anno, infatti, circa 3 anni. Pertanto, se imposti la sincronizzazione oggi, per almeno un anno non puoi aggiornare il database UT 11, quindi aggiornare la configurazione o semplicemente aggiungere un nuovo formato, apportare una piccola modifica nel BSP e nelle regole, se necessario. Come farlo? Sarà menzionato più avanti in questo articolo.

Vantaggi di KD2

Le possibilità di KD2 sono infinite. Puoi creare regole di scambio per qualsiasi configurazione su qualsiasi piattaforma. Dal 1C 7.7 all'ultimo 8.3. Non è richiesto nulla dalla configurazione, il BSP è facoltativo. Le regole possono essere create in Modalità automatica e raffinato.

In relazione ai pro e contro di cui sopra, si consiglia di utilizzare KD3 per le configurazioni tipiche. KD2 può essere utilizzato per qualsiasi configurazione, ma visti i suoi svantaggi, non dimenticare che a volte è più opportuno utilizzare KD3.

Spero che tu capisca perché è necessario KD3, continuiamo nel merito.

Abbreviazioni accettate ulteriormente

BSP- Libreria di sottosistemi standard.
SOTTO- disciplina del trattamento dei dati.
PKO- regola di conversione degli oggetti.
PKPD- regola per la conversione di dati predefiniti.
PKS- regola di conversione della proprietà.

Considera un esempio: è necessario modificare le regole standard per lo scambio di BP 3.0 e UT 11.3

Su uno sfondo giallo, ci sono i passaggi delle istruzioni che si aprono in KD3. La sequenza dei passaggi proposta in questo articolo è diversa, in modo da non confondersi e completare immediatamente in modo logico l'azione iniziata.

Come posso modificare le regole ED?
  1. Modifica il modulo con regole di scambio direttamente nella configurazione. Non stiamo ancora considerando questa opzione, perché per capire cosa e dove bisogna cambiare, è necessario farlo almeno una volta in KD3. In questo caso, sarà più facile in futuro risolvere rapidamente i problemi, eseguire il debug nel modulo e trasferirli a KD3 se necessario.
  2. Usa KD3.
    Come si fa in KD2? Scarichiamo i metadati di entrambe le configurazioni e li carichiamo in KD2.
    Passo 1. Per KD3 facciamo lo stesso - in ogni configurazione in modalità enterprise elaborando \ tmplts \ 1c \ Conversion \ 3_0_5_3 \ MD83Exp.epf caricare i metadati di configurazione,
    ad esempio, nella cartella “ D: \ Regole BP3 \ BP 3.0.54.15 \", Nome del file " MD.xml».

Non è chiaro a quale scopo vengano nascoste le impostazioni di questo trattamento, di conseguenza, per impostazione predefinita, i dati sui registri informativi non vengono scaricati. Eliminiamo questo difetto.
Nella procedura ChangeProcessingMode() del form principale, commentare la riga

// Elements.Settings.Visibility = False;

Salviamo l'elaborazione, la apriamo in modalità aziendale, mettiamo il flag su "Scarica registri informazioni", scarichiamo.

Passaggio 3. Carica il file precedentemente creato “ MD.xml"In KD3, flag di sezione" V nuova versione configurazione».

Perché in KD3, la "configurazione intermedia" (ED) viene utilizzata per lo scambio, carichiamo anche i suoi "metadati", che sono Schema XML, un file con estensione "xsd". Passo 2. Puoi prenderlo dalla configurazione UT 11 o BP 3.0. Loro sono la stessa cosa. Apri la configurazione, nella barra di ricerca, inserisci " accedere", Vediamo nell'albero Generale - Pacchetti XDTO alcuni pacchetti come questo: EnterpriseData_1_3_8, EnterpriseData_1_4_4 e simili.. Queste sono versioni del formato 1.3 e 1.4, rispettivamente, e 1.2, 1.1, 1.0, se presenti. Bottone giusto mouse sulla confezione, in menù contestuale scegliere "".

Passaggio 4. Nella sezione KD3, seleziona i file precedentemente caricati con l'estensione "xsd". Devi selezionare un file! Scelta multipla in combinazione con ExchangeMessage non è necessario! Questo è stato suggerito nelle vecchie istruzioni di KD3 versione precedente... Nell'ultimo CD3 questo non è richiesto.

Dopo aver caricato il formato nella sezione Formato dati - Formato oggetto ad albero, seleziona la versione del formato. Se ci sono documenti e directory lì, allora hai caricato file corretto... In caso contrario, ricominciare con un nuovo CD3 vuoto e caricare prima il formato e controllare l'albero.

Fase 2. Dopo aver caricato i metadati nel CD3, si procede al caricamento delle regole di scambio standard.
Come si fa in KD2? Le regole vengono caricate nella conversione.
È quasi lo stesso in KD3. Scarichiamo le regole da quella standard, creiamo una conversione e quindi carichiamo le regole in essa.

Scaricare regole tipiche dalla configurazione per il caricamento in CD3

Le configurazioni vengono scambiate sulla versione massima comune del formato di scambio. Ad esempio, una configurazione ha un formato massimo di 1.5, l'altra 1.6, il che significa che si scambieranno tra loro in un formato 1.5. Pertanto, è sufficiente scaricare il formato 1.5 da entrambe le configurazioni e caricarlo nelle regole.

Apriamo la configurazione di BP 3.0 o UT 11.3 nella modalità configuratore, nella barra di ricerca è possibile inserire " uomini uni”, Aprire il modulo generale. Se questo è BP 3.0, aprilo. Nel modulo aperto, vai al menu File - Salva una copia, salva il file con un nome arbitrario, ad esempio " D: \ Regole BP3 \ BP 3.0.54.15 \ Modulo comune ExchangeManager Via UniversalFormat_Module».
Configurazione aperta BP 3.0 o UT 11.3 in modalità aziendale, elaborazione aperta \ tmplts \ 1c \ Conversion \ 3_0_5_3 \ Carica regole di sincronizzazione.epf

Mancanza di elaborazione tipica:

  • spesso fallisce;
  • scarica le regole dall'elaborazione esterna collegata al nodo, ma abbiamo bisogno di regole tipiche;
  • non funziona in BP 3.0.53 e versioni successive.

Modifica del modulo del modulo di elaborazione principale. Apportare modifiche alle procedure OnCreateAtServer.

& AtServer Procedura OnCreateAtServer (Annulla, StandardProcessing) // Selezione dell'elenco delle versioni del formato. Versioni formato = Nuova corrispondenza; Data ExchangeRedefinable.WhenGettingAvailableFormatVersions (FormatVersions); Per ogni piano di scambio da DataExchangeRepUsedExchangePlansBSP () Ciclo Se DataExchangeRepeat.ThisExchangePlanXDTO (ExchangePlan) Allora versioni di formato ExchangePlan = Nuova corrispondenza; BSP243 Version = GeneralPurposeClientServer.CompareVersions (StandardSubsystemsServer.Library Version (), "2.4.3.1")> = 0; ModuleDataServer = Scopo generale CommonModule ("Data ExchangeServer"); Se la versione BSP243 allora ExchangePlaneFormatVersions = DataExchange ModuleServer.ExchangePlanSettingsValue (ExchangePlan, "ExchangeFormatVersions "); Altrimenti ExchangePlans [ExchangePlan] .GetExchangeFormatVersions (ExchangePlanFormatVersions); Finisci se; Per ogni ExchangePlaneVersion Da ExchangePlanFormatVersion CycleManager Module = FormatVersions.Get (ExchangePlaneVersion.Key); Se unità manager = non definita o unità manager<>ExchangePlaneVersion.Value Quindi FormatVersions.Insert (ExchangePlaneVersion.Key, ExchangePlaneVersion.Value); Finisci se; Fine del ciclo; Finisci se; Fine del ciclo; Per EachFormatVersion FROMFormatVersion.Loop Items.FormatVersionNumber.SelectionList.Add (FormatVersion.Key); Fine del ciclo; FormatVersionStoreAddress = PutToTemporaryStore (versioni formato, UniqueIdentifier); Fine della procedura

  • Selezioniamo "Formatta numero di versione", ad esempio " 1.3 »,
  • "Exchange directory": crea una cartella, ad esempio ""
  • Premi il bottone " Scaricare».

Ripetiamo questi passaggi per altre versioni del formato e li salviamo nelle cartelle corrispondenti "1.4", "1.5", ecc. Per BP 3.0, è sufficiente scaricare tutti i formati da 1.3 e versioni successive. Per altre configurazioni da 1.2 in su.

Le regole sono state scaricate, ora devi caricarle in KD3. In KD2, le regole vengono caricate contemporaneamente alla creazione della conversione. In CD3, è necessario creare una conversione e caricarvi le regole.
Nella sezione KD3 Conversioni - Conversioni - Crea... ... Scelta di una configurazione. Per comodità, puoi cambiare il nome della configurazione passando alla modalità di modifica dell'elemento. Ad esempio, invece di ContabilitàAziende indicare " PA 3.0.54.15". oggetti di scena Nome non c'è bisogno di cambiare! Nome le conversioni possono essere specificate allo stesso modo, ad esempio " PA 3.0.54.15". Nella sezione tabellare, seleziona le versioni supportate del formato. Le versioni del formato sono quelle che abbiamo scaricato dal database sopra. Salviamo la conversione.

Vai alla sezione Conversione - Caricamento delle regole di sincronizzazione dai file.
:

    Luogo di caricamento: " In conversione esistente»

    Directory di scambio: " D: \ Regole BP3 \ BP 3.0.54.15 \ 1.3»

  • File con il modulo di scambio: " D: \ Regole BP3 \ BP 3.0.54.15 \ Modulo comune Exchange Manager Via UniversalFormat13_ Module.txt»
  • Conversione: " PA 3.0.54.15»

Quando si caricano le regole di sincronizzazione dai file per UT 11.3, viene visualizzato un errore " Campo oggetto non rilevato". Il motivo è che TekPKO.UseForReceive = False CD3 richiede informazioni sull'opzione di identificazione al momento della ricezione. Se questo non è nel file delle regole, si verifica un errore. Correggiamo questo malinteso. O rimuoviamo questo modulo dal supporto o utilizziamo il estensione.

// La forma principale di elaborazione LoadingSynchronizationRulesFromFiles // Prima che vengano apportate modifiche: // La procedura carica le regole per la conversione degli oggetti & Sul server Procedura LoadPKO () ... FillProperty Values ​​​​(TekPKO, Attribute Structure); // Opzione di identificazione - logica speciale. TekPKO.ObjectIdentification Option = Enumerazioni.Opzioni di identificazione oggetto [AttributesStructure.Identification Option]; ElseIf XMLReader.NodeType = XMLNodeType.EndItem Then // Scrive il POC caricato. ... // Le modifiche sono contrassegnate con "// ED" // La procedura carica le regole per la conversione degli oggetti & Sul server Procedura LoadPKO () ... FillProperty Values ​​​​(TekPKO, Attributes Structure); // Opzione di identificazione - logica speciale. If TekPKO.UseFor Obtaining Then // ED TekPKO.Identification Option = Enumerations.Object Identification Options [Attributes Structure.Identifying Option]; Finisci se; ElseIf XMLReader.NodeType = XMLNodeType.EndItem Then // Scrive il POC caricato. ...

Premi il bottone " Scarica». « I gestori sono destinati a una conversione diversa: BP 3.0.44 (formato 1.4). Continua il download?"Clic" ».
Senza chiudere il modulo, seleziona un altro " Directory di scambio"E premi il pulsante" ". Ripetiamo più volte il caricamento delle regole per ogni formato nella conversione corrente.
Dopo aver caricato con successo, vai alla sezione " Conversione "-" Configurazione delle regole di conversione", Apri la nostra conversione dal modulo elenco.
Se vediamo POD, ecc., il caricamento nel CD3 è andato a buon fine.

Verifica della correttezza delle regole di carico

Questa è un'operazione facoltativa! Se utilizzerai la stessa versione del formato nelle regole, non è necessario ottenere l'identità del testo del modulo.

  • Aprire il configuratore BP, creare una nuova elaborazione esterna, ad esempio Nome " Sincronizzazione di EDBP", Sinonimo di" Sincronizzazione ED BP 3.0».
  • In KD3 nella forma " Impostazione delle regole di scambio"Premi il pulsante" "e incolla questo codice dagli appunti nella nostra nuova elaborazione.
  • Nel configuratore BP, controlliamo il modulo per errori di sintassi. Salviamo l'elaborazione.
  • creare un'altra elaborazione vuota nel BP, ad esempio, Nome " Sincronizzazione EDB tipica", Sinonimo di" Sincronizzazione ED BP 3.0 tipica". Copia il testo del modulo di alimentazione generale Exchange Manager tramite Universal Format13 nel modulo di elaborazione e salvarlo.

Confrontiamo entrambi i trattamenti. Menù File - Confronta file.

Se un modulo standard contiene procedure che sono assenti nelle nostre regole, significa che non hai caricato le regole per la conversione per tutti i formati di dati. Se necessario carica le regole nel formato mancante nella conversione e ripeti il ​​confronto delle nostre regole con quelle standard. Quando abbiamo raggiunto l'identità puoi tranquillamente procedere alla finalizzazione delle regole... Non è necessario ottenere l'identità completa se si conosce quale dei formati di scambio non verrà utilizzato per la sincronizzazione.

In modo simile, creiamo una conversione per UT 11.3 in KD3.

BP 3.0.54.15

  • Macchiato caricamento errato PKO" Reference_Users". Deve essere corretto. Dovrebbe.
  • In PKO" Documento_Inventario_Spedizione del prodotto"per PKS" Persona responsabile"non specificato PQS. Apri, riseleziona la proprietà di configurazione e la proprietà del formato per inserire il loro tipo, dopodiché la selezione nel" Regola di conversione della proprietà". Selezionare" Directory_Persone_Invia".

Considera un esempio di revisione

Lo scopo principale dell'esempio è mostrare le possibilità di miglioramento per il trasferimento di dati aggiuntivi che non rientrano nel formato di scambio.

Devi trasferire gli oggetti di scena " TipoNomenclatura"reference book" Nomenclatura ", tipo di variabile" Directory.VisteNomenclature". Questo tipo di libro di riferimento non è supportato dalle regole KD3 standard e non è supportato dalla versione in formato ED inferiore alla 1.6.

Ci sono diverse opzioni per risolvere questo problema.

  • Modifica del pacchetto XDTO, aggiungendo l'oggetto "Tipi di riferimento.Nomenclatura" al formato. Di conseguenza, si perde il principale vantaggio del formato universale: cessa di essere universale. La modifica del pacchetto XDTO sarà richiesta in tutti i database che partecipano allo scambio.
  • Usa la proprietà del formato " Dettagli aggiuntivi", che si trova in molti oggetti. Questa opzione non verrà considerata in questo articolo a causa di una certa complessità. Nota che esiste un tale metodo.
  • oggetti di scena Informazioni addizionali.È presente nell'intestazione di tutti gli oggetti di formato. Qualsiasi tipo. Progettato per questi casi. Lo useremo come il modo più semplice.

Prima di procedere con il perfezionamento delle regole standard, creiamo due gruppi nel gruppo regole " Aggiunto da», « Cambiato". Questo è fatto in " Conversioni -".
Nuovi POD, PKO, Algoritmi, ecc. creeremo nel gruppo "Aggiunto", gli oggetti standard a cui apporteremo modifiche verranno trasferiti nel gruppo "Modificato". Ciò faciliterà il successivo mantenimento delle regole modificate.

Quindi iniziamo.

Modifiche alle regole in UT 11.3

In KD3 nella forma " UT 11.3.4.12 Impostazione delle regole di scambio"Sulla scheda Algoritmi creare un nuovo algoritmo

  • Nome dell'algoritmo "AdditionalInfoInsert"
  • Gruppo: "Aggiunto"

Parametri: "DataXDTO, Name, AdditionalValue"

Codice algoritmo

Se DataXDTO.Property ("AdditionalInfo") AND TypeValue (DataXDTO.AdditionalInfo) = Type ("Struttura") Then AdditionalData = DataXDTO.AdditionalInfo; Altrimenti AdditionalData = Nuova struttura; Finisci se; AdditionalData.Insert (Nome, ValoreAggiuntivo); DataXDTO.Insert ("AdditionalInfo", AdditionalData);

Salviamo l'algoritmo e andiamo al “ Regole di conversione degli oggetti»

Tramite pulsante " Trova"Cercando" Nomenclatura ", aperto PKO" Reference_Nomenclature_Send". Vai alla scheda " Quando si invia". Lì vediamo il campo "Nome gestore:" "". Puoi apportare modifiche direttamente lì.
Il codice più complesso che richiede il debug può essere scritto nella configurazione. Stiamo cercando nel modulo di scambio in UT 11.3 una procedura denominata " PQS_Reference_Nomenclature_Send_When SendingData"E finalizzandolo lì.
Per trasferire le modifiche da UT 11.3 a KD3, copiare l'intera procedura negli appunti, in KD3 nel modulo " Impostazione delle regole di scambio"Premi il bottone" ".

Per il nostro esempio, il codice è

If ValueFilled (DataIB.NomenclatureView) Then // ED AdditionalInfoInsert (DataXDTO, "NomenclatureView ", String (DataIB.NomenclatureView.UniqueIdentifier ())); AdditionalInfo Insert (XDTO Data, "NomenclatureNomenclatureName", General Purpose.ObjectAttributeValue (DataIB.NomenclatureView, "Name")); // AdditionalInfo Insert ... // aggiunge altri dettagli del servizio EndIf;

Dopo aver trasferito le modifiche a KD3, premere il pulsante " Salva il modulo di gestione degli scambi"e trasferire il codice dal buffer al modulo UT 11.3.

Modifiche alle regole in BP 3.0

Apportiamo modifiche al PKO" Reference_Nomenclature_Getting", sul" Quando si convertono i dati XDTO", nome della procedura" PKO_Reference_Nomenclature_Getting_WhenXDTODataConversion".

Codice aggiunto al modulo "PKO_Reference_Nomenclature_Getting_WhenXDTODataConversion"

If DataXDTO.Property ("AdditionalInfo") AND TypeValue (DataXDTO.AdditionalInfo) = Type ("Struttura") Then // ED AdditionalData = DataXDTO.AdditionalInfo; If AdditionalData.Property ("NomenclatureType ") ThenNomenclatureType = ExchangeDataXDTOServer.ObjectLinkPoUIDObjectXDTO (AdditionalData.NomenclatureView, Type (" DirectoryLink.NomenclatureType "), Exchange Components); IfNomenclature.GetObject () = Undefined AND AdditionalData.Property ("NomenclatureKindName ") Then // Crea un nuovoNomenclatureKindObject = Directories.NomenclatureTypes.CreateElement (); NomenclatureKindObject.SetNewLink (NomenclatureKind); Nomenclatura typeObject.Name = AdditionalData.Nomenclature typeName; // compila altri dettagli del servizio FillPropertyValues ​​(NomenclatureKindObject, AdditionalData); NomenclaturaKindObject.Write (); NomenclatureKind =NomenclatureKindObject.Ref; Finisci se; ReceivedData.NomenclatureType = NomenclatureType; Finisci se; Finisci se;

Il codice da solo non basta. È necessario nella scheda "Regole di conversione delle proprietà" aggiungere il PKS con la proprietà di configurazione "" e la casella di controllo " Algoritmo di conversione utilizzato".

Trasferiamo il modulo del gestore di scambio al modulo di configurazione BP 3 o all'elaborazione esterna.

Come caricare le regole modificate del CD3 nel database?

Nelle configurazioni che scambiano regole su CD2, questo viene fatto nelle impostazioni del nodo. Per le regole create in KD3, vedremo solo l'opportunità di modificare le regole di registrazione.

Le regole preparate in KD3 possono essere installate nella configurazione in tre modi

  1. Rimuovere la configurazione dal supporto e apportare modifiche al modulo comune Exchange Manager tramite Universal Format;
  2. Nelle configurazioni in esecuzione in modalità di compatibilità della piattaforma 8.3.10 e successive, è possibile applicare patch al modulo condiviso utilizzando un'estensione.
  3. Collegare un'estensione che sostituisce completamente il modulo generale con le regole.
  4. Connettere l'elaborazione esterna con regole al nodo senza rimuovere la configurazione dal supporto;

Con la prima opzione, tutto è chiaro, è descritto nella documentazione, lo svantaggio è che è necessario rimuovere la configurazione dal supporto. La seconda opzione - correggere la procedura selezionata con un'estensione non sarà difficile anche per il programmatore 1C - è necessario confrontare le due elaborazioni con regole standard e con quelle modificate come descritto sopra in questo articolo e apportare una modifica alla richiesta procedura.

La terza opzione è utilizzando un'estensione con regole di scambio in un formato universale attualmente il più ottimale. C'è solo un inconveniente: è necessario rimuovere la bandiera " Modalità sicura"quando si collega questa estensione. Ciò ne limita l'uso in servizi cloud... Stiamo aspettando una decisione da 1C sulla procedura per sostituire le regole di scambio in un formato universale in 1C fresco.

La linea di fondo è che è necessario trovare una sezione di codice nella configurazione responsabile della scelta di un modulo comune, a seconda della versione del formato di scambio, e sostituire la scelta del modulo con il proprio modulo. Esempio per BP 3.0.67:

//////// // Modulo di scambio dati generico sovrascritto e invece di ("Ottenere versioni di formato disponibili") Procedura ED_ Quando si ottengono versioni di formato disponibili (versioni di formato) ED_Exchange DataServer.Quando si ottengono versioni di formato disponibili (versioni di formato) ; EndProcedure //////// // Exchange Plan Data Synchronization tramite Universal Format: Manager Module # If Server O Thick Client Applicazione ordinaria o ExternalConnection Then & Invece di ("Alla ricezione delle impostazioni") Procedura ED_Alla ricezione delle impostazioni (Impostazioni) Impostazioni .DefaultName = GeneralConfigurations; Settings.ThisExchangePlanXDTO = True; Settings.WarningOnMismatchRuleVersions = Falso; Settings.ExchangeFormat = "http://v8.1c.ru/edi/edi_stnd/EnterpriseData"; Versioni formato = Nuova corrispondenza; ED_DataServer.Quando si ricevono versioni disponibili del formato (versioni del formato); // ED Settings.ExchangeFormatVersions = FormatVersions; Settings.ExchangePlanUsedInServiceModel = True; Settings.Algorithms.WhenGettingExchangeSettingsVarians = True; Settings.Algorithms.OnGettingOptionDescriptionSettings = True; Settings.Algorithms.InteractiveOffsetSelection View = True; Settings.Algorithms.ConfigureInteractiveOffload = True; EndProcedure #EndIf //////// // Modulo generico nell'estensione ED_DataServer Procedura OnGetAvailableFormatVersions (FormatVersions) ExportFormatVersion.Insert ("1.2", ExchangeManagerViaUniversalFormat); Versioni formato.Insert ("1.3", ED_ExchangeManagerViaUniversalFormat); Versioni formato.Insert ("1.4", ED_ExchangeManagerViaUniversalFormat); Versioni formato.Insert ("1.5", ED_ExchangeManagerViaUniversalFormat); Versioni formato.Insert ("1.6", ED_ExchangeManagerViaUniversalFormat); EndProcedure //////// // Modulo comune nell'estensione ED_ExchangeManagerThrough the UniversalFormat // Conversione di BP3.0.44 (formato 1.6) dal 27/11/2018 11:23:58 // Miglioramento per BP 3.0.67. x dal 31.12 ... ...

Consideriamo la quarta opzione, che non è descritta nella documentazione, poiché non esiste tale possibilità in BSP. Questa opzione è già deprecata. Trattamento esterno con regole è stato utilizzato nelle prime versioni con un formato di scambio universale. Ora 1C si sta gradualmente liberando di questa funzionalità.

In modalità enterprise, nella sezione amministrazione, segui il link Sincronizzazione dati - Impostazioni sincronizzazione dati, premi il bottone " Sintonizzare..."se l'impostazione è uno o" Modificare"se ci sono più impostazioni. Vai alla modalità di modifica del modulo tramite il menu" " , Espandi " Gruppo", qui includiamo l'elemento del modulo nascosto" "," ok".
Sul " Informazioni di servizio"scegliere" Percorso per lo scambio manager", sostituiamo il nostro trattamento con le regole lì.

Collegamento dell'elaborazione esterna con regole a BP 3.0.52 e versioni successive

In BP 3.0.52 e superiori per ragioni sconosciute elaborazione esterna con regole non viene utilizzato. L'interfaccia per il collegamento dell'elaborazione rimane. Grazie per questo.

È possibile abilitare l'elaborazione con regole utilizzando un'estensione. Il modulo comune è da correggere" Scambio datiXDTOServer", funzione" Formato VersioniExchange".

Procedura EDm_PoluchitVersiyuFormataObmena (VersiiFormata significa UzelInformatsionnoyBazy) query = nuova query ( "SELECT VARIE | SinhronizatsiyaDannyhCherezUniversalnyyFormat.PutKMenedzheruObmena AS PutKMenedzheruObmena, | SinhronizatsiyaDannyhCherezUniversalnyyFormat.VersiyaFormataObmena AS VersiyaFormataObmena | DA | PlanObmena.SinhronizatsiyaDannyhCherezUniversalnyyFormat SinhronizatsiyaDannyhCherezUniversalnyyFormat COME | DOVE | SinhronizatsiyaDannyhCherezUniversalnyyFormat.PutKMenedzheruObmena<>"" "" | E la sincronizzazione dei dati tramite GenericFormat.Ref = & Link "); Query.SetParameter (" Reference ", InformationBase Node); Fetch = Query.Run (). Select (); While Fetch.Next () Loop ProcessingName = Fetch.Path to the Manager Se SharedOnder NON è disponibile; () Then ProcessingData = New BinaryData (ProcessingName); ProcessingAddress = PutToTemporaryStore (ProcessingData); If GeneralPurpose.There is Protection Against Dangerous Actions () Then ProcessingName = ExternalProcessing.Descriptions. EndIf; EndIf; ExchangeManager = ExternalProcessing.Create (ProcessName); Format Versions.Insert (Selection.ExchangeFormatVersion, ExchangeManager); End of Loop; EndProcedure & Invece di ("ExchangeFormatVersion") EDMNodeVersionNodeVersionValue Aggiunto (Nodo InfoBase) Quindi ExchangePlaneName = InfoBaseNode.Metadata () .Name; ExchangeFormatVersions = DataExchangeServer.ExchangePlanSettingsValue (ExchangePlaneName, "ExchangeFormatVersions "); EDm_GetExchangeFormatVersion (ExchangeFormatVersions, nodo InformationBase); AltrimentiDataExchangeRedefinable.WhenGettingAvailableFormatVersions (ExchangeFormatVersions); Finisci se; Se ExchangeFormatVersions.Number () = 0 Then CallExceptionStringFunctionsClientServer.SubstituteParametersVSString (NStr ("ru =" Le versioni del formato Exchange non sono specificate. | Nome piano Exchange:% 1 | Procedura: GetExchangeFormatVersions (<ВерсииФорматаОбмена>) ""), DatabaseNode.Metadata (). Nome); Finisci se; Risultato = Nuova partita; Per ogni versione FromVersionFormatExchange Cycle Result.Insert (AbbrLP (Version.Key), Version.Value); Fine del ciclo; Risultato del rimborso; EndFunction

Come eseguire il debug delle regole nell'elaborazione esterna

    Nel configuratore" Servizio -> Parametri -> Avvia 1C: Enterprise -> Avvia parametro", specificare il parametro" ".

  • Di seguito è riportato il codice per l'estensione, per UT 11.4, KA 2.4, ERP 2.4. Il codice per BP 3.0 è riportato sopra. Modulo di gestione del piano di scambio Sincronizzazione dei dati tramite Universal Format.

Debug del codice di estensione ED

& Invece di ("GetExchangeFormatVersions") Procedura ED_GetExchangeFormatVersions (FormatVersions) DataExchangeUT.AvailableUniversalFormatVersions (FormatVersions); Request = New Query ("SELECT DIFFERENT | Sincronizzazione dati tramite UniversalFormat.PathTo Exchange Manager, | Sincronizzazione dati tramite UniversalFormat.ExchangeFormatVersion | FROM | Exchange Plan.<>"" "" "); Fetch = Query.Execute (). Select (); While Fetch.Next () Loop ProcessingName = Fetch.PathToExchange Manager; SE NON SharedPurposeClientServer.Debug Mode () Then // EDProcessingData = New BinaryData) ( NameProcessingData; AdresObrabotki = PomestitVoVremennoeHranilische (DannyeObrabotki) Se ObschegoNaznacheniya.EstZaschitaOtOpasnyhDeystvy () Quindi ImyaObrabotki = VneshnieObrabotki.Podklyuchit (AdresObrabotki, ObschegoNaznacheniya.OpisanieZaschityBezPreduprezhdeny ()); altrimenti ImyaObrabotki = VneshnieObrabotki.Podklyuchit (AdresObrabotki); ENDIF; ENDIF; MenedzherObmena VneshnieObrabotki.Sozdat = ( ImyaObrabotki) VersiiFormata.Vstavit (Vyborka.VersiyaFormataObmena, MenedzherObmena) KonetsTsikla; KonetsProtsedury e invece ( "DostupnyeVersiiFormataObmena") procedura di ED_DostupnyeVersiiFormataObmena (VersiiFormata) ObmenDannymiUT.DostupnyeVersiiUniversalnogoFormata (VersiiFormata) Query = new Query ( "selezionare varie | SinhronizatsiyaDannyhCherezUniversalnyyFormat.PutKMenedzher allo scambio, | Sincronizzazione datiViaUniversalFormat.ExchangeFormatVersion | FROM | Exchange Plan.Sincronizzazione dei dati tramite UniversalFormat AS Sincronizzazione dei dati tramite UniversalFormat | Sincronizzazione dei dati tramite Universal Format.Path To Exchange Manager<>"" "" "); Fetch = Query.Execute (). Select (); While Fetch.Next () Loop ProcessingName = Fetch.PathToExchange Manager; SE NON SharedClientServer.Debug Mode () Then // EDProcessingData = New BinaryData) ( NameProcessingData; AdresObrabotki = PomestitVoVremennoeHranilische (DannyeObrabotki) Se ObschegoNaznacheniya.EstZaschitaOtOpasnyhDeystvy () Quindi ImyaObrabotki = VneshnieObrabotki.Podklyuchit (AdresObrabotki, ObschegoNaznacheniya.OpisanieZaschityBezPreduprezhdeny ()); altrimenti ImyaObrabotki = VneshnieObrabotki.Podklyuchit (AdresObrabotki); ENDIF; ENDIF; MenedzherObmena VneshnieObrabotki.Sozdat = ( ProcessingName); Versioni formato.Insert (Fetch.ExchangeFormatVersion, ExchangeManager); EndLoop; EndProcedure

Il debug è più semplice da eseguire nel database dei file. Impostiamo un punto di interruzione nell'elaborazione con le regole. Per trovare la procedura richiesta, utilizzare KD3. Troviamo PKO, POD o Algorithm, guarda " Nome del gestore" o " Nome algoritmo", stiamo cercando questa procedura nel modulo delle regole. Dopo aver modificato il modulo, non dimenticare di copiare la procedura negli appunti e premere il pulsante" "nel CD3. Attenzione, la stessa conversione deve essere aperta.

È tutto per ora. Queste informazioni sono già sufficienti per un programmatore 1C per padroneggiare in modo indipendente KD3 e mantenere un metodo moderno di sincronizzazione tra le basi 1C in ordine. Se ci sono punti bianchi, chiedi, l'articolo verrà integrato e potrai tornare ad esso se hai dimenticato qualcosa.

Collegamenti noti alla documentazione su KD3:
  • 1C-Centro di formazione n. 3, "Conversione dati 3.0" - http://www.1c-uc3.ru/konvert30.html
È possibile espandere l'ambito di applicazione di KD3 utilizzando queste pubblicazioni:
  • - le configurazioni delle versioni precedenti su piattaforma 8.2 e precedenti sono rese compatibili con ED.
Risparmia tempo e usa regole già pronte per ultime versioni le configurazioni possono essere trovate qui
  • - funzionalità estese, correzioni di bug.

In questo articolo descriverò la mia, finora piccola, esperienza nell'organizzazione dello scambio di dati attraverso il formato universale EnterpriseData.

Nel mio caso, lo scambio è configurato tra le configurazioni "Trade Management 11.2" (di seguito UT) e "Enterprise Accounting 3.0.43" (di seguito BP). Lo scambio è a senso unico, da UT a BP. Prima dell'aggiornamento da Trade Management 11.1 alla versione 11.2, lo scambio di dati è stato configurato utilizzando la configurazione Data Conversion 2.0. Tuttavia, dopo essere passati a "11.2" in "Gestione commerciale", sono comparsi errori nel lavoro degli utenti. La procedura per l'aggiornamento delle regole di cambio è stata eseguita, ma ciò non ha prodotto alcun risultato. Il debugger ha mostrato che il problema era la comunicazione. Si è deciso di rimuovere l'impostazione di comunicazione in entrambe le configurazioni e configurarla nuovamente.

Sia "Gestione commerciale" che "Contabilità aziendale" lavorano per noi in una versione client-server. Ho iniziato a configurare la sincronizzazione con UT. L'ho eseguito in modo tale che i dati fossero scaricati da UT in un file. Cioè, sincronizzazione tramite una directory di rete. Nell'alimentatore ho impostato lo scambio in modo tale che nessun dato venga scaricato dall'alimentatore.

Si è verificato un errore durante la chiamata al metodo di contesto (Check): Errore durante il controllo dei dati XDTO:
La struttura dell'oggetto "/ Conto bancario/Banca della controparte" non corrisponde al tipo: (http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.1)
Verifica della proprietà "BIC":
Forma: Elemento
nome: (http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.1) BIC
tipo di:
Proprietà richiesta mancante
Oggetto: Contratto con controparte n. ...

Per analizzare l'errore, ho cliccato sull'icona "Composizione dei dati da inviare" e nell'elenco degli appaltatori registrati per la spedizione ho trovato un accordo in base al quale è apparso un errore. Ha aperto un contratto, ha ricordato il conto bancario della controparte specificato nel contratto. Poi sono passato ai conti bancari registrati per la spedizione. Si è scoperto che l'account richiesto non è nell'elenco di quelli registrati. Ho ripubblicato il problema sul conto bancario e sul contratto. Successivamente, ho registrato manualmente il conto bancario richiesto.

Ho provato a sincronizzare di nuovo i dati da UT. Questa volta, i dati sono stati scaricati con successo. V cartella di rete formato File XML contenente i dati per il trasferimento da UT a BP.

Il passaggio successivo consiste nel caricare i dati da un file nel reparto contabilità aziendale. Nella configurazione "Enterprise Accounting", ho premuto il pulsante "Sincronizza", si è aperta una maschera di elaborazione con il messaggio "Analisi dati in corso". Poco dopo, il messaggio è cambiato in "Scaricamento dati". Allo stesso tempo, l'indicatore e il contatore hanno mostrato che più di 80 mila oggetti venivano scaricati dall'alimentatore. Questo mi ha confuso, perché ho indicato nelle impostazioni che nulla deve essere scaricato dall'alimentatore. L'elaborazione ha richiesto molto tempo e si è conclusa con un errore:

Evento: scambio di dati
(SharedModule.LongedOperations.Module (371)): flusso di lavoro del lavoro in background terminato in modo anomalo
CallException (ErrorText);

Per localizzare l'errore, ho provato a modificare le impostazioni di sincronizzazione e le opzioni di funzionamento della base BP. Di conseguenza, quando ho passato il database alla versione file, il sistema ha funzionato adeguatamente: si è aperto il modulo per confrontare due database. Dopo aver abbinato gli oggetti, la sincronizzazione iniziale ha avuto successo. Quindi ho riportato il database alla versione client-server.

Durante l'ulteriore "run-in" della sincronizzazione, è stato necessario apportare alcune modifiche alle regole per la conversione degli oggetti. Ora è il momento di utilizzare la configurazione Data Conversion 3.0. La guida in linea alla configurazione descrive come lavorare. Anche gli articoli sul sito web di ITS hanno aiutato.

Di conseguenza, ho caricato i seguenti dati in "Conversione dati 3.0":

  • Testi del modulo comune "DataExchangeManagerViaUniversalFormat" da due basi
  • Schema di entrambe le basi
  • Descrizione del formato EnterpriseData (da qualsiasi database)
  • Regole di conversione

Dopo il caricamento, ho aperto le regole per la conversione di dati, oggetti, proprietà in "Conversione dati 3.0". Ha apportato le modifiche necessarie per me. Quindi ho usato il pulsante "Scarica modulo gestore scambio". Il testo del modulo è stato copiato negli appunti. Resta solo da inserirlo nella configurazione.

Avendo sperimentato l'impostazione delle regole in "Data Conversion 3.0", ho concluso per me stesso che nel caso in cui le modifiche apportate siano insignificanti, è più facile impostare le regole direttamente nelle configurazioni UT e BP, nel modulo generale "DataExchange ManagerVia UniversalFormat". Se le modifiche sono serie, come ad esempio l'aggiunta di un nuovo oggetto allo scambio, allora dovresti usare la configurazione " Conversione dati 3.0".

Ho svolto il compito di aggiungere il documento "Ordine a fornitore" al piano di scambio utilizzando " Conversione dati 3.0". versione standard UT - BP di questo documento nel piano di scambio non lo è.

Ricorda che le regole per la registrazione degli oggetti per il caricamento sono ancora configurate nella configurazione "Conversione dati 2.0".

Queste sono le prime impressioni sulla sincronizzazione dei dati attraverso il formato EnterpriseData universale.

P.S. Se hai domande e le tue osservazioni sullo scambio di dati attraverso il Formato e la Configurazione Universale " Data Conversion 3.0", scrivi nei commenti. Ci scambieremo esperienze.

  • Sincronizzazione dati
  • Formato EnterpriseData generico
  • Conversione dati 3.0
  • Conversione dati 2.0
  • Gestione del commercio
  • Contabilità aziendale

Diamo un'occhiata a un semplice esempio di vita reale. Diciamo che abbiamo una società impegnata nel commercio all'ingrosso e al dettaglio, nonché in questa società, come in qualsiasi altra, viene condotta la contabilità. L'impresa ha due basi standard, queste sono UT (gestione commerciale) e BP (contabilità aziendale), rispettivamente, ciascuna delle basi mantiene la propria contabilità, nella gestione UT per riflettere tutte le transazioni relative al commercio, nella contabilità BP. Per non fare doppio lavoro, ad es. non creare gli stessi documenti in due basi (in fondo i movimenti devono essere di gestione e contabilità) imposteremo solo la sincronizzazione tra queste basi.

Imposteremo lo scambio di dati a senso unico, da UT ---> BP. È anche possibile impostare uno scambio bidirezionale, ma in pratica non è così spesso richiesto, quindi non lo considereremo nel nostro esempio.

Passaggi preparatori per l'impostazione dello scambio nella BP

Iniziamo a configurare la sincronizzazione, prima andiamo al database 1C "Enterprise Accounting 3.0" (ricevitore), dobbiamo verificare se la sincronizzazione è abilitata per questo database, per farlo dobbiamo prima andare al database. Non appena la base si apre, vai alla scheda "Amministrazione" ---> "Impostazioni sincronizzazione dati"


Davanti a noi si apre una nuova scheda, che deve essere compilata allo stesso modo dello screenshot qui sotto, ad eccezione del prefisso infobase. Il prefisso dovrebbe essere composto da due lettere, è possibile impostarne una qualsiasi, ma secondo lo standard 1C è meglio impostare il prefisso in base al nome della configurazione, ovvero per "Enterprise Accounting" il prefisso sarà "BP". Se imposti scambi complessi e ci sono diversi database contabili, i prefissi dovrebbero differire chiaramente l'uno dall'altro, qui puoi utilizzare le prime due lettere del nome dell'organizzazione come abbreviazione.

Continuiamo a configurare la sincronizzazione dei dati in UT


Dopo aver eseguito tutte le azioni necessarie nella base del ricevitore (BP 3.0), per continuare a impostare lo scambio di dati, è necessario aprire la base di origine (UT 11.1). Andiamo alla scheda "Amministrazione", a sinistra nel menu, selezioniamo la voce "Impostazioni sincronizzazione dati"... Se la sincronizzazione non è abilitata, abilitala utilizzando la casella di controllo e non dimenticare di specificare il prefisso della base di origine. Una volta completati tutti i punti 1-4 come mostrato nell'immagine sottostante, è necessario fare clic sul collegamento ipertestuale "Sincronizzazione dati" (punto 5).


Nella nuova finestra che appare, è necessario fare clic sul segno più verde (Configura sincronizzazione dati), nel menu a discesa, selezionare la voce "Enterprise Accounting 3.0".

Configurazione di punti importanti nello scambio di dati tra UT e PSU


Ora vediamo una finestra con l'impostazione della sincronizzazione dei dati in 1C, seleziona la voce "Specifica le impostazioni manualmente" e fai clic su "Avanti".


Continuiamo a configurare lo scambio di dati in 1C, nella scheda successiva dobbiamo selezionare l'opzione per la connessione all'infobase del ricevitore ( connessione diretta al programma), parametri di connessione (on questo computer o in rete locale), la directory in cui si trova la base ricevente, nonché i dati di autenticazione necessari (nome utente e password nella base).


Nella pagina successiva, dobbiamo compilare le regole per l'invio e la ricezione dei dati dalla configurazione BP 3.0 (ricevitore). Fai clic su "modifica le regole per il caricamento dei dati".


Davanti a noi si è aperta la finestra "Regole di invio dati", in essa impostiamo i seguenti parametri:

  • Quale NSI verrà inviato (nel nostro esempio, siamo interessati solo ai documenti e all'NSI utilizzato in essi, quindi siamo andati alla voce appropriata, se selezioni la prima voce "Invia tutto", tutte le directory verranno ricaricate insieme a i documenti, spesso se le informazioni non vengono utilizzate nei documenti, allora è inutile per il destinatario, perché non influisce in alcun modo sulla contabilità)
  • Da quale data inviare tutte le informazioni (non prenderemo in considerazione la sincronizzazione manuale in questo articolo)
  • Per quali o a quali organizzazioni inviare i dati (nel nostro esempio, abbiamo scelto un'organizzazione IE "Imprenditore")
  • Regole per la formazione dei contratti
  • Magazzino generalizzato
  • Se piegare documenti in magazzino

Dopo aver effettuato le impostazioni, fai clic su "Salva e chiudi".


Poiché nel nostro esempio stiamo impostando e utilizzando uno scambio unidirezionale, da UT a BP, quindi le impostazioni delle regole per ottenere i dati da "Enterprise Accounting 3.0" non ci interessano, quindi fai clic su "Avanti".


In una nuova finestra, siamo invitati a configurare le regole per la base ricevente (BP). Al punto 1, chiamiamo la nostra base con un nome, gli diamo un prefisso. Il PREFIX dovrebbe essere lo stesso che lo abbiamo impostato nel database BP stesso all'inizio di questo articolo, se i prefissi differiscono, la sincronizzazione dei dati nel programma 1C non funzionerà. Dopodiché premiamo il punto 2, quindi il punto 3.



Nel paragrafo 3, dobbiamo consentire la pubblicazione dei documenti quando vengono caricati nel database. Fare clic su "Salva e chiudi".


Ora la finestra dovrebbe essere simile a quella mostrata di seguito, fare clic su "Avanti".


Questa finestra contiene informazioni di riferimento sulla sincronizzazione creata in 1C. Basta fare clic sul pulsante "Avanti". Se il programma visualizza un errore durante l'impostazione della sincronizzazione dei dati, è necessario contattarci in modo che il nostro specialista 1C ti aiuti subito!


Nel prossimo passo il programma offrirà di eseguire la sincronizzazione immediatamente dopo aver creato le impostazioni di scambio dati... Siamo d'accordo con questo e facciamo clic su "Fine".

Apparirà una finestra davanti a te in cui vedrai le informazioni su come sta procedendo la sincronizzazione. Se la base del ricevitore non è vuota, ad es. poiché la contabilità è già stata conservata al suo interno, all'utente nel programma 1C verrà richiesto di eseguire manualmente un confronto degli oggetti. Il confronto degli oggetti in 1C durante la sincronizzazione dei dati è un confronto degli stessi oggetti del ricevitore con gli stessi oggetti nella sorgente.

Consideriamo un esempio, diciamo in UT c'è una controparte con il nome "PharmGroup LLC" e TIN 1234567, e BP ha anche una controparte con TIN 1234567, ma il nome "PharmGroup", se non confrontiamo questi due oggetti quando confrontando i dati nella fase di sincronizzazione, quindi dopo la sincronizzazione nel ricevitore (Enterprise Accounting 3.0), avremo due controparti con TIN 1234567 e due nomi "PharmGroup LLC" e "PharmGroup", rispettivamente. Per evitare tali situazioni, è stato inventato un meccanismo per abbinare gli oggetti.


Nel nostro esempio, la base del ricevitore è vuota e quindi le finestre di mappatura degli oggetti non si sono aperte per noi. Ma dopo aver eseguito alcune operazioni, il sistema chiederà sicuramente all'utente di aggiungere alcuni dati aggiuntivi e visualizzerà la seguente finestra. Non abbiamo bisogno di trasferire dati aggiuntivi, abbiamo già configurato tutto ciò che è necessario prima, quindi in questo passaggio selezioniamo "Non aggiungere documenti all'invio". Fare clic su "Avanti".

La fase finale dello scambio di dati tra 1C


Nella fase finale, il programma visualizzerà la seguente finestra, in cui l'utente verrà informato che la sincronizzazione è andata a buon fine, fare clic su "Fine". Questo completa la sincronizzazione tra le basi nello scambio unidirezionale da "Trade Management 11.1" (UT) a "Enterprise Accounting 3.0" (BP).

Sistemi automatizzati la gestione nella maggior parte dei casi è costituita da database separati e spesso hanno una struttura geograficamente distribuita. Allo stesso tempo, lo scambio di dati correttamente implementato è un prerequisito per l'efficace funzionamento di tali sistemi.

Allo stesso tempo, la configurazione iniziale dello scambio può richiedere una serie di azioni, non solo in termini di programmazione, ma anche di consulenza, anche se si tratta di fonti omogenee, come nel caso dei prodotti sulla piattaforma 1C: Enterprise. Perché l'impostazione dello scambio 1C (o, come viene anche chiamato, la sincronizzazione dei dati in 1C 8.3) può diventare il compito più lungo e costoso di un progetto di integrazione, lo considereremo in questo articolo.

Lo scambio di dati nell'ambiente 1C consente:

  • Escludere la doppia registrazione dei documenti;
  • Automatizzare i processi aziendali correlati;
  • Ottimizzare la comunicazione tra le unità distribuite;
  • Aggiornare tempestivamente i dati per il lavoro di specialisti di diversi dipartimenti;
  • "Delineare" diversi tipi di contabilità. *

* Nel caso in cui i dati di un tipo di contabilità differiscano significativamente da un altro, è necessario assicurare la riservatezza delle informazioni e "delimitare" i flussi informativi. Ad esempio, lo scambio di dati tra 1C UT e 1C Accounting non richiede il caricamento dei dati di gestione nel database di contabilità di routine, ad es. la sincronizzazione in 1C sarà incompleta qui.

Se rappresentiamo il processo standard di implementazione dello scambio di dati primari, quando almeno uno dei suoi oggetti è un prodotto 1C, si possono distinguere le seguenti fasi:

  • Coordinamento della composizione dello scambio;
  • Definizione di trasporto (protocolli di scambio);
  • Stabilire regole;
  • Programmazione.

Rivelando la composizione dello scambio 1C

Gli oggetti di scambio possono essere suddivisi condizionatamente in "sorgente" e "destinatario". Allo stesso tempo, possono svolgere due ruoli contemporaneamente, che saranno chiamati: scambio bilaterale. La determinazione della fonte e della destinazione avviene in modo logico, a seconda della necessità o del funzionalità sistema. *

* Ad esempio, quando si integra WA: Financier, una soluzione per la contabilità finanziaria e la gestione dei processi di tesoreria, sviluppata sulla base di 1C: Enterprise, gli esperti di WiseAdvice lo consigliano come sistema principale. Ciò è dovuto alla disponibilità di strumenti di controllo per conformarsi alle regole della policy applicativa e, di conseguenza, per garantire l'efficacia della soluzione.

Inoltre, sulla base dei requisiti ricevuti e registrati dagli utenti, viene creato un elenco di dati per lo scambio, viene determinato il loro volume, i requisiti per la frequenza di scambio, il processo di lavoro con errori e l'elaborazione di situazioni eccezionali (collisioni) è prescritto.

Nella stessa fase, a seconda della flotta di sistemi esistenti e della struttura dell'impresa, viene determinato il formato di scambio:

Base di informazioni distribuita

  • RIB implica lo scambio tra configurazioni identiche di database 1C, con una chiara struttura di controllo master-slave per ogni coppia di scambio. In quanto elemento della piattaforma tecnologica, il RIB, oltre ai dati, può trasferire modifiche alla configurazione e informazioni amministrative del database (ma solo dal master allo slave).

Scambio dati universale in 1C

  • Un meccanismo che permette di configurare lo scambio di database 1C, sia con configurazioni sulla piattaforma 1C: Enterprise, sia con sistemi di terze parti. Lo scambio viene effettuato convertendo i dati in un formato xml universale secondo i "Piani di scambio".

Dati aziendali

  • L'ultimo sviluppo di 1C, progettato per implementare lo scambio di dati in formato xml tra prodotti creati sulla piattaforma 1C: Enterprise con qualsiasi sistema di automazione. L'utilizzo di EnterpriseData semplifica i miglioramenti relativi allo scambio. In precedenza, quando una nuova configurazione veniva inclusa nel sistema, era necessario implementare un meccanismo per l'importazione e l'esportazione dei dati, sia per essa che per i sistemi esistenti. Ora i sistemi che supportano EnterpriseData non necessitano di alcuna modifica, avendo un solo punto di "ingresso-uscita".

Definizione di trasporto (protocolli di scambio)

Per il sistema basato sulla piattaforma 1C: Enterprise 8, viene fornita un'ampia gamma di opportunità per organizzare lo scambio con qualsiasi risorsa informativa attraverso standard universali generalmente accettati (xml, file di testo, Excel, connessione ADO, ecc.). Pertanto, quando si definisce un trasporto per lo scambio di dati, si dovrebbe procedere dalle capacità di un database di sistema di terze parti.

Sincronizzazione delle directory

Il principio principale della sincronizzazione efficace delle directory è la presenza di un punto di ingresso. Ma se si tratta di lavorare con testi di consultazione storicamente compilati secondo regole diverse, è necessario definire chiaramente i campi di sincronizzazione per portare lo scambio a un “comune denominatore”.*

* In questa fase, potrebbe essere necessario lavorare sulla normalizzazione dei dati di riferimento a lato della fonte dati. A seconda dello stato dei libri di riferimento e del loro volume, il processo di corrispondenza degli elementi, riconoscimento, rilevamento di errori e duplicati, nonché compilazione di campi mancanti e assegnazione di campi di sincronizzazione, può richiedere il lavoro di un intero gruppo di esperti, sia da dall'integratore (titolare del metodo di standardizzazione dei dati di riferimento) e dalla parte del cliente.

Impostazione delle regole

La capacità di visualizzare i dati dai sistemi di origine nei ricevitori dipende dalle regole di scambio correttamente specificate. Le regole, presentate in formato xml, regolano la corrispondenza degli attributi chiave degli oggetti sorgente-destinazione. La soluzione 1C: Data Conversion è progettata per automatizzare la creazione di regole per l'implementazione sia di uno scambio una tantum che di uno permanente.

Garantisce nessuna perdita di dati durante lo scambio del piano di scambio. Questa è parte integrante di qualsiasi configurazione sulla piattaforma 1C: Enterprise, che descrive completamente la procedura per lo scambio 1C: composizione dati (documenti con dettagli "identificativi") e nodi ( basi informative trasmettitori-ricevitori), nonché l'attivazione del RIB per le direzioni di scambio selezionate.

Ogni variazione dei dati inseriti nel Piano di Scambio viene registrata e riceve un segnale di “modifica”. Fino a quando i dati modificati non corrispondono tra loro nei nodi trasmettitore-ricevitore, il flag non verrà cancellato e il sistema invierà messaggi di controllo a entrambi i nodi. Dopo aver scaricato i dati e confermato la loro piena corrispondenza in entrambi i sistemi, il segno viene azzerato.

Orario di scambio in 1C

Per automatizzare lo scambio regolare, viene impostata la frequenza di caricamento dei dati. La frequenza di scambio dipende dalla necessità e dalle capacità tecniche. Inoltre, le configurazioni sulla piattaforma 1C: Enterprise consentono di impostare lo scambio di dati quando si verifica un evento.

Dopo aver considerato il processo di implementazione dello scambio standard, prestiamo attenzione ai fattori che richiederanno miglioramenti nelle diverse fasi:

  • Configurazioni di database non tipiche e altamente modificate;
  • Diverse versioni 1C: piattaforme aziendali;
  • Non aggiornato da molto tempo, no versioni attuali configurazione;
  • Oggetti di scambio che hanno subito modifiche in precedenza;
  • La necessità di regole di cambio non standard;
  • Un insieme e una composizione dei requisiti molto diversi nei libri di riferimento esistenti.

Poiché anche le azioni standard per l'implementazione dello scambio di dati primari richiedono conoscenze specialistiche, si consiglia di eseguirle con la partecipazione di specialisti 1C. Solo dopo aver completato tutti i passaggi precedenti dovresti procedere all'impostazione dello scambio nella configurazione. Consideriamo l'integrazione dei database utilizzando l'esempio di "1C: UPP" e "1C: Retail" (secondo lo stesso schema, è configurato lo scambio con "1C: UT"). Inoltre, la sincronizzazione tipica include lo scambio di SCP - SCP, tipico dei sistemi di automazione su larga scala delle più grandi imprese industriali.

Nel sottomenu "Servizio", seleziona "Scambio dati con prodotti sulla piattaforma ..." (la scelta dello scambio diretto con "Vendita al dettaglio" spesso minaccia di errori a livello di oggetti COM). Prestare attenzione al messaggio di servizio "Questa funzione non è disponibile".


Per risolvere questo problema, è necessario selezionare "Impostazioni di comunicazione"


... e spunta la casella. Successivamente, ignoriamo il messaggio di errore.


Nelle impostazioni di sincronizzazione dei dati, seleziona "Crea uno scambio con" Retail "...



Prima di configurare le impostazioni per la connessione tramite una directory locale o di rete, assicurarsi che ci sia spazio sufficiente sul disco per la directory. Sebbene, di norma, non richieda più di 30-50 MB, in casi eccezionali potrebbe richiedere fino a 600 MB. Puoi creare la directory desiderata direttamente dal configuratore.



Quando ci si connette tramite una directory di rete, le offerte per configurare la connessione tramite un indirizzo FTP e tramite e-mail ignorato facendo clic su "Avanti".


Nelle impostazioni, inseriamo manualmente i prefissi: le convenzioni delle basi (di norma, BP, UPP, RO), impostiamo le regole e la data di inizio del caricamento dei dati. Il prefisso sarà indicato nel nome dei documenti per indicare la base in cui sono stati creati. Se le regole di scarico non vengono modificate, i dati verranno scaricati per impostazione predefinita per tutti i parametri disponibili.



Creiamo un file di impostazioni di scambio per "Vendita al dettaglio" in modo da non ripetere le nostre azioni. Se è necessario inviare immediatamente i dati subito dopo aver impostato la sincronizzazione, selezionare la casella.


Per automatizzare il processo di scambio, è necessario impostare un programma.


Menù al dettaglio.


Seleziona la casella e seleziona "Sincronizzazione".


Effettuiamo l'impostazione "inversa" scegliendo Manufacturing Enterprise Management.




Carica il file delle impostazioni creato in SCP.


Mettiamo un segno di spunta, il sistema preleva l'indirizzo automaticamente.





Agiamo allo stesso modo dell'UPP.









Confronto dei dati di verifica (il confronto manuale dei dati è consigliato nella fase preparatoria, poiché questo lavoro può richiedere più tempo nel processo di attuazione dello scambio). La finestra di mappatura viene aperta da doppio click i topi.



In caso di errore di sincronizzazione, "Dettagli ..." verrà sostituito da "Mai...".


"In dettaglio..." apre un registro di registrazione con le informazioni aggiornate sullo scambio.


Pronto.