Come configurare smartphone e PC. Portale informativo
  • casa
  • Recensioni
  • Si è verificato un errore critico durante l'aggiornamento di 1s. Errore di conversione dell'infobase

Si è verificato un errore critico durante l'aggiornamento di 1s. Errore di conversione dell'infobase

Quando si lavora in 1C:Enterprise, è possibile che venga visualizzato il seguente messaggio: "Per poter lavorare con la nuova versione di 1C:Enterprise, è necessario convertire l'infobase". Perché viene visualizzata questa finestra e come posso correggere l'errore?

Nella maggior parte dei casi, il motivo della comparsa della finestra è il recente passaggio del programma da una versione obsoleta della piattaforma a una più recente. Su diverse piattaforme base informativa 1C si forma a modo suo e assume una diversa composizione. Tutto quello che devi fare è convertire il database (la cui struttura corrisponde alla piattaforma obsoleta) nel formato più recente.

Conversione DB

Questa procedura è semplice, tuttavia si consiglia di creare prima una copia di backup del database, nel caso si verifichi un errore durante la conversione (ad esempio il computer si spegne, di conseguenza base informativa 1C, così come il programma stesso, possono essere danneggiati). Quindi applica il seguente algoritmo di azioni:

  • Aprire il database in modalità configuratore;
  • Vedrai un messaggio che ti chiede di convertire l'infobase. Conferma stampa;

  • Chiudere il configuratore.

Apri il database: dovrebbe avviarsi senza problemi. Se la finestra di errore continua ad apparire dopo la conversione, puoi riprovare la procedura. Nel caso in cui ciò non aiutasse, è necessario contattare il programmatore 1C. A volte il programma potrebbe bloccarsi durante l'esecuzione di un'operazione. Non è necessario intraprendere alcuna azione in questo momento.

Importante! Base informativa 1C, convertito dall'ultima versione del programma, non può essere aperto su versioni precedenti.

Sandbox

autorità 18 settembre 2013 alle 15:24

1C, ripristinando la configurazione dell'infobase tramite MS SQL

Una volta, ho riscontrato un problema: durante l'aggiornamento della configurazione dal repository, si è verificato un errore e 1C si è chiuso.

Come si è scoperto in seguito, lo spazio di archiviazione della configurazione è stato distrutto e, quando la configurazione è stata aggiornata, anche la configurazione del database è volata fuori dallo spazio di archiviazione. Un errore simile si è verificato in precedenza con un aggiornamento dinamico di IB.

Perché Questo problema è sorto più di una volta ha deciso di condividere l'opzione di trattamento.

Alla successiva esecuzione del configuratore si è verificato un errore: “Attenzione!!! Si è verificato un errore durante l'aggiornamento dei dati dopo l'ultima ristrutturazione. Riprovare l'aggiornamento?" se la risposta è sì, riceviamo il messaggio: “Rilevata operazione di salvataggio configurazione incompleta. Per continuare a lavorare, è necessario completare l'operazione ”quindi l'applicazione si chiude.

Durante l'analisi di questo problema, sono state trovate diverse soluzioni al problema, ciascuna soluzione funziona in casi diversi.

Opzione 1 (se hai un backup SQL con una copia con una configurazione identica):

Viene distribuita una copia dell'IB e viene richiesto il seguente costrutto:
UTILIZZA VAI CANCELLA DA .. VAI INSERISCI IN .. ​​SELEZIONA * DA .. VAI
Contemporaneamente viene ricaricata la tabella in cui è memorizzata la configurazione IS. Si consiglia di eseguire il test e la correzione dell'IS dopo questa operazione.

Opzione 2 (se non è disponibile il backup):

Questa opzione è stata considerata come l'ultima goccia. Perché la configurazione era in fase di sviluppo e si sono un po' dimenticati del backup, affidandosi allo storage.
Nel database, due record vengono eliminati dalla tabella "Config" dal valore nella colonna "FileName" - dbStruFinal e commit

Viene formulata la seguente richiesta:
USA GO CANCELLA DA . DOVE FileName = "dbStruFinal" VAI ELIMINA DA . DOVE NomeFile = "commit" VAI
Stranamente, la base prende vita.

Tag: 1s enterprise 8.2, SQL, ripristino configurazione

Questo articolo non è soggetto a commenti, poiché il suo autore non è ancora un membro a pieno titolo della community. Potrai contattare l'autore solo dopo che avrà ricevuto

sfondo

Era necessario creare un nuovo registro delle informazioni "MessageTrackingLog". Aggiunto alla configurazione, caricato i dati. Poi è arrivato il lavoro di ottimizzazione. Ho dovuto modificare la struttura del registro. Ma non c'era!

Tutto è chiaro qui. Le voci sono diventate non univoche, devi eliminarle!

Il modo più semplice è:

NewRecord =RegistersInfo.MessageTrackingLog.CreateRecordSet(); NuovoRecord.Record();

Con questo metodo cancelleremo molto rapidamente il registro in 1C (ma questo sarà anche un nostro errore).

Sbaglio

Sembrerebbe che il registro sia vuoto e puoi aggiornare 1C. Non voglio sorprenderti, ma ci sarà di nuovo un errore:


Qual è l'errore:

Si è verificato un errore critico durante l'aggiornamento dell'infobase
per colpa di:
Cercando di inserire un valore non univoco in un indice univoco:
Microsoft SQL Server Native Client 11.0: l'istruzione CREATE UNIQUE INDEX è stata interrotta perché è stata trovata una chiave duplicata per il nome dell'oggetto "dbo._InfoRgChngR34546NG" e il nome dell'indice "_InfoR34546_ByNodeMsg_RNTSRRRRRRNG". Il valore della chiave duplicata è (0x00000011,d7, , 27 settembre 4015 22:22, 768404.00.00.00.00.00.00).
HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, stato=1, gravità=10, nativo=1505, riga=1

Spiegazione

Comprendiamo la struttura SQL. Abbiamo un registro "MessageTrackingLog", in SQL è nella tabella " _InfoR34546". Puoi verificarlo con un'elaborazione speciale o il metodo "poke" (non è necessario farlo, perché il nome della tabella è già indicato nel testo dell'errore).

Ora lascia che ti spieghi cosa è successo. Quando abbiamo caricato i dati nel registro, in SQL sono entrati nella tabella " _InfoR34546". Quando abbiamo cancellato la tabella con il codice in 1C, questi dati sono stati eliminati dalla tabella " _InfoR34546", ma sono stati copiati nella tabella " _InfoRgChngR34546". Questo è diventato il problema.

Soluzione

Per risolvere il problema, dobbiamo cancellare la tabella SQL "_InfoRgChngR34546".

Ti parlerò dell'esempio di "Microsoft SQL Server Management Studio". Andiamo a " Management Studio". Troviamo il nostro database, apriamo la scheda Tabelle, clicchiamo su una qualsiasi e premiamo il pulsante "Nuova Query": Ora digitiamo la query

Tronca tabella "_InfoRgChngR34546"

Puoi avere anche un altro tavolo! Non dimenticare!

E premi Esegui o premi F5. Questo è il risultato che dovrebbe essere:

Tutto, ora puoi aggiornare in sicurezza 1C e non ci saranno errori!

Ci siamo trasferiti su un nuovo server. Su di esso SQL e 1C. Rispetto ai vecchi, era molto più fresco. E anche il test di Gilev lo ha confermato: sui vecchi server ha emesso 39 contro 10-15, quindi, subito dopo l'acquisto, abbiamo trasferito il database e abbiamo iniziato a lavorare.

Ma a un certo punto qualcosa è andato storto: gli utenti hanno iniziato a lamentarsi della lentezza del lavoro. Abbiamo effettuato alcune impostazioni per il server e i servizi (che sono l'argomento di un post separato) e abbiamo deciso di riavviare il server, poiché la velocità di riavvio era di 2 minuti (su altri server raggiungeva 10). Successivamente, entrando in 1C, riceviamo il seguente messaggio:

"Attenzione!!! Si è verificato un errore durante l'aggiornamento dei dati dopo l'ultima ristrutturazione. Riprovare l'aggiornamento?" "Non proprio"

Dopo aver cliccato sul pulsante "Sì", appare quanto segue:

"È stata rilevata un'operazione di salvataggio della configurazione incompleta. È necessario completare l'operazione per continuare".

La prima cosa che ho deciso di fare è stata CHECKDB in Managment Studio - dopo 2 ore di attesa (database da 500 GB) - tutto è a posto.

Nella vastità della rete ho trovato informazioni che lo stesso errore si verifica con gli aggiornamenti dinamici.

Le soluzioni proposte in rete non hanno aiutato subito, ma, insieme ad altre azioni, hanno dato un risultato. Quindi cosa ho fatto:

Soluzione:

  1. Cosa mancava per le soluzioni dalla rete:

sp_configure 'consenti aggiornamenti', 1
riconfigurare con override
andare

2. Trasferire il database in modalità di ripristino

modificare il set di database EMERGENCY, SINGLE_USER

3. Eseguiamo test del database:

dbcc checkdb('db_name', RIPARAZIONE_ALLOW_DATA_LOSS)

4. Portiamo il database fuori dalla modalità di ripristino:

modificare il set di database ONLINE, MULTI_USER

5. In linea di principio, se sei sicuro che tutto sia a posto con la base stessa, non puoi fare 2-4 punti. Successivamente, eseguiamo due query nel profiler SQL:

elimina dalla configurazione dove FileName = 'commit'
elimina dalla configurazione dove FileName = 'dbStruFinal'

Queste voci sono responsabili dell'aggiornamento dinamico: non puoi aver paura di eliminarle.

Nelle versioni funzionanti dei database, le query:

seleziona * da Config DOVE NomeFile = 'commit'

seleziona * da Config DOVE NomeFile = 'dbStruFinal'

sarà vuoto.

6. ripristinare le impostazioni:

sp_configure 'consenti aggiornamenti', 0
andare

7. Successivamente, siamo riusciti ad avviare il configuratore e il database ha iniziato a funzionare.

Inoltre, la base può funzionare dopo aver rimosso la prima bandiera.

Articoli correlati in alto