Pavel Chistov 1
Uneori, pot exista, astfel, încât este nevoie de o lungă perioadă de timp pentru a schimba baza de operare de tipul de recuzită, sau pentru a adăuga câmp indexată, sau pur și simplu adăugați recuzită. Deci, după aceea, vom avea un proces de lungă durată (în cazul în care baza este mare), restructurarea mesei. In acest articol voi discuta algoritmul reduce semnificativ timpul de restructurare.
Deci programatori 80lvl știu, probabil, totul și chiar mai mult decât cea descrisă în articol, astfel încât această publicație vizează în primul rând începători. Și, ca un incepator este probabil nici o reputație și startmani - toate script-urile nu se va atașa, și așezați în articol.
Să mergem. Să presupunem că în configurația are un document cu 5 mese de acest lucru. DBMS (în exemplul nostru PosgreSQL, dar acest lucru este valabil mai jos și alte SGBD) un astfel de document va apărea sub formă de tabele 6
Continuă, se adaugă elemente de recuzită la partea din tabelul configuratorul, I este numărul de 10 lungi, precizia de la 0 (în momentul manipulării sale toate, nu puteți închide), este reținut, dar nu au fost actualizate. Redenumiți toate tabelele din pgAdmin document sau ce-l utilizați (am o pereche de pgAdmin si EMS SQL Manager de PostgreSQL), de exemplu, în _document39 _document39_src
Și creează o copie a tabelelor noastre redenumite (goale) cu numele original, în exemplul nostru, face o copie a unui _document39_src martor numit _document39.
Dacă te uiți în întreprindere, nu avem nici un document.
Acum, că 1C consideră că nu avem documente în actualizarea configuratorul clic, restructurare au loc imediat (în cazul în care există erori, faceți clic pe actualizare din nou, atâta timp cât caseta de pe adoptarea modificărilor vor apărea).
Indiferent de nume a primit o nouă coloană a tabelului, care este în concordanță cu noile detalii.
Am l _fld1097. Ne întoarcem la masa noastră originală, pe care am redenumit _document39_src, adăugați o nouă coloană să-l
Am pus valoarea implicită este 0, și faceți clic pe OK. Întregul proces a durat aproximativ 1 oră (de 48 de ori mai rapid). După crearea coloanei, implicit șterge și redenumi tabelul din spate (în _document39 nostru)
Alergăm compania și verificați. Ne bucurăm sau să plângă.
Deci, acest lucru am adăugat elemente de recuzită, considerăm acum cazul, în cazul în care avem nevoie pentru a schimba tipul de recuzită, de exemplu, a fost numărul (5, 2), ar trebui să fie un număr (10, 4), sau adăugați indici.
Există două opțiuni.
Prima variantă. Creați o copie a tabelelor și completați datele din tabelul principal
Apoi se purifică masa inițială, adică vom ajunge la punctul în care 1C crede că noi nu avem înregistrări în documentul tabel. Facem toate modificările necesare în configuratorul și actualizarea. Acum trebuie să ne întoarcem datele înapoi
Alergăm compania și verificați. Ne bucurăm sau să plângă.
Opțiunea Doi. Cineva crede că insera în este lent, astfel încât să puteți utiliza aceste script-uri nu funcționează cu copiile din tabel și fișierul de pe disc
în cazul în care „e: / _ document39“ este un fișier în rădăcina unității e.
Script-ul de încărcare de date înapoi
Pe aceasta, poate toate.
După cum puteți vedea, procesul este încă lung (aproximativ 18 de ore pentru mine). Avem aproximativ 19 ore până la 48, cu modificări în tipul de recuzită și indici adăugarea, și aproximativ 1 oră până la 48 ore cu adaos de recuzită.
PS. Am suspiciunea că alte platforme DBMS fonduri de restructurare va fi mai rapid. În plus, am fost un vechi PosgresSQL, chiar 8.2.4-3.1