Come configurare smartphone e PC. Portale informativo

Conversione dati di configurazione 1s 8.3. Continua a lavorare con l'assistente

Probabilmente ogni specialista 1C ha riscontrato la necessità di trasferire dati da una base di informazioni all'altra. Nel caso in cui le configurazioni siano diverse, è necessario scrivere le regole di conversione dei dati. Queste regole vengono create nella configurazione 1C “Conversione dati”.

I dati possono anche essere trasferiti utilizzando . Molte configurazioni 1C 8.3 dispongono di funzionalità standard per impostare la sincronizzazione dei dati tra diverse configurazioni e un'integrazione perfetta con 1C Document Flow.

Ma quando i dati devono essere trasferiti tra configurazioni assolutamente identiche, è possibile semplificare il compito e utilizzare l'elaborazione standard per il caricamento e il download tramite XML. Tieni presente che questo metodo, come la conversione dei dati, confronta gli oggetti tra loro tramite un identificatore univoco (GUID) e non in base al nome.

Potete scaricare questa elaborazione sul disco ITS, oppure utilizzando i link:

È universale e adatto a qualsiasi configurazione.

Consideriamo un esempio di scarico della directory "Nomenclatura" da una base informativa 1C 8.3 Contabilità 3.0 a un'altra. Un prerequisito sarà la selezione da parte del genitore (gruppo) “Lavorazione del legno”.

Caricamento dei dati da 1C a XML

Vai alla base informativa da cui verranno scaricati i dati (fonte). Assicurati di controllarli, tenendo conto di tutte le possibili condizioni per evitare conseguenze indesiderabili.

Aprire l'elaborazione di caricamento e download dei dati XML (Ctrl+O).

Siamo interessati alla scheda “Carica”. Prima di tutto, specifica il nome del file in cui verranno caricati i dati e il percorso per il salvataggio. In questo caso, i dati vengono caricati “In un file sul server”.

Nell'intestazione dell'elaborazione è possibile configurare il periodo per il quale verrà effettuata la selezione. Inoltre, per i registri periodici, è possibile specificare il metodo di applicazione della selezione per periodo. Nel caso sia necessario caricare movimenti unitamente ai documenti viene impostato il flag corrispondente. In questo caso sovraccarichiamo la directory, quindi non è necessario configurare nulla nell'intestazione.

Passiamo alla selezione dei dati per il caricamento. Nella parte tabellare del modulo di elaborazione, seleziona le caselle di controllo relative agli oggetti di configurazione che desideri trasferire.

La colonna "Scarica se necessario" indica se è necessario sovraccaricare questo oggetto se a esso fa riferimento l'attributo della directory che stiamo sovraccaricando. Ad esempio, la posizione dell'articolo che stai caricando ha un'unità di misura che non è presente nel database di destinazione. Se la casella di controllo nella colonna "Carica se necessario" è impostata di fronte al libro di consultazione con le unità di misura, verrà creata una nuova posizione. Altrimenti il ​​valore dell'attributo sarà “<Объект не найден>" e il suo identificatore univoco.

In un caso semplice senza selezioni, l'impostazione del sovraccarico degli elementi sarà simile a questa.

In questo esempio è necessario selezionare solo gli elementi che si trovano nella cartella “Lavorazione del legno”.

Un'elaborazione simile per 8.2 consente di impostare le selezioni per ciascun oggetto di configurazione in un formato pratico. Nella versione 8.3, sfortunatamente, non è presente tale funzionalità. Una via d'uscita in questa situazione sarebbe quella di selezionare gli elementi necessari nella scheda "Oggetti aggiuntivi da scaricare".

Puoi aggiungere oggetti qui manualmente (il pulsante “Aggiungi”) o su richiesta (“Aggiungi su richiesta...”). Se ce ne sono molti, è preferibile la seconda opzione.

In questo caso la richiesta sarà la seguente. Compila i parametri, completa la richiesta dopo aver controllato i dati e clicca sul pulsante “Seleziona risultato”.

Dopo aver specificato tutti gli oggetti necessari e gli elementi aggiuntivi per il caricamento, fare clic sul pulsante "Carica dati". Finiranno in un file XML, il cui nome e percorso hai specificato in precedenza. I risultati di questa operazione verranno visualizzati nei messaggi.

In questo esempio è stato necessario scaricare solo 3 posizioni, ma ne sono state scaricate cinque. Questo perché è stato impostato un flag di fronte alla directory "Nomenclatura" nella colonna "Carica se necessario". Insieme alle posizioni necessarie, i loro genitori erano sovraccarichi.

Caricamento di una directory da XML

Dopo aver scaricato correttamente i dati dalla configurazione di origine in un file XML, aprire il database di destinazione. La struttura degli oggetti e i loro dettagli devono corrispondere tra loro. In questo caso il trasferimento viene effettuato tra due configurazioni standard 1C: Contabilità 3.0.

Elaborazione aperta nel database del destinatario. Questa elaborazione viene utilizzata sia per il caricamento che per il caricamento dei dati. Vai alla scheda "Download" e specifica il percorso del file XML in cui sono stati precedentemente scaricati i dati. Successivamente, fai clic sul pulsante “Scarica dati”.

Il risultato del download verrà visualizzato nei messaggi. Nel nostro caso è andato tutto bene.

La directory "Nomenclatura" nel database ricevente non è stata compilata. Ora ha cinque elementi: tre posizioni della nomenclatura e due gruppi.

La migrazione dei dati tra diverse configurazioni non è un compito banale. Come sempre esistono diverse soluzioni, ma non tutte sono ottimali. Proviamo a comprendere le sfumature del trasferimento dei dati e scegliamo una strategia universale per risolvere tali problemi.

Il problema della migrazione dei dati (stiamo parlando esclusivamente di prodotti aziendali 1C) da una soluzione all'altra non si è presentato ieri. L'azienda 1C comprende perfettamente quali difficoltà devono affrontare gli sviluppatori durante la creazione di migrazioni, quindi cerca in ogni modo possibile di aiutare con gli strumenti.

Durante lo sviluppo della piattaforma, l'azienda ha introdotto una serie di strumenti universali, nonché tecnologie che semplificano il trasferimento dei dati. Sono integrati in tutte le soluzioni standard e il problema delle migrazioni tra configurazioni identiche è stato generalmente risolto. La vittoria è confermata ancora una volta dalla stretta integrazione delle soluzioni standard.

Con le migrazioni tra soluzioni non standard la situazione è un po’ più complicata. Un'ampia selezione di tecnologie consente agli sviluppatori di scegliere autonomamente il modo ottimale per risolvere un problema dal loro punto di vista.

Diamo un'occhiata ad alcuni di essi:

  • scambio tramite file di testo;
  • utilizzo di piani di scambio;
  • ecc.

Ognuno di loro ha i suoi pro e contro. Per riassumere, lo svantaggio principale sarà la sua verbosità. L'implementazione indipendente degli algoritmi di migrazione comporta notevoli costi di tempo e un lungo processo di debug. Non voglio nemmeno parlare di ulteriore sostegno a tali decisioni.

La complessità e l'alto costo del supporto hanno spinto l'azienda 1C a creare una soluzione universale. Tecnologie che permettono di semplificare il più possibile lo sviluppo e il supporto delle migrazioni. Di conseguenza, l’idea è stata implementata sotto forma di una configurazione separata – “Conversione dati”.

Conversione dati - soluzione standard, configurazione indipendente. Qualsiasi utente con un abbonamento “ITS:Prof” può scaricare questo pacchetto in modo completamente gratuito dal sito di supporto utente o dal disco ITS. L'installazione viene eseguita in modo standard, come tutte le altre soluzioni standard di 1C.

Ora un po' sui vantaggi della soluzione. Cominciamo con la cosa più importante: la versatilità. La soluzione non è adattata a configurazioni/versioni specifiche della piattaforma. Funziona ugualmente bene sia con configurazioni standard che personalizzate. Gli sviluppatori dispongono di una tecnologia universale e di un approccio standardizzato per creare nuove migrazioni. La versatilità della soluzione permette di predisporre migrazioni anche per piattaforme diverse da 1C:Enterprise.

Il secondo grande vantaggio sono gli ausili visivi. Le migrazioni semplici vengono create senza programmazione. Sì, sì, senza una sola riga di codice! Solo per questo, vale la pena dedicare del tempo ad apprendere la tecnologia una volta e poi utilizzare ripetutamente competenze inestimabili.

Il terzo vantaggio che vorrei sottolineare è l’assenza di restrizioni sulla distribuzione dei dati. Lo sviluppatore stesso sceglie il metodo di consegna dei dati alla configurazione del ricevitore. Sono disponibili due opzioni predefinite: caricamento in un file xml e connessione diretta all'infobase (COM/OLE).

Studiare architettura

Sappiamo già che la conversione dei dati può fare miracoli, ma non è ancora del tutto chiaro quali siano i vantaggi tecnici. La prima cosa che devi capire è che qualsiasi migrazione (conversione) dei dati si basa su regole di scambio. Le regole di scambio sono un normale file xml che descrive la struttura in cui verranno caricati i dati dalla sicurezza informatica. L'elaborazione del servizio che carica/scarica i dati analizza le regole di scambio ed esegue il caricamento in base ad esse. Durante il caricamento avviene il processo inverso.

La configurazione "CD" è una sorta di costruttore visivo con l'aiuto del quale lo sviluppatore crea regole di scambio. Non sa come scaricare i dati. Ciò è responsabile dell'ulteriore elaborazione del servizio esterno incluso nel pacchetto di distribuzione del CD. Ne esistono diversi (XX nel nome del file è il numero di versione della piattaforma):

  • MDXXExp.epf- l'elaborazione consente di caricare una descrizione della struttura dell'infobase in un file xml. La descrizione della struttura viene caricata nel CD per ulteriori analisi e creazione di regole di scambio.
  • V8ExchanXX.epf- carica/scarica i dati dalla base informativa in conformità con le regole di scambio. Nella maggior parte delle configurazioni tipiche, l'elaborazione è presente immediatamente (vedere la voce di menu "Servizio"). L'elaborazione è universale e non è legata ad alcuna configurazione/regola specifica.

Ok, ora, sulla base di quanto sopra, definiamo le fasi di sviluppo di una nuova conversione:

  1. Definizione del compito. È necessario capire chiaramente quali dati devono essere trasferiti (da quali oggetti di configurazione) e, soprattutto, dove trasferirli.
  2. Predisposizione delle descrizioni delle strutture di configurazione (Source/Sink) per il successivo caricamento nel CD. Il problema viene risolto mediante l'elaborazione del servizio MDXXExp.epf.
  3. Caricamento delle descrizioni preparate delle strutture nella sicurezza delle informazioni.
  4. Creazione di regole di scambio utilizzando uno strumento CD visivo.
  5. Esecuzione del caricamento/download in base alle regole di conversione dei dati create utilizzando l'elaborazione V8ExchanXX.epf.
  6. Debug delle regole di scambio (se necessario).

La conversione più semplice

Per la dimostrazione avremo bisogno di due configurazioni distribuite. Ho deciso di optare per l'opzione: decima edizione "Trade Management" e una piccola soluzione scritta in casa. Il compito sarà quello di trasferire i dati dalla configurazione standard “UT”. Per brevità, chiameremo la soluzione autoprodotta “Sink” e la gestione commerciale “Source”. Iniziamo a risolvere il problema trasferendo gli elementi dalla directory "Nomenclatura".

Prima di tutto, diamo un'occhiata allo schema di conversione dei dati e rileggiamo l'elenco delle azioni da eseguire. Quindi lanciamo la configurazione "Sorgente" e apriamo l'elaborazione del servizio MD82Exp.epf al suo interno.

L'interfaccia di elaborazione non ha molte impostazioni. L'utente dovrà solo indicare le tipologie di oggetti metadati che non saranno inclusi nella descrizione della struttura. Nella maggior parte dei casi non è necessario modificare queste impostazioni perché Non ha particolare senso scaricare i movimenti utilizzando i registri di accumulo (come esempio).

È più corretto formare il movimento tenendo i documenti nel ricevitore. Tutti i movimenti verranno effettuati dal documento stesso dopo il bonifico. Il secondo argomento a difesa delle impostazioni predefinite è la riduzione delle dimensioni del file durante il caricamento.

Alcuni documenti (soprattutto nelle configurazioni standard) generano movimenti su più registri. Scaricare tutta questa roba renderà il file XML risultante troppo grande. Ciò potrebbe complicare il successivo trasporto e caricamento nella base del ricevitore. Più grande è il file di dati, maggiore sarà la quantità di RAM necessaria per elaborarlo. Durante la mia pratica, ho avuto l'opportunità di imbattermi in file di caricamento di dimensioni indecentemente grandi. Tali file rifiutavano completamente di essere analizzati utilizzando strumenti standard.

Quindi, lasciamo tutte le impostazioni predefinite e carichiamo la descrizione della configurazione in un file. Ripetiamo una procedura simile per la seconda base.

Aprire il CD e selezionare nel menu principale “Directory” -> “Configurazioni”. La directory memorizza le descrizioni delle strutture di tutte le configurazioni che possono essere utilizzate per creare conversioni. Carichiamo la descrizione della configurazione una volta e quindi possiamo utilizzarla più volte per creare conversioni diverse.

Nella finestra della directory, fare clic sul pulsante “ Aggiungere” e nella finestra che appare, seleziona il file che descrive la configurazione. Seleziona la casella di controllo "Carica in una nuova configurazione" e fai clic sul pulsante "Carica". Eseguiamo azioni simili con la descrizione della struttura della seconda configurazione.

Ora sei pronto per creare le regole di scambio. Nel menu principale del CD, seleziona “Directory” -> “Conversioni”. Aggiungi un nuovo elemento. Nella finestra per la creazione di una nuova conversione è necessario specificare: la configurazione di origine (selezionare UT) e la configurazione di destinazione (selezionare “Ricevitore”). Successivamente, apri la scheda “Avanzate” e compila i seguenti campi:

  • nome del file delle regole di scambio: le regole di scambio create verranno salvate con questo nome. Puoi modificare il nome del file in qualsiasi momento, ma è meglio impostarlo ora. Ciò farà risparmiare tempo in futuro. Ho chiamato le regole per l'esempio demo: "rules-ut-to-priemnik.xml".
  • name - il nome della conversione. Il nome può essere assolutamente qualunque, io mi sono limitato a “Demo. UT al ricevitore."

Questo è tutto, fai clic su "Ok". Subito appare davanti a noi una finestra che ci chiede di creare tutte le regole in automatico. Accettare un'offerta così allettante darà al master il comando di analizzare automaticamente la descrizione delle configurazioni selezionate e generare autonomamente regole di scambio.

Puntiamo subito le “i”. La procedura guidata non sarà in grado di generare nulla di serio. Tuttavia, questa possibilità non dovrebbe essere scartata. Se è necessario stabilire uno scambio tra configurazioni identiche, i servizi di uno specialista saranno molto utili. Per il nostro esempio è preferibile la modalità manuale.

Diamo uno sguardo più da vicino alla finestra "Impostazioni regole di Exchange". L'interfaccia può sembrare un po' confusa: un gran numero di schede piene di controlli. In effetti, non tutto è così difficile; inizi ad abituarti a questa follia dopo poche ore di lavoro con l'applicazione.

In questa fase siamo interessati a due schede: “Regole di conversione degli oggetti” e “Regole di caricamento dei dati”. Innanzitutto dobbiamo configurare le regole di corrispondenza, ad es. confrontare oggetti di due configurazioni. Nel secondo, determinare i possibili oggetti che saranno disponibili all'utente per il caricamento.

Nella seconda metà della scheda “Regole di conversione oggetto” è presente un pannello aggiuntivo con due schede: “Conversione proprietà” e “ Conversione di valori" Il primo selezionerà le proprietà (dettagli) dell'oggetto selezionato e il secondo è necessario per lavorare con valori predefiniti (ad esempio elementi di directory predefiniti o elementi di enumerazione).

Ottimo, ora creiamo le regole di conversione per le directory. È possibile eseguire questa azione in due modi: utilizzare la procedura guidata di sincronizzazione degli oggetti (il pulsante "") o aggiungere manualmente la corrispondenza per ciascun oggetto.

Per risparmiare spazio, utilizzeremo la prima opzione. Nella finestra della procedura guidata, deseleziona il gruppo “ Documenti” (ci interessano solo le directory) ed espandere il gruppo “ Directory" Scorriamo attentamente l'elenco e guardiamo i nomi dei libri di consultazione che possono essere confrontati.

Nel mio caso, ci sono tre directory di questo tipo: Nomenclatura, Organizzazioni e Magazzini. Esiste anche una directory chiamata Clients, che ha lo stesso scopo di " Controparti"dalla configurazione" UT" È vero, il maestro non poteva confrontarli a causa dei loro nomi diversi.

Possiamo risolvere questo problema da soli. Troviamo nella finestra “ Corrispondenze di oggetti»libro di consultazione« Clienti", e nella colonna "Origine" selezionare la directory "Controparti". Quindi seleziona la casella nella colonna "Tipo" e fai clic sul pulsante "Ok".

La procedura guidata di sincronizzazione degli oggetti offrirà la creazione automatica di regole per la conversione delle proprietà di tutti gli oggetti selezionati. Le proprietà verranno confrontate per nome e per la nostra dimostrazione questo sarà più che sufficiente, siamo d'accordo. La prossima domanda sarà una proposta per creare regole di caricamento. Accettiamolo anche noi.

La base per le regole dello scambio è pronta. Abbiamo selezionato gli oggetti per la sincronizzazione e le regole per la conversione delle proprietà e le regole di caricamento sono state create automaticamente. Salviamo le regole dello scambio in un file, quindi apriamo la banca informazioni "Sorgente" (nel mio caso è UT) e avviamo l'elaborazione del servizio al suo interno V8Exchan82.epf.

Prima di tutto, nella finestra di elaborazione, seleziona le regole di scambio che abbiamo creato. Rispondiamo affermativamente alla questione delle regole di caricamento. L'elaborazione analizzerà le regole di scambio e costruirà un albero di oggetti con lo stesso nome disponibili per il caricamento. Per questo albero possiamo impostare tutti i tipi di selezioni o nodi di scambio, cambiando quello di cui abbiamo bisogno per selezionare i dati. Vogliamo scaricare assolutamente tutti i dati, quindi non è necessario installare filtri.

Dopo aver completato il processo di caricamento dei dati in un file, vai su IB “ Ricevitore" Apriamo anche l'elaborazione in esso V8Exchan82.epf, solo che questa volta andiamo alla scheda "Caricamento dati". Selezionare il file di dati e fare clic sul pulsante "Download". Questo è tutto, i dati sono stati trasferiti con successo.

Problemi del mondo reale

La prima demo potrebbe essere fuorviante. Tutto sembra abbastanza semplice e logico. In realtà, questo non è del tutto vero. Nel lavoro reale sorgono problemi difficili o del tutto impossibili da risolvere utilizzando solo mezzi visivi (senza programmazione).

Per non rimanere deluso dalla tecnologia, ho preparato diversi problemi della vita reale. Li incontrerai sicuramente al lavoro. Non sembrano così banali e ti fanno guardare la conversione dei dati da una nuova prospettiva. Considera attentamente gli esempi presentati e sentiti libero di usarli come frammenti quando risolvi problemi reali.

Compito n. 1. Compila i dettagli mancanti

Supponiamo di dover trasferire la directory “ Controparti" A questo scopo il ricevitore dispone di una directory simile “Clienti”. È completamente adatto per l’archiviazione dei dati, ma ha degli oggetti di scena “ Organizzazione”, che consente di separare le controparti in base all'appartenenza all'organizzazione. Per impostazione predefinita, tutte le controparti devono appartenere all'organizzazione attuale (questo può essere ottenuto dalla costante con lo stesso nome).

Esistono diverse soluzioni al problema. Valuteremo la possibilità di inserire i dettagli” Organizzazione“proprio nel database” Ricevitore", cioè. al momento del caricamento dei dati. L'organizzazione attuale è memorizzata in una costante, pertanto non ci sono barriere all'ottenimento di questo valore. Apriamo la regola di conversione degli oggetti (di seguito denominata PKO)” Clienti” (doppio clic sull'oggetto) e nella procedura guidata di impostazione delle regole, andare alla sezione “Gestori eventi”. Nell’elenco dei gestori troveremo “ Dopo il download”.

Descriviamo il codice per ottenere l'organizzazione attuale e quindi assegnarla ai dettagli. Nel momento in cui viene attivato il gestore "Dopo il caricamento", l'oggetto sarà completamente formato, ma non ancora scritto nel database. Nessuno ci vieta di modificarlo a nostra discrezione:

Se NON Object.ThisGroup Allora Object.Organization = Constants.CurrentOrganization.Get(); fineSe;

Prima di compilare i dettagli " Organizzazione"È necessario verificare il valore dell'attributo" Questo è un gruppo" Per il libro di consultazione " Clienti"La funzionalità gerarchica è impostata, quindi è necessario verificare il gruppo. Compila tutti i dettagli in modo simile. Assicurati di leggere la guida per altre opzioni del gestore " Dopo il caricamento" Ad esempio, tra questi c'è il parametro “ Rifiuto" Se gli assegni il valore "True", l'oggetto non verrà scritto nel database. Diventa così possibile limitare gli oggetti che possono essere scritti al momento del caricamento.

Compito n. 2. Dettagli per il registro delle informazioni

Nella directory “ Controparti"Configurazioni UT, dettagli disponibili" Acquirente" E " Fornitore" Entrambi i dettagli sono di tipo “ Booleano” e sono utilizzati per determinare la tipologia della controparte. Nell’IB” Ricevitore", nella directory " Clienti“Non ci sono dettagli simili, ma esiste un registro delle informazioni” Tipi di clienti" Esegue una funzione simile e può memorizzare più attributi per un client. Il nostro compito è trasferire i valori dei dettagli in voci separate nel registro delle informazioni.

Sfortunatamente, anche in questo caso i soli mezzi visivi non possono farcela. Partiamo in piccolo, creiamo un nuovo software per il registro delle informazioni” Tipi di clienti" Non citare nulla come fonte. Evita di creare automaticamente regole di caricamento.

Il passaggio successivo è creare le regole di caricamento. Vai alla scheda appropriata e fai clic su " Aggiungere" Nella finestra per l'aggiunta delle regole di caricamento, compila:

  • Metodo di campionamento. Modifica ad “Algoritmo arbitrario”;
  • Regola di conversione. Selezionare il registro informativo “Tipologie Clienti”;
  • Codice (nome) della regola. Annotarlo come “Caricamento tipi di client”;

Ora devi scrivere il codice per selezionare i dati da caricare. Il parametro “ Campionamento dei dati" Possiamo inserire una raccolta con un set di dati preparato al suo interno. Parametro " Campionamento dei dati" può assumere vari valori: risultato della query, selezione, raccolte di valori, ecc. Lo inizializziamo come una tabella di valori con due colonne: client e tipo client.

Di seguito è riportato il codice per il gestore eventi “ Prima dell'elaborazione" Inizializza il parametro “ Campionamento dei dati" seguito dall'inserimento dei dati dalla directory " Controparti" Qui dovresti prestare attenzione a compilare la colonna “ Tipo di cliente" In “UT” i nostri attributi sono di tipo “Booleano” e il destinatario è un'enumerazione.

In questa fase non possiamo convertirli nel tipo richiesto (non è nell'UT), quindi per ora li lasceremo sotto forma di stringhe. Non sei obbligato a farlo, ma voglio immediatamente mostrare come eseguire il cast su un tipo mancante nel sorgente.

DataFetch = Nuova TabellaValori(); DataSelection.Columns.Add("Cliente"); DataSelection.Columns.Add("ClientType"); SelectingDataFromDirectory = Directory.Accounts.Select(); Durante il ciclo SelectingDataFromDirectory.Next() Se SelectingDataFromDirectory.ThisGroup quindi continua;

fineSe; Se la selezione dei dati da Directory.Buyer allora NewRow = Data Selection.Add(); NewRow.Client = DataFetchFromDirectory.Link; Tipi di clienti NewRow.ClientType = "Cliente";

fineSe;

Se DataFetchFromDirectory.Supplier Allora NewRow = DataFetch.Add(); NewRow.Client = DataFetchFromDirectory.Link; NewString.ClientType = "Fornitore";

fineSe; FineCiclo;

Salviamo la regola di caricamento dei dati e torniamo alla scheda "

Regole di conversione degli oggetti

" Aggiungiamo per il registro delle informazioni “

Per risparmiare spazio, non fornirò il codice (puoi sempre fare riferimento alle fonti) della richiesta: non c'è nulla di insolito in esso. Ordiniamo la selezione risultante e inseriamo i risultati ordinati nel parametro già familiare " Campionamento dei dati" È ancora una volta conveniente utilizzare una tabella di valori come raccolta:

DataFetch = Nuova TabellaValori(); //Ci sarà un'altra parte della tabella qui Data Selection.Columns.Add(“Products”); //Qui ci sarà anche una parte tabellare Data Selection.Columns.Add(“Services”); SelectionData.Columns.Add("Link");

Compito n. 4. Trasferimento di dati a un'operazione

Se un'organizzazione utilizza diversi sistemi contabili, prima o poi sarà necessario migrare i dati con la successiva generazione di transazioni.

Nella configurazione “ BP“esiste un documento universale” Operazione” ed è ideale per formare più fili. C'è solo un problema: il documento è realizzato in modo astuto e i dati non possono essere trasferiti così facilmente.

Troverai un esempio di tale conversione nel codice sorgente dell'articolo. La quantità di codice si è rivelata piuttosto grande, quindi non ha senso pubblicarlo insieme all'articolo. Lasciatemi solo dire che il nuovo caricamento utilizza un algoritmo arbitrario nelle regole per il caricamento dei dati.

Compito n.5. Sincronizzazione dei dati su più dettagli

Abbiamo già visto diversi esempi, ma non abbiamo ancora parlato della sincronizzazione degli oggetti durante la migrazione. Immaginiamo di dover trasferire le controparti e alcune di esse sono probabilmente presenti nel database del ricevente. Come trasferire i dati e impedire la visualizzazione di duplicati? A questo proposito, il CD offre diversi modi per sincronizzare gli oggetti trasferiti.

Il primo è per identificatore univoco. Molti oggetti hanno un identificatore univoco che garantisce l'unicità all'interno di una tabella. Ad esempio, nella directory “ Controparti” non possono esserci due elementi con gli stessi identificatori. Il CD esegue i calcoli per questo e per tutti i PCO creati, una ricerca per identificatore è immediatamente abilitata per impostazione predefinita. Durante la creazione del PCO, dovresti aver prestato attenzione all'immagine di una lente di ingrandimento accanto al nome dell'oggetto.

La sincronizzazione tramite un identificatore univoco è un metodo affidabile, ma non è sempre appropriato. Quando si uniscono le directory “ Controparti" (da diversi sistemi diversi) non aiuterà molto.

In questi casi, è più corretto sincronizzare gli oggetti secondo diversi criteri. È più corretto cercare le controparti per INN, KPP, Nome o suddividere la ricerca in più fasi.

La conversione dei dati non limita lo sviluppatore nella definizione dei criteri di ricerca. Consideriamo un esempio astratto. Supponiamo di dover sincronizzare le directory” Controparti" da diverse basi di informazione. Prepariamo il PKO e nelle impostazioni delle regole di conversione degli oggetti selezioniamo la casella " Continua a cercare nei campi di ricerca se l'oggetto destinatario non viene trovato in base all'identificatore" Con questa azione abbiamo immediatamente definito due criteri di ricerca: tramite un identificatore univoco e campi personalizzati.

Abbiamo il diritto di scegliere noi stessi i campi. Selezionando TIN, KPP e Nome, indicheremo immediatamente diversi criteri di ricerca. Comodo? Già, ma ancora una volta questo non basta. E se volessimo cambiare i criteri di ricerca? Ad esempio, prima cerchiamo la combinazione TIN+KPP e, se non troviamo nulla, iniziamo a tentare la fortuna con il nome.

Un tale algoritmo è perfettamente implementabile. Nel gestore dell'evento “ Campi di ricerca” possiamo specificare fino a 10 criteri di ricerca e per ognuno di essi definire la propria composizione dei campi di ricerca:

Se SearchOptionNumber = 1 allora SearchPropertyNameString = "TIN, KPP"; AltrimentiIfSearchOptionNumber = 2 ThenSearchPropertyNameString = "Nome"; fineSe;

Ci sono sempre diverse soluzioni

Qualsiasi attività ha diverse soluzioni e il trasferimento di dati tra diverse configurazioni non fa eccezione. Ogni sviluppatore ha il diritto di scegliere il proprio percorso di soluzione, ma se devi sviluppare costantemente migrazioni di dati complesse, ti consiglio vivamente di prestare attenzione al "". All'inizio potrebbe essere necessario investire risorse (tempo) nella formazione, ma saranno più che ripagate nel primo progetto più o meno serio.

A mio parere, l'azienda 1C ignora ingiustamente l'argomento dell'utilizzo della conversione dei dati. Durante l'intera esistenza della tecnologia, è stato pubblicato un solo libro: "1C: Enterprise 8. Conversione dei dati: scambio tra soluzioni applicative". Il libro è piuttosto vecchio (2008), ma è comunque consigliabile familiarizzarsi con esso.

La conoscenza delle piattaforme è ancora necessaria

"è uno strumento universale, ma se prevedi di utilizzarlo per creare migrazioni di dati da configurazioni sviluppate per la piattaforma 1C:Enterprise 7.7, dovrai dedicare del tempo a familiarizzare con il linguaggio integrato. La sintassi e l'ideologia della lingua sono molto diverse, quindi dovrai dedicare del tempo all'apprendimento. Altrimenti il ​​principio resta lo stesso.

Stampa (Ctrl+P)

Conversione dei dati, edizione 3.0

Lezione 1. Preparazione per lavorare con KD3.0

Conversione dei dati, edizione 3.0(ulteriore KD3.0) – è uno dei componenti della tecnologia di scambio dati attraverso il formato Dati aziendali. KD3.0 non sostituisce la configurazione Conversione dei dati, edizione 2.0(ulteriore KD2.0). Questo è un nuovo standard che è molto diverso da KD 2.0. Scopo principale KD3.0 – si tratta della creazione di un codice di programma per un modulo gestore di scambio, costituito da procedure e funzioni che implementano la logica di caricamento dei dati presentati nel formato Dati aziendali, nonché la logica per caricare i dati nel formato.

Fig 1 Modulo Gestore generale del cambio

KD3.0 può essere scaricato da https://users.v8.1c.ru/

Revisione 3.0.5.3, destinata all'uso con la versione del sistema
1C:Enterprise 8.3 non è inferiore a 8.3.10 e l'edizione 3.0.4.3 deve essere utilizzata con la versione del sistema 1C:Enterprise 8.3 non inferiore a 8.3.8.

La consegna KD3.0 contiene la seguente elaborazione esterna

  • Elaborazione MD83Exp.epf"Caricamento di una descrizione della struttura dei metadati della configurazione 8.3" - è destinato al caricamento di una descrizione della struttura dei metadati di qualsiasi configurazione implementata sulla piattaforma 1C:Enterprise 8.3.
  • Elaborazione Caricamento delle regole di sincronizzazione.epf“Caricamento delle regole di sincronizzazione tramite formato universale” utilizzato durante la preparazione dei file delle regole di conversione destinati al successivo caricamento nella configurazione “Conversione dati”, edizione 3.0.
  • Il file “Configuration Description.htm” contiene una breve descrizione
    funzionalità di configurazione di base
    “Conversione dei dati”, edizione 3.0.

Ulteriori informazioni sulla configurazione “Conversione dati”, versione 3.0
vedere http://its.1c.ru/db/metod8dev#content:5846:hdoc

1. Preparazione per impostare le regole

Per caricare la struttura del formato, è necessario prima aprire il database di configurazione in modalità configuratore e scaricare i pacchetti XDTO dalla configurazione nei file *.xsd.

È necessario scaricare tutti i pacchetti associati al formato. I nomi dei file non sono di fondamentale importanza. È inoltre necessario caricare il pacchetto XDTO ExchangeMessage

Dopo aver caricato il formato XDTO nel CD 3.0, vengono compilate le directory “Format Objects”, “Format Properties”, “Format Values”

IN libro di consultazione “Formato oggetti” caricamento:

  • Oggetti con il tipo "ObjectTypeXDTO", che riflettono i tipi di dati di riferimento (documenti, directory)
  • Oggetti di tipo "XDTOValueType" contenenti un'enumerazione. Riflettono dati predefiniti (ad esempio enumerazioni)

IN libro di consultazione “Proprietà formato” caricamento:

  • Proprietà degli oggetti “ObjectTypeXDTO”. Allo stesso tempo, gli oggetti stessi sono quelli che sono stati caricati in “Formato Oggetti”
  • Oggetti con il tipo "ObjectTypeXDTO" e le relative proprietà che riflettono parti tabulari e dettagli delle parti tabulari

Le proprietà degli oggetti "XDTOValueType", che sono elementi di dati predefiniti, vengono caricate nel libro di riferimento "Format Values". Allo stesso tempo, gli oggetti stessi sono quelli che sono stati caricati in “Formato Oggetti”

1.2. Elaborazione “Caricamento struttura configurazione”

Questa elaborazione carica la struttura dei metadati di configurazione nell'infobase Conversione dati ed.3.

Per scaricare informazioni sulla struttura dell'infobase, viene utilizzata l'elaborazione MD83Exp.epf, incluso nel kit di consegna per la configurazione KD3.0

Per l'infobase la cui struttura deve essere scaricata, eseguire i seguenti passaggi:

  1. Apri l'infobase in modalità Enterprise.
  2. Aprire l'elaborazione esterna MD83Exp.epf(Menu File - Apri).
  3. Specificare il nome del file in cui salvare la struttura dell'infobase.
  4. Controllare le impostazioni nel modulo di elaborazione (tutti i flag devono essere cancellati).
  5. Premi il pulsante Scaricare.

Dopo aver scaricato la struttura di configurazione, le directory vengono compilate

  • Oggetti di metadati
  • Proprietà dell'oggetto
  • Valori degli oggetti.

Direttorio Oggetti di metadati contiene informazioni sugli oggetti dei metadati di configurazione. Il tipo di oggetti viene registrato nell'attributo corrispondente. A seconda del valore dell'attributo Type, vengono compilati i dettagli che descrivono le proprietà dell'oggetto metadati. I dettagli degli oggetti di metadati sono descritti nella directory subordinata Proprietà dell'oggetto. I valori degli oggetti (valori di enumerazione e nomi di elementi predefiniti) sono descritti in una directory subordinata Valori degli oggetti.

Prima di caricare le regole di sincronizzazione tramite un formato universale, è necessario caricare il formato dei dati dai file (utilizzando Processing(vedi punto 1.1), e deve essere caricata anche la configurazione per la quale sono configurate le regole di sincronizzazione. La configurazione viene caricata utilizzando l'elaborazione ( vedere punto 1.2) . Nota anche questo elemento della directory da creare Conversioni . Per effettuare la conversione è necessario specificare la configurazione e una o più versioni del formato a cui è destinata la conversione.

1.3.1 Preparazione dei file per il caricamento delle regole

Nell'infobase vengono preparati i file per i quali verrà effettuato lo scambio in un formato universale (ad esempio, Contabilità aziendale ed.3.0).

Per preparare i file delle regole, è necessario accedere all'infobase in modalità Enterprise e avviare l'elaborazione Caricamento delle regole di sincronizzazione tramite un formato universale, che è incluso nella consegna della configurazione Conversione dati ed.3.

Per preparare un file con un modulo gestore, è necessario entrare nella base informativa in modalità Configuratore e salvare il modulo generale Gestore di Exchange tramite formato universale in un file di testo. È possibile specificare qualsiasi nome di file.

Tutti i file preparati devono trovarsi nella stessa directory.

1.3.2 Caricamento delle regole di sincronizzazione

Eseguito nell'infobase Conversione dati ed.3 mediante elaborazione Caricamento delle regole di sincronizzazione dai file.

Nel modulo di trattamento indicare:

  • Directory di Exchange in cui si trovano i file precedentemente preparati
  • Conversione
  • Composizione dei dati scaricati
    • oppure specificare l'opzione "tutti".
    • oppure selezionare il caricamento selettivo e configurare l'elenco delle regole da caricare
  • File con il modulo di gestione di Exchange (non richiesto se viene eseguito il caricamento selettivo e i gestori non vengono caricati)
1.3.3 Funzionalità di caricamento in un database non vuoto
  • Se la regola caricata esiste e appartiene a una sola conversione (quella corrente), la regola verrà modificata. In questo caso, l'analisi delle differenze tra le regole esistenti e quelle caricate non viene eseguita; la regola viene riempita e scritta incondizionatamente;
  • Se la regola caricata esiste e appartiene a più elementi della directory Conversioni, inclusa la conversione corrente, verrà creata una nuova regola e collegata alla conversione corrente. La “vecchia” regola rimarrà invariata e resterà legata ad altre conversioni.
  • I gruppi di regole non vengono caricati. Ma se la regola è stata assegnata a un determinato gruppo, quando viene ricaricata in questa regola, queste informazioni verranno salvate.
È disponibile una versione aggiornata di DB 1C Trade Management (di seguito denominata UT) edizione 10.2 sulla piattaforma 8.1.
Ed esiste un database di contabilità 1C standard sulla piattaforma 8.3.

Compito:

Stabilire lo scambio di dati tra database.

Soluzione:

Conversione dati 1C installata, edizione 2.1.
Caricato.
Lancio lo “Start Assistant” (Fig. 1).

1. Avanti.
2. Selezionare "Crea nuove regole di scambio dati (da zero)". Prossimo.
3. Nel terzo passaggio, il programma chiede di specificare le configurazioni di origine e destinazione.
Creo una configurazione sorgente (1C UT):
- poiché ho 1C UT sulla piattaforma 8.1, prendo l'elaborazione esterna MD81Exp.epf dal disco ITS (puoi scaricarlo).
- Apro 1C UT. File --> Apri --> MD81Exp.epf .

Specifico il file in cui verranno caricate le informazioni sulla struttura dei metadati. Deve essere in formato XML.

Faccio clic sul pulsante "Carica".

Faccio lo stesso con la base del ricevitore. Con la contabilità 1C 8.3. Solo per questo utilizzo l'elaborazione esterna MD83Exp.epf (puoi scaricarlo).

Torno alla conversione dei dati 1C.

Ci siamo fermati al punto 3. Faccio clic sul pulsante "Nuovo" e specifico il file della struttura dei metadati generato. Questa struttura verrà caricata nella directory di configurazione.

4. Nel quarto passaggio, seleziona l'opzione "Crea automaticamente tutte le possibili regole di scambio dati".

Ora una nuova finestra si è aperta davanti a noi. Sono state create regole di conversione degli oggetti. È necessario creare regole per il download dei dati. Per fare ciò, vai alla seconda scheda “Regole di caricamento dei dati” e fai clic sul pulsante “Crea regole di caricamento”.

Per impostare lo scambio di dati tra varie configurazioni (comprese quelle scritte autonomamente) in 1C, esiste un meccanismo molto flessibile per impostare il trasferimento di informazioni: la configurazione "Conversione dati" (CD) 1C. Diamo un'occhiata a come funziona questo meccanismo e proviamo a impostare regole di scambio tra due configurazioni tipiche:

  • Contabilità aziendale (versione demo), edizione 3.0.30;
  • Gestione degli stipendi e del personale (versione demo), edizione 3.0.25.

Lo strumento di configurazione per impostare le regole di scambio sarà Data Conversion versione 2.1.82. Il lavoro sarà svolto sulla piattaforma 8.3.9.

È importante notare che Data Conversion consente di organizzare lo scambio non solo tra i database della versione 8 del programma, ma anche tra le versioni 7 e 8 della piattaforma 1C.

Assistente all'avvio

Dopo aver installato la configurazione “Conversione dati” e averla avviata, la prima finestra che si apre è l'Assistente di avvio (Fig. 1).

Puoi richiamarlo nuovamente dal menu Operazioni->Elaborazione o da Aiuto, dove questa elaborazione è evidenziata come comando separato.

Poiché non prevediamo di utilizzare le regole di trasferimento standard, ma ne creeremo di nostre, nella finestra successiva selezioneremo l'elemento appropriato dall'elenco (Fig. 2).

Fig.2

Oltre a creare nuove regole di scambio, possiamo:


A questo punto, dovremmo prenderci una piccola pausa dalla creazione delle regole di scambio e parlare dei file della struttura di configurazione.

File di struttura dei metadati

Il pacchetto di configurazione “Conversion” include diversi processori esterni che consentono di scaricare la struttura dei metadati in un file xml.

Regola importante! L'elaborazione dello scarico della struttura per database diversi deve appartenere alla stessa versione del CD.

Per le diverse versioni della piattaforma, 1C ha implementato diverse elaborazioni di scarico della struttura:

  • MD77Exp.ert – permette di salvare in un file la struttura di configurazione a sette database;
  • MD82EXP.epf – esporta la struttura dei database in esecuzione su piattaforme versione 8.0-8.2;
  • MD83EXP.epf – progettato per la piattaforma 8.3.

Poiché nelle condizioni del nostro compito è necessario organizzare uno scambio tra database in esecuzione sulla versione 8.3, utilizzeremo la terza elaborazione (Fig. 4).

Fig.4

Qui dobbiamo specificare il file in cui verrà caricata la struttura e possiamo configurare una serie di tabelle ausiliarie che parteciperanno allo scambio.

Dopo che i file di configurazione di destinazione e di origine sono stati scaricati, le relative informazioni devono essere caricate in Data Conversion.

Per fare questo:


Per la seconda base ripetiamo gli stessi passaggi.

Torniamo al nostro assistente.

Continua a lavorare con l'assistente

Dopo aver aggiunto i nostri due database alla directory, appare come (Fig. 6).

Continuiamo a lavorare con l'assistente

Nella finestra successiva (Fig. 7) dobbiamo selezionare la base ricevente e la base sorgente.

Fig.7

E ora arriviamo alla finestra in cui ci verrà chiesto di determinare su quali leggi e corrispondenze si baserà il nostro scambio (Fig. 8).

Fig.8

Il programma può creare autonomamente scambi di dati utilizzando gli algoritmi in esso incorporati. Selezionando il secondo interruttore potremo selezionare tra le regole create automaticamente quelle più adatte a risolvere il nostro problema. Se vogliamo determinare in modo indipendente cosa e come trasferire e con quali dettagli confrontare i dati, dobbiamo impostare l'interruttore sulla terza posizione.

Poiché vogliamo creare le nostre regole, prenderemo la terza strada.

Creazione di una regola per lo scambio tra directory

Imposta l'interruttore sul terzo elemento dell'elenco e fai clic sul pulsante "Esegui".

Siamo nella procedura guidata di impostazione della voce della directory “Regole di conversione oggetto” (Fig. 9)

Fig.9

Nel database di origine, dobbiamo selezionare un oggetto i cui dati verranno sincronizzati.

Nel database del ricevitore c'è una tabella in cui andranno questi dati.

Nella fase successiva dobbiamo decidere i parametri di caricamento:

  • Quali dettagli verranno utilizzati per cercare una corrispondenza;
  • Cosa fare con gli elementi esistenti;
  • Se creare elementi mancanti;
  • Come gestire i collegamenti;
  • Quali regole utilizzare per numerare i nuovi elementi.

E carica i parametri.

Se decidiamo di eseguire la corrispondenza automatica dei dati, salteremo questo passaggio.

Alla fine, dobbiamo caricare le regole create su disco (Fig. 10).

Fig.10

Scambio di dati

Effettueremo un ulteriore scambio di dati utilizzando l'elaborazione V8Exchan83.epf (Fig. 11), anch'essa inclusa nel pacchetto di consegna. L'utilizzo dello scambio dati standard, che fa parte della configurazione o dell'elaborazione autoscritta, quando si utilizzano le regole create nel CD, può comportare il verificarsi di una situazione eccezionale.

Fig.11

E ancora una volta: è estremamente importante che la versione del file di caricamento, di configurazione e di elaborazione dello scambio corrisponda e provenga dalla stessa consegna, solo in questo caso ti proteggerai il più possibile da ogni tipo di problema.

In ogni caso, se la verifica della correttezza del trasferimento dei dati evidenzia la presenza di situazioni di conflitto ed errori, l'elaborazione del trasferimento consente di cancellare tali dati dal database.

I migliori articoli sull'argomento