Došlo je do kritične pogreške tijekom ažuriranja 1c. Pogreška: "Došlo je do kritične pogreške tijekom procesa ažuriranja infobaze." C, vraćanje konfiguracije infobaze pomoću MS SQL-a

19.11.2019 Vijesti

Preselili smo se na novi server. Pokreće SQL i 1C. U usporedbi sa starim bio je puno hladniji. A Gilevov test je to također potvrdio: naspram 10-15 na starim poslužiteljima dao je 39. Stoga smo odmah nakon kupnje prenijeli bazu podataka i počeli raditi.

Ali u jednom trenutku nešto je pošlo po zlu - korisnici su se počeli žaliti spor rad. Napravili smo određene postavke za server i usluge (koje su tema za poseban post) i odlučili smo ponovno pokrenuti poslužitelj, srećom brzina ponovnog pokretanja je bila 2 minute (na drugim poslužiteljima je bila i do 10). Nakon toga, prilikom prijave u 1C dobivamo sljedeću poruku:

"Pažnja!!! Došlo je do pogreške prilikom ažuriranja podataka nakon posljednjeg restrukturiranja. Trebam li ponoviti ažuriranje? "Ne baš"

Nakon klika na "Da" pojavljuje se sljedeće:

“Otkrivena je nepotpuna operacija spremanja konfiguracije. Morate dovršiti operaciju da biste nastavili."

Prvo što sam odlučio napraviti je CHECKDB u Managment Studio - nakon 2 sata čekanja (baza od 500 GB) - sve je OK.

Na internetu sam pronašao informacije da se ista pogreška javlja tijekom dinamičkog ažuriranja.

Rješenja predložena na internetu nisu odmah pomogla, ali su zajedno s drugim akcijama dala rezultate. Pa što sam učinio:

Riješenje:

  1. Što je nedostajalo rješenjima s mreže:

sp_configure 'dopusti ažuriranja', 1
rekonfigurirati s nadjačavanjem
ići

2. Stavite bazu podataka u način oporavka

izmijeniti skup baze podataka EMERGENCY, SINGLE_USER

3. Vršimo testiranje baze podataka:

dbcc checkdb('db_name', REPAIR_ALLOW_DATA_LOSS)

4. Izađite iz baze podataka iz načina oporavka:

izmijeniti skup baze podataka ONLINE, MULTI_USER

5. U principu, ako ste sigurni da je sa samom bazom sve u redu, onda ne morate raditi točke 2-4. Zatim pokrećemo dva upita u SQL profileru:

izbriši iz konfiguracije gdje FileName = 'commit'
izbriši iz konfiguracije gdje FileName = 'dbStruFinal'

Ti su zapisi odgovorni za dinamičko ažuriranje - ne morate se bojati izbrisati ih.

U radnim verzijama upita baza podataka:

odaberite * iz konfiguracije WHERE FileName = 'commit'

odaberite * iz konfiguracije WHERE FileName = 'dbStruFinal'

bit će prazna.

6. vratite postavke:

sp_configure 'dopusti ažuriranja', 0
ići

7. Nakon ovoga uspjeli smo pokrenuti konfigurator i baza je proradila.

Također, baza može početi raditi nakon uklanjanja prve zastavice.

Kada radite u 1C:Enterprise, može se pojaviti sljedeća poruka: „Za rad nova verzija 1C:Poduzeća moraju proći transformaciju informacijska baza" Zašto se pojavljuje ovaj prozor i kako mogu riješiti grešku?

U većini slučajeva razlog pojavljivanja prozora je nedavni prijelaz programa iz zastarjela verzija platforme na noviju. Na različitim platformama baza podataka 1C formira se na svoj način i poprima drugačiji sastav. Sve što treba učiniti je konvertirati bazu (čija struktura odgovara zastarjeloj platformi) u najnoviji format.

Pretvorba baze podataka

Ovaj postupak je jednostavan, međutim, prvo se preporučuje stvoriti sigurnosna kopija bazu, u slučaju da se tijekom konverzije dogodi greška (na primjer, računalo se isključi, što rezultira baza podataka 1C, kao i sam program, mogu biti oštećeni). Zatim primijenite sljedeći algoritam radnji:

  • Otvorite bazu podataka u modu konfiguratora;
  • Vidjet ćete poruku u kojoj se od vas traži da pretvorite informacijsku bazu. Kliknite potvrdu;

  • Zatvorite konfigurator.

Otvorite bazu podataka - trebala bi se pokrenuti bez problema. Ako se prozor pogreške nastavi pojavljivati ​​nakon pretvorbe, možete pokušati ponovno. Ako to ne pomogne, trebate kontaktirati 1C programera. Ponekad se program može zamrznuti tijekom izvođenja operacije. U ovom trenutku nema potrebe ništa poduzimati.

Važno! Informacijska baza 1C, pretvoreno Najnovija verzija programi se ne mogu otvoriti na prethodnim verzijama.

Pješčanik

vlast 18. rujna 2013. u 15:24

1C, obnavljanje konfiguracije infobaze pomoću MS SQL-a

Jednom sam naišao na problem: prilikom ažuriranja konfiguracije iz repozitorija došlo je do kvara i 1C se zatvorio.

Kako se kasnije ispostavilo, pohrana konfiguracije je uništena, a prilikom ažuriranja konfiguracije i konfiguracija baze podataka je izbrisana iz pohrane. Slična se pogreška dogodila prije tijekom dinamičkih ažuriranja informacijske sigurnosti.

Jer Ovaj se problem pojavio više puta i odlučio sam podijeliti opciju liječenja.

Sljedeći put kada ste pokrenuli konfigurator pojavila se greška: “Pažnja!!! Došlo je do pogreške prilikom ažuriranja podataka nakon posljednjeg restrukturiranja. Trebam li ponoviti ažuriranje? Ako je odgovor potvrdan, dobivamo poruku: “Otkrivena je nepotpuna operacija spremanja konfiguracije. Za nastavak rada morate dovršiti operaciju” nakon čega se aplikacija zatvara.

Prilikom analize ovog problema, pronađeno je nekoliko rješenja problema, svako rješenje radi u različitim slučajevima.

Opcija 1 (ako imate SQL backup s kopijom s identičnom konfiguracijom):

Postavlja se kopija informacijske sigurnosti i izvršava se sljedeći zahtjev:
KORISTI GO DELETE FROM .. GO UMETNI U .. ​​ODABERI * FROM .. GO
U tom slučaju ponovno se popunjava tablica u kojoj je pohranjena konfiguracija informacijske sigurnosti. Preporučljivo je testirati i ispraviti informacijsku sigurnost nakon ove operacije.

Opcija 2 (ako nema sigurnosne kopije):

Ova opcija je preokrenuta kao posljednja slamka. Jer konfiguracija je bila u razvoju i malo su zaboravili na backup, oslanjajući se na pohranu.
U bazi podataka, dva zapisa se brišu iz tablice “Config” prema vrijednosti u stupcu “FileName” - dbStruFinal i commit

Izvršava se sljedeći upit:
KORISTITE GO DELETE FROM. WHERE FileName = "dbStruFinal" GO DELETE FROM . WHERE FileName = "commit" GO
Začudo, baza oživljava.

Oznake: 1C Enterprise 8.2, SQL, vraćanje konfiguracije

Ovaj članak nije podložan komentarima jer njegov autor još nije punopravni član zajednice. Autora ćete moći kontaktirati tek nakon što primi

Pozadina

Trebali smo izraditi novi registar informacija “MessageTrackingLog”. Dodano konfiguraciji, učitani podaci. Zatim je došao rad na optimizaciji. Morao sam promijeniti strukturu registra. Ali nije bilo tamo!

Ovdje je sve jasno. Zapisi su postali nejedinstveni, morate ih izbrisati!

Najlakši način je:

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

Pomoću ove metode vrlo brzo ćemo očistiti registar u 1C (ali to će također biti naša pogreška).

Greška

Čini se da je registar prazan i da možete ažurirati 1C. Ne želim vas iznenaditi, ali opet će biti greška:


Što predstavlja greška:

Došlo je do kritične pogreške tijekom procesa ažuriranja infobaze
zbog:
Pokušaj umetanja nejedinstvene vrijednosti u jedinstveni indeks:
Microsoft SQL poslužitelj Izvorni klijent 11.0: Izjava CREATE UNIQUE INDEX prekinuta jer je pronađen dupli ključ za naziv objekta "dbo._InfoRgChngR34546NG" i naziv indeksa "_InfoR34546_ByNodeMsg_RNTSRRRRRRNG". Duplikat vrijednosti ključa je (0x00000011,d7, , 27. rujna 4015. 22:22, 768404,00,00,00,00,00,00).
HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, stanje=1, ozbiljnost=10, izvorni=1505, linija=1

Obrazloženje

Razumimo strukturu SQL-a. Imamo registar "MessageTrackingLog", u SQL-u se nalazi u tablici " _InfoR34546". To možete provjeriti posebnom obradom ili metodom "poke" (ne moramo to učiniti jer je naziv tablice već naznačen u tekstu pogreške).

Sada ću objasniti što se dogodilo. Kada smo učitali podatke u registar, u SQL-u su završili u tablici" _InfoR34546". Kada smo očistili tablicu s kodom u 1C, ovi podaci su izbrisani iz tablice" _InfoR34546", ali su kopirani u tablicu" _InfoRgChngR34546". To je postao problem.

Riješenje

Da bismo riješili ovaj problem, moramo očistiti SQL tablicu "_InfoRgChngR34546".

Reći ću vam na primjeru" Microsoft SQL Server Management Studio". Idi na " Management Studio". Pronađite našu bazu podataka, otvorite karticu tablica, kliknite bilo koju i kliknite gumb "Novi upit": Sada upisujemo upit

Skrati tablicu "_InfoRgChngR34546 "

Možda imate još jedan stol! Ne zaboravi!

I pritisnite izvršiti ili pritisnite "F5". Ovo bi trebao biti rezultat:

To je to, sada možete sigurno ažurirati 1C i neće biti pogrešaka!