Come configurare smartphone e PC. Portale informativo
  • casa
  • In contatto con
  • Si è verificato un errore critico 1c. Attenzione!!! Si è verificato un errore durante l'aggiornamento dei dati dopo l'ultima ristrutturazione

Si è verificato un errore critico 1c. Attenzione!!! Si è verificato un errore durante l'aggiornamento dei dati dopo l'ultima ristrutturazione

Ci siamo trasferiti su un nuovo server. Funziona SQL e 1C. Rispetto a quelli vecchi era molto più fresco. E anche il test di Gilev lo ha confermato: contro 10-15 sui vecchi server, ne ha dato 39. Pertanto, 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 (di cui parleremo in un post separato) e abbiamo deciso di riavviare il server, fortunatamente la velocità di riavvio è stata di 2 minuti (su altri server fino a 10). Successivamente, quando accediamo a 1C riceviamo il seguente messaggio:

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

Dopo aver cliccato su "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 era OK.

Ho trovato informazioni su Internet che lo stesso errore si verifica durante l'aggiornamento dinamico.

Le soluzioni proposte online non sono state di aiuto immediato, ma insieme ad altre azioni hanno dato risultati. Quindi cosa ho fatto:

Soluzione:

  1. Cosa mancava alle soluzioni dalla rete:

sp_configure 'consenti aggiornamenti', 1
riconfigurare con override
andare

2. Mettere il database in modalità di ripristino

altera il set di database EMERGENCY, SINGLE_USER

3. Eseguiamo test del database:

dbcc checkdb('nome_db', REPAIR_ALLOW_DATA_LOSS)

4. Uscire dal database dalla modalità di ripristino:

altera il database impostato ONLINE, MULTI_USER

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

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

Questi record sono responsabili dell'aggiornamento dinamico: non devi aver paura di eliminarli.

Nelle versioni funzionanti delle query dei database:

seleziona * da Config WHERE FileName = 'commit'

seleziona * da Config WHERE FileName = '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ò iniziare a funzionare dopo aver rimosso la prima bandiera.

Sfondo

Avevamo bisogno di creare un nuovo registro di informazioni “MessageTrackingLog”. Aggiunto alla configurazione, caricato i dati. Poi è arrivato il lavoro di ottimizzazione. Ho dovuto cambiare la struttura del registro. Ma non c'era!

Qui è tutto chiaro. I record sono diventati non univoci, è necessario eliminarli!

Il modo più semplice è:

NewRecord = InformationRegisters.MessageTrackingLog.CreateRecordSet(); NuovoRecord.Write();

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

Errore

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


Cosa rappresenta l'errore:

Si è verificato un errore critico durante il processo di aggiornamento dell'infobase
per colpa di:
Tentativo 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 oggetto "dbo._InfoRgChngR34546NG" e il nome indice "_InfoR34546_ByNodeMsg_RNTSRRRRRRNG". Il valore della chiave duplicato è (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 di SQL. Abbiamo un registro "MessageTrackingLog", in SQL si trova nella tabella " _InfoR34546". Puoi verificarlo utilizzando un'elaborazione speciale o il metodo "poke" (non dobbiamo farlo perché il nome della tabella è già indicato nel testo dell'errore).

Adesso ti spiego cosa è successo. Quando abbiamo caricato i dati nel registro, in SQL sono finiti 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 questo problema, dobbiamo cancellare la tabella SQL "_InfoRgChngR34546".

Te lo dirò usando l'esempio di "Microsoft SQL Server Management Studio". Andiamo a " Management Studio". Trova il nostro database, apri la scheda delle tabelle, fai clic su qualsiasi e fai clic sul pulsante "Nuova query": Ora digitiamo la query

Tronca la tabella "_InfoRgChngR34546 "

Potresti avere un altro tavolo! Non dimenticare!

E premi esegui o premi "F5". Questo è quello che dovrebbe essere il risultato:

Questo è tutto, ora puoi aggiornare in sicurezza 1C e non ci saranno errori!

Quando si lavora in 1C:Enterprise, potrebbe apparire il seguente messaggio: "Per funzionare con la nuova versione di 1C:Enterprise, l'infobase deve essere convertito." Perché viene visualizzata questa finestra e come posso risolvere l'errore?

Nella maggior parte dei casi, il motivo dell'aspetto della finestra è la recente transizione 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 composizione diversa. Tutto ciò che deve essere fatto è convertire il database (la cui struttura corrisponde alla piattaforma obsoleta) nel formato più recente.

Conversione della banca dati

Questa procedura è semplice, tuttavia è consigliabile creare prima una copia di backup del database nel caso in cui si verifichi un errore durante la conversione (ad esempio, il computer si spegne, causando base informativa 1C, come il programma stesso, potrebbe essere danneggiato). Quindi applicare il seguente algoritmo di azioni:

  • Aprire il database in modalità configuratore;
  • Verrà visualizzato un messaggio che ti chiede di convertire l'infobase. Fare clic su conferma;

  • Chiudi il configuratore.

Apri il database: dovrebbe avviarsi senza problemi. Se la finestra di errore continua ad apparire dopo la conversione, puoi provare di nuovo la procedura. Se questo non aiuta, è necessario contattare un 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 nelle versioni precedenti.

Sabbiera

autorità 18 settembre 2013 alle 15:24

1C, ripristino della configurazione dell'infobase utilizzando MS SQL

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

Come si è scoperto in seguito, l'archivio della configurazione è stato distrutto e durante l'aggiornamento della configurazione è stata eliminata anche la configurazione del database dall'archivio. Un errore simile si è verificato prima durante gli aggiornamenti dinamici della sicurezza delle informazioni.

Perché Questo problema si è presentato più di una volta e ho deciso di condividere un'opzione di trattamento.

Al successivo avvio del configuratore compariva un errore: “Attenzione!!! Si è verificato un errore durante l'aggiornamento dei dati dopo l'ultima ristrutturazione. Devo ripetere l'aggiornamento? Se la risposta è sì, riceviamo il messaggio: “È stata rilevata un'operazione di salvataggio della configurazione incompleta. Per continuare a lavorare è necessario completare l'operazione” al termine della quale l'applicazione si chiude.

Analizzando questo problema, sono state trovate diverse soluzioni al problema, ciascuna soluzione funziona in casi diversi.

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

Viene distribuita una copia della sicurezza delle informazioni e viene eseguita la seguente richiesta:
USA GO ELIMINA DA .. GO INSERISCI IN .. ​​SELEZIONA * DA .. GO
In questo caso, la tabella in cui è memorizzata la configurazione della sicurezza delle informazioni viene riempita. Si consiglia di testare e correggere la sicurezza delle informazioni dopo questa operazione.

Opzione 2 (se non è presente alcun backup):

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

Viene eseguita la seguente query:
USA GO ELIMINA DA . DOVE FileName = "dbStruFinal" VAI ELIMINA DA . DOVE FileName = "commit" VAI
Stranamente, la base prende vita.

Tag: 1C Enterprise 8.2, SQL, ripristino della configurazione

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

I migliori articoli sull'argomento