Internet Windows Android

1s 8.2 îngheață. Cum se închide un program înghețat

1) uitați-vă la cantitatea de memorie alocată de rphost pe serverul 1C. Dacă aveți o versiune x32 a serverului, atunci procesul va putea folosi maximum 1,75 GB de RAM
Dacă nu există suficientă memorie, atunci serverul nu poate accepta conexiuni noi sau se blochează atunci când sesiunea curentă are nevoie de memorie suplimentară
www.viva64.com/ru/k/0036
2) Uitați-vă la setările „Setări ale serverului de lucru”, poate că sunt setate setările greșite. Am avut aceeași problemă și serverul a continuat să se blocheze. Setările mele sunt în atașament. Serverului i se alocă 11 GB.
3) Pot exista probleme la configurarea Postgressql.

Furnizați caracteristicile serverului dvs., dimensiunile bazei de date, configurațiile Postgressql. E greu de spus fără informații.

Configurația mea PostgreSQL: https://drive.google.com/file/d/0B2qGCc-vzEVDMERVW...
această configurație se potrivește cu cantitatea de RAM disponibilă.
PostgreSQL instalat pe Linux, 3 GB RAM, 3 nuclee CPU.
Server 1C8: 11 GB RAM, 5 nuclee CPU
4 baze de aproximativ 1 GB fiecare (încărcate pe dt)

Dați toate caracteristicile serverului dvs.: un server 1C8 și o bază de date fizică sau virtuală, sistemul de operare, cantitatea de RAM pe fiecare server, ce CPU, câtă RAM ocupă procesele rphost, câte dintre ele? Folosiți o matrice RAID?

Anterior, eu însumi am folosit PostgreSQL, dar, în acest proces, am întâmpinat unele probleme când lucram cu baza de date pe PostgreSQL și recent am trecut la MS SQL.

Serverul tău nu este rău pentru baze de date. Pentru a utiliza PostgreSQL, trebuie să fii foarte bun la configurarea acestuia. Când bazele sunt mici, multe erori de reglare sunt „iertabile”. Când tocmai am început să implementăm 1C + PostgreSQL, am avut și probleme foarte frecvente cu baza de date (au fost înghețari frecvente, a funcționat lent). PostgreSQL este mai bine de utilizat pe Linux decât pe Windows. Eu însumi nu sunt un specialist în baze de date, pentru a configura serverul de baze de date am angajat un specialist de la 1Sbit și el ni l-a configurat și nu au mai fost probleme la lucru după aceea.

Sfat:
Nu fi zgârcit cu bazele tale de date, angajează un specialist în baze de date care ți-o poate configura. O persoană nu poate fi expertă în toate.

1) cu cât timp în urmă ați verificat baza de date în sine și ați reindexat? VACUUM și REINDEXARE
2) Ați testat și reparat baza de date folosind 1C de mult timp?
3) fișierul jurnal al bazei de date este mutat pe un HDD separat?
4) HDD-ul este încărcat puternic?

Luați în considerare trecerea la MS Sql, adesea nu necesită „practic” nicio configurație și este mai ușor de utilizat. Spre deosebire de PostgreSQL, MS Sql este gata să funcționeze imediat, dar PostgreSQL trebuie configurat.

Daca ai intrebari scrie, poate te pot ajuta pe Skype: tisartisar

Angajați un specialist în baze de date

De ce am trecut la MS SQL:
folosim configuratia UT si la sfarsitul lunii uneori apar erori care nu puteau fi rezolvate in niciun fel. Dacă transferați baza de date în modul fișier și începeți să închideți luna, atunci totul a fost închis normal, aceeași bază de date a fost încărcată pe serverul PostgreSQL la calcularea costului, au apărut erori. În acel moment, eram în urmă cu jumătate de an în ultimele luni din cauza apariției erorilor de flotare. Am creat o bază de date de testare pe MS SQL și luna care nu a putut fi închisă pe PostgreSQL pe MS Sql a fost închisă. De asemenea, rotunjirea prețurilor în lista de prețuri nu funcționează corect pe PostgreSQL. De fapt, munca 1C pe PostgreSQL este acceptată, dar este totuși recomandat să utilizați MS SQL.
Din acest motiv, s-a decis trecerea la MS SQL. stabilitatea lui 1C este mai scumpă.

Mă bucur că am putut ajuta, vă rog să mă contactați dacă aveți întrebări sau probleme.

1) câtă memorie este alocată serverului MS SQL? aceasta este configurată chiar în serverul MS SQL.
2) Testați baza de date folosind instrumente 1C în mod regulat
3) un articol despre cum să configurați backup și întreținere. Acest lucru este important și trebuie făcut în mod regulat. fac în fiecare zi. Consultați toate cele 3 părți ale ghidului.

Impactul blocărilor asupra performanței 1C: Enterprise 8

Echipa gilev a lucrat la probleme de performanță de mulți ani și rezolvă cu succes probleme precum eliminarea așteptărilor de blocare și a blocajelor.

Mai jos descriem experiența noastră în rezolvarea acestor probleme.

Detectarea problemelor de blocare în 1C

Problemele de performanță multiplayer nu se datorează neapărat codului prost sau hardware-ului prost. Pentru început, trebuie să răspundem la întrebarea - ce probleme de performanță există și ce le cauzează?

Este imposibil să urmăriți manual activitățile a sute de utilizatori; aveți nevoie de un instrument care automatizează colectarea unor astfel de informații.

Există multe instrumente, dar aproape toate au un dezavantaj foarte semnificativ - prețul.

Dar există o cale de ieșire - alegem ca instrument de analiză

Vom investiga problema pe MS SQL Server, așa că vom avea nevoie de următoarele servicii din acest set:

1. Monitorizarea si analiza cererilor lungi(citiți mai multe despre înființare aici) - necesar pentru a evalua prezența operațiunilor lungi la subd.

De fapt, faptul prezenței lor ne permite să spunem că există probleme de performanță, iar problemele se află în rândurile codului de configurare 1C, pe care serviciul îl va clasifica în ordinea importanței. Problemele din partea de sus a listei ar trebui abordate mai întâi. Astfel de soluții la șirurile cu probleme vor aduce cel mai mare efect, adică. va fi cel mai util și util pentru utilizatorii sistemului.

(citiți mai multe aici) ne va permite să evaluăm dacă timpul cererilor lungi (lungi) este de fapt cauzat de așteptarea blocărilor sau există alte motive (cod neoptimal, hardware supraîncărcat etc.) Serviciul va arăta motivul pentru cererea de așteptare și anume resursa care a fost blocată și cine a blocat-o. Acestea. vom înțelege prezența problemelor de blocare și cauzele acestora.

3. Analiza blocajelor în serverele 1C și MS SQL(citiți mai multe despre setare aici ) - ne va permite să evaluăm situații mai complexe cu așteptarea resurselor, când mai mulți participanți au „capturat” deja unele dintre resurse cu un bloc și acum trebuie să aștepte, trebuie să aștepte fiecare altele deoarece nu pot elibera resursele ocupate înainte de finalizarea captării altor resurse blocate de vecini.

În general, într-o situație atât de dificilă, nu vă puteți da seama manual, aveți nevoie de un astfel de serviciu.

4. Controlul sarcinii de lucru a echipamentelor(citiți mai multe despre configurare aici ) ne ajută să răspundem la întrebări - câți utilizatori sunt în sistem, au încuietori, câte încuietori, hardware-ul poate face față sarcinii?

Serviciile sunt foarte ușor de configurat, dar chiar dacă mai aveți întrebări, există!

Cu ajutorul instrumentelor de mai sus, avem informații obiective despre performanța sistemului. Acest lucru ne permite să evaluăm corect situația și să propunem măsuri adecvate.

De fapt, obținem informații despre toate problemele de performanță și putem răspunde cu precizie la întrebări precum „câte probleme sunt în sistem”, „unde exact apar”, „fiecare dintre probleme cu ce frecvență exactă”, „ce probleme sunt semnificative”. și care sunt minore”. Acestea. vedem toate premisele care au format cauza problemei.

Serviciile vă permit să îmbunătățiți în mod semnificativ înțelegerea condițiilor de apariție a problemelor, fără a vă obliga să vă aprofundați manual în lucruri precum structura de stocare a datelor a unei baze de informații la nivel de SGBD, mecanismul de blocare etc.

Ca rezultat, obținem o imagine a performanței care este măsurată

- timpul de solicitare (bineînțeles, ierarhizarea cererilor cu probleme în funcție de pondere (timp de solicitare după numărul de apeluri la această solicitare);

- timp de așteptare pentru încuietori;

Așadar, am lansat serviciul de analiză a așteptărilor blocurilor

În tabelul de sus, serviciul arată o listă cu „victimele” blocării, ținând cont de ponderea totală a „severității așteptărilor”.

În tabelul de jos, pentru fiecare victimă, sunt luați în considerare unul sau mai mulți participanți la „lupta pentru o resursă extrem de competitivă”, unde a apărut așteptarea blocului.

În tabelul de jos, deschideți detaliile despre unul dintre evenimentele „timeout”. Ca in poza de exemplu.

Evidențiind linia cu „vinovat”, vom vedea că tabelul _Reference64 a devenit blocaj și a existat o problemă la indexul grupat cu zona „necunoscută”. Poate că în viitor îl vom redenumi în „tabel”, deoarece, de fapt, acest comportament este tipic pentru creșterea / mărirea zonei de blocare.

Linia cu „victima” arată ce cod a fost ostatic al situației și nu a putut bloca totul doar linia „prin cheie” (zona minimă de blocare a datelor din acest tabel).

Puteți rezolva această problemă „corect” și „ușor”.

Este mai dificil să urmați calea corectă - de fapt, trebuie să rescrieți codul, reducând la minimum probabilitatea ca astfel de situații să apară.

Unul dintre factori, oricât de ciudat sună, este scăderea duratei.

Puteți reduce durata unei tranzacții:

1. rescrierea algoritmului

2. prin rescrierea interogării (o interogare mai rapidă reduce șansa de blocări în tranzacții complexe pe tabele care uneori chiar nu se află în interogare!)

2.1 prin adăugarea indexului de acoperire lipsă (uneori indexul nu numai că accelerează interogarea, dar reduce și zona de citire a datelor, ceea ce reduce probabilitatea de blocare)

3. prin reducerea cantității de date procesate într-o tranzacție (pe lângă viteza liniară, ne amintim și despre escaladarea blocării)

4. creșterea productivității echipamentelor din cadrul fiecărui flux

Solicitați timpul de execuție

1) utilizatori diferiți pot lucra în paralel cu date diferite
2) utilizatori diferiți trebuie să lucreze strict secvenţial cu aceleași date

Cu toate acestea, puteți optimiza utilizarea încuietorilor, reducând astfel timpul general de așteptare.

Cum funcționează încuietorile (acest paragraf poate fi omis)

Blocările sunt gestionate de un modul special SQL Server numit Manager de blocare. Sarcinile sale includ:

  • crearea și instalarea încuietorilor;
  • îndepărtarea încuietorilor;
  • escaladarea blocării;
  • determinarea compatibilității încuietorilor;
  • eliminarea blocajelor (deadlocks) și multe altele.

Când un utilizator face o solicitare de actualizare sau citire a datelor, managerul de tranzacții DBMS transmite controlul managerului de blocare DBMS pentru a afla dacă resursele solicitate au fost blocate și, dacă da, dacă blocarea solicitată este compatibilă cu cea actuală. Dacă blocările sunt incompatibile, execuția tranzacției curente este amânată până când datele sunt deblocate. Odată ce datele sunt disponibile, managerul de blocare dobândește lacătul solicitat și returnează controlul managerului de tranzacții.

Principalul motiv care reduce performanța este blocarea

Așteptările de blocare sunt o problemă majoră de performanță în modul multiplayer. Și acest lucru este de înțeles, deoarece cresc timpul de așteptare pentru operații și, prin urmare, timpul de răspuns. Se poate spune că așteptarea încuietorilor nu este corectă și este o greșeală a unui sistem multiutilizator? Acest lucru nu poate fi spus, deoarece mecanismul de blocare a resurselor în sine asigură integritatea datelor. Cu mecanismul de blocare, datele concurente sunt SCRISE SECVENTIAL.

Diferența dintre încuietorile necesare și redundante

Atunci când un utilizator raportează o eroare în așteptarea unui lacăt, din punctul său de vedere, aceasta este întotdeauna o eroare, deoarece, de exemplu, interferează cu munca lui - timpul necesar pentru a-și finaliza munca crește.

Experiența sugerează o regulă simplă, dacă mai mult de jumătate din timpul de execuție a cererii așteaptă de fapt o resursă blocată, atunci trebuie să te uiți: poate fi posibil să optimizați unele dintre blocări, să reduceți timpul de blocare a resursei.

Aici, ca din întâmplare, introduc o definiție:

Așteptând la bloc este o situație care apare atunci când doi utilizatori încearcă să capteze aceleași date în același timp. În acest caz, unul dintre acești utilizatori este blocat, adică trebuie să aștepte până la sfârșitul tranzacției primului utilizator.

O tranzacție este un set de calcule și operațiuni cu date (cel mai izbitor exemplu este atunci când se realizează un document), efectuate în ansamblu. Nefinalizarea oricăreia dintre operațiunile tranzacției are ca rezultat anularea întregii tranzacții.

Deci, utilizatorii din bazele de informații cu mai mulți utilizatori se pot plânge adesea că este imposibil să lucrezi din cauza acestor blocări, în timp ce într-adevăr pot exista blocări în cod care nu sunt necesare (redundante) în acest loc.
Și, de asemenea, în codul de configurare, ei înșiși ar putea să nu se blocheze, puteți citi despre ele, de exemplu, aici http://kb.1c.ru/articleView.jsp?id=30 (articolul este un fragment din carte de P.S. Belousov, A .V. Ostroverh „1C: Enterprise: de la 8,0 la 8,1”.). Ofer o modalitate simplificată de a explica diferența dintre încuietori folosind un exemplu simplu ca acesta:

În configurația dvs. în modul 1C:Enterprise, creați două facturi identice cu aceeași compoziție de produs. Dar asigurați-vă că specificați diferitele depozite de primire.
În codul de manipulare a glisării, trebuie să adăugați o linie cu afișarea unui mesaj pe ecran (sau alt cod care poate întârzia execuția procesării glisării cu 21 de secunde (timeout-ul de blocare are loc după 20 de secunde dacă parametrii impliciti) ).
Postează două documente.
Dacă apare un timeout și, în mod logic, mărfurile ajung la diferite depozite, există încuietori redundante în aplicație. Logica de afaceri (luați în considerare bunul simț) nu ar trebui să existe încuietori aici.
Dacă acum facem depozite identice în aceste două borderouri. Atunci încuietorile create ca urmare a unei încercări de conduită simultană vor avea ca rezultat o încuietorire NECESARĂ și aceasta este BUN!

Acestea. în timp ce factura face modificări la soldul stocurilor, celălalt trebuie să aștepte.

Desigur, chiar și acest exemplu simplu lasă multe întrebări. De exemplu, dacă documentele sunt de la un furnizor și datoria de pe acesta „se mută”. Și dacă nu numai rămășițele din depozit se mută, ci mai multe registre, dar documente de diverse tipuri.
Dar cea mai importantă întrebare este CE LOGICA DE AFACERI NU TREBUIE SĂ AVEA BLOCARE. Cine prescrie această logică de afaceri și unde în contextul încuietorilor? Dar să vorbim despre totul în ordine.

Încuietori excesive - de prisos - care nu sunt necesare din punctul de vedere al asigurării integrității datelor și în același timp reduc performanța generală a sistemului, crescând timpul total de „inactivitate” - așteptare pe încuietori.
Blocarea necesară apare atunci când doi utilizatori captează aceleași resurse (obiecte de date). Dacă utilizatorii lucrează cu resurse care nu se suprapun, dar există o așteptare pentru blocare, atunci blocarea este considerată redundantă.

Cele mai înțelese criterii pentru redundanța blocării sunt:

1. Blocare reciprocă;

2. Nivelul (zona) de blocare este mai mare decât este necesar (ca caz special de creștere a nivelului de blocare, așa-numita escaladare);

3. Timpul de blocare este mai lung decât utilizarea „reală” a obiectului de blocare.

După ce am primit informații despre gruparea problemelor în contextul metadatelor 1C:Enterprise, recomand să acordați atenție în primul rând obiectelor:

  • constante
  • Urmare
  • Registre contabile
  • Registre de acumulare
  • Registre de informații
  • Registre de calcul

1) Până de curând, a existat o recomandare binecunoscută de a nu scrie nimic în constante. În cazuri extreme, faceți acest lucru de sub un utilizator și apoi amintiți-vă că, în timp ce utilizatorul „scrie” o constantă, nu numai aceasta, ci și orice altă constantă, alți utilizatori vor „așteapta”. Prin urmare, este deosebit de periculos să folosiți constante în manipularea conducției. Sunt stocate valorile tuturor constantelor V o resursă.

Figura arată locația fizică a constantelor de configurare SCP în tabelul bazei de date MS SQL Server 2005.

Aceasta înseamnă că dacă o constantă este blocată, toate constantele vor fi blocate. SGBD-ul impune o blocare pe TOATE un singur RÂND al tabelului, de exemplu. pentru toate constantele.

Cu toate acestea, în versiunile recente ale platformei, stocarea constantelor s-a schimbat. Acum fiecare constantă este un tabel separat. Cu toate acestea, nu te lăsa prea luat, dacă creezi mii de mese, poți prinde o lacăt pe baza principală.

Atentie, daca configuratia dumneavoastra exista de mult, atunci puteti schimba formatul de stocare prin „restructurare” in Testarea si Corectarea configuratorului.

2) Refuzați utilizarea obiectului de metadate Sequence. Cel puțin din mișcări în timpul conduitei operative, să se efectueze cu neoperatorie (conduita suplimentară). Vedeți cum este implementat în cele mai recente versiuni de SCP.

3) În cazul în care sistemul efectuează o înregistrare operativă a mișcărilor în registrul contabil în mod multi-utilizator, atunci se recomandă:

  • activați modul totaluri împărțite pentru acest registru;
  • nu utilizați controlul echilibrului registrului în timpul lucrului operațional.

4) În registrul de acumulare, în cazurile în care nu este nevoie să obțineți date „operaționale”, puteți activa împărțirea totalurilor, ceea ce va crește paralelismul înregistrării datelor și va accelera munca în ansamblu. Monitorizați cu atenție măsurătorile astfel încât „reziduurile” să poată fi obținute cu detalii maxime asupra măsurătorilor.

5) Puteți scăpa de unele încuietori redundante create de platformă doar prin . În modul automat de funcționare a configurațiilor, platforma „preia” blocarea resurselor. Prețul utilizării fără griji a modului automat este blocarea la limitele intervalelor de index, blocarea pe un tabel gol, escaladarea blocării.

Aceste blocări dispar complet din datele din tranzacție. Adică, acest blocaj nu va fi posibil când rulează în modul gestionat.

Am spus deja „blocare gestionată”, „mod gestionat” de mai multe ori. Trebuie să înțelegeți că există două tipuri de blocare:
Blocările DBMS sunt setate automat la nivel DBMS atunci când sunt executate interogări.
1C: Blocările pentru întreprindere sunt setate automat la scrierea (modificarea) datelor și întotdeauna manual la citirea datelor.

Un cititor meticulos va spune că 1C se împarte și în blocuri de obiect și non-obiect, dar acum nu vom atinge această abordare.

Dar observ că impune mai multe cerințe asupra calificărilor și experienței unui specialist 1C.

6) Indecșii lipsă (în special în interogările complexe) sunt, în general, principalul factor în apariția unui nivel mai ridicat de blocări decât este necesar. Acestea. un paradox, pe de o parte, am spus că înainte de a optimiza interogarea, am spus că mai întâi trebuie să te uiți la încuietori, iar acum spun că, pentru a optimiza blocările, trebuie să optimizați interogarea. Am o scuză, mutarea configurației la blocări gestionate reduce blocările în exces chiar și în interogările suboptime. Acest lucru se datorează nivelului redus de izolare a tranzacțiilor, care, la rândul său, oferă managerului de blocare DBMS mai puține motive pentru a obține o blocare excesivă.

Principalele cauze ale încuietorilor excesive (pentru a rezuma cele de mai sus)

— erori de proiectare
(gradul de paralelism este determinat de „cât de fin sunt tăiate datele”: lucrul paralel cu două rânduri ale tabelului este posibil, lucrul cu un rând va merge numai secvențial)
(greșeli în utilizarea metadatelor: constante de înregistrare, secvențe, contabilitate operațională pe registre contabile)
- blocare excesivă din defecțiunea modului automat (platformă - link DBMS).
— performanță suboptimă a interogării
(de exemplu, la scanarea unui tabel, întregul tabel este blocat - zonă redundantă
iar timpul de blocare crește - timpul în exces, blocarea suplimentară crește probabilitatea de a bloca escaladarea)

După cum puteți vedea, sarcina de optimizare a încuietorilor este „cu mai multe fațete”. Este necesar să se reprezinte cât mai bine „contextul” care a provocat problema. Pe ce resurse, ce cod. Cât de realist este nevoie de această încuietoare sau este redundantă.

Un copil și un adult au dureri în gât. Când medicul pune întrebarea „Ce e în neregulă?”, copilul se va uita la doctor și va țipa (credeți-mă, știu), în timp ce adultul va sublinia simptomele bolii. Această diferență aparentă direcționează medicul către diferite metode de identificare a problemei.
Cu un copil, medicul trebuie să se conformeze mult teste, colectează date, le combină, efectuează analize și abia apoi face recomandări. În timp ce cu un adult, el va pune câteva întrebări și, deoarece numărul de date inițiale este mic, timpul de analiză și identificare a problemei va fi semnificativ mai mic. Ca urmare, recomandările vor fi emise mult mai devreme.

Folosește serviciile noastre și vei avea mai multe oportunități de a analiza problema și de a găsi o soluție gratuit!

Cum să închideți programul dacă acesta se blochează și nu mai răspunde. De ce se blochează programele? Cine este de vină și ce să facă? În acest articol, vom încerca să analizăm principalele cauze și soluții pentru această problemă.

Programul deschis a încetat să mai răspundă la acțiunile tale, cursorul s-a înghețat sau s-a transformat într-o clepsidră, fereastra programului în sine afișează inscripția „Nu răspunde”, faci clic pe tot, nervos și nu știi ce să faci?

În primul rând, calmează-te și citește articolul. Absolut toată lumea a fost în această situație, toate programele sunt scrise de oameni, deci nu sunt perfecte. Principalul lucru pe care trebuie să-l înțelegem este cum să acționăm corect în astfel de cazuri și de ce se întâmplă acest lucru.

În primul rând, trebuie să vă dați seama dacă programul este într-adevăr înghețat și sunt observate toate simptomele descrise mai sus sau dacă tocmai ați lansat o aplicație sau un program care necesită mult resurse, de care sistemul dvs. nu se blochează, ci pur și simplu încetinește.

Ce să nu faci dacă programul se blochează

Să ne uităm la cele mai frecvente greșeli pe care le fac mulți utilizatori începători, pierzându-și astfel timpul.

- Striga, loveste tastatura (cu siguranta nu e vina ei).
- Nu este nevoie să încercați să rulați din nou același program sau cu atât mai mult alte programe - acest lucru nu va face decât să agraveze situația.
- Scoateți alimentarea, opriți, reporniți (aceasta este o metodă extremă).

Ce trebuie să faceți dacă programul se îngheață

1. Înainte de a trece la metode mai radicale, încercați să îl închideți în bara de activități făcând clic dreapta pe programul suspendat și selectând elementul corespunzător.
2. Dacă nu ajută, mergeți la metoda dovedită, pentru aceasta trebuie să pornim managerul de activități. Puteți apela managerul de activități cu combinația de taste Ctrl + Shift + Esc (Windows 7) Ctrl + Alt + Del (Windows XP).

Ne interesează fila „aplicații”, aici sunt afișate momentan toate aplicațiile care rulează pe computer. Căutăm o aplicație care este înghețată (în exemplul meu, acesta este un program) și faceți clic pe → Încheiere activitate. De obicei, acest lucru este suficient! Nu a ajutat → punctul 3.
3. Ce ar trebui să fac dacă programul continuă să se blocheze? Accesați fila următoare → „Procese”. Faptul este că, cu orice program pe care îl rulați pe computer, unele procese sau procese sunt asociate. Și programul care este înghețat în prezent are și propriul său proces, pe care îl puteți afla făcând clic dreapta pe comanda rapidă a programului și selectați → „Proprietăți”. În exemplul meu, acesta este procesul → VideoConverter.exe

Selectând fila procese → căutați procesul dvs. (în cazul meu este „VideoConverter.exe”) și faceți clic pe → „termină proces” sau, pentru a fi sigur, → faceți clic dreapta pe proces → „Încheiați arborele procesului”

Acesta este modul în care, folosind instrumente standard Windows, puteți rezolva problema cu un program înghețat. De asemenea, puteți închide un program înghețat folosind programe terțe, de exemplu, programul

Binecunoscută specialiștilor IT, plângerea utilizatorilor „atârnând 1C” are multe motive. Pentru a face un „diagnostic” corect – pentru a identifica și analiza o problemă – trebuie reprodusă, deoarece o problemă care nu poate fi reprodusă este, de regulă, aproape imposibil de rezolvat. După ce am înțeles simptomele înghețului 1C, vom face primul pas către un sistem eficient.

Pornire foarte lungă a sistemului

O lansare lungă a unei configurații grele sub un utilizator pentru prima dată după adăugarea IB la lista de baze de date de pe computer este un fenomen normal. În timpul primei rulări, configurația este stocată în cache. A doua lansare și cele ulterioare ar trebui să fie mai rapide.

O pornire a sistemului care durează mult timp poate indica probleme cu implementarea arhitecturală a configurației. Cea mai mare parte a configurației este citită de cadru numai la prima accesare a obiectului de metadate dorit. Un început lung indică probabilitatea utilizării unui număr mare de obiecte metadate (multe apeluri la diferite module comune, procesare etc.).

Trebuie remarcat faptul că prima dată când este accesat textul oricărui modul, acesta este compilat. Acest proces necesită și timp, ceea ce este vizibil mai ales dacă există o mulțime de module. Astfel, problema pornirii lente este rezolvată prin modificarea (optimizarea) configurației, al cărei scop este dezactivarea execuției tuturor algoritmilor opționali care sunt executați la pornirea sistemului.

Există posibilitatea ca configurația la pornire să încerce să citească date de pe Internet. De asemenea, crește timpul de pornire a sistemului.

Timp de deschidere foarte lung

Deschiderea lungă a formularelor se poate datora:

  1. Un număr mare de controale pe formular - se petrece timp pentru crearea formularului și legarea locației elementelor formularului;
  2. Executarea algoritmilor în timpul inițializării formularului. Este posibil ca la crearea formularului să fie verificate unele condiții și/sau obiectele aferente să fie citite din baza de date.

Prima problemă este „tratată” prin simplificarea formei. De exemplu, unele dintre comenzi pot fi plasate în forme separate, ceea ce poate fi și mai convenabil pentru utilizator. De exemplu, dacă formularul are câmpul de adresă „Oras”, „Strada”, „Casa”, etc., atunci este mai bine să editați adresa într-un formular separat.

A doua problemă este rezolvată prin analizarea acțiunilor efectuate în timpul creării și deschiderii formularului și prin optimizarea acestor algoritmi. Poate că unii dintre algoritmi sunt deja depășiți, iar unii pot fi simplificați și optimizați, de exemplu, eliminând sau minimizând accesul la datele din baza de date.

Ca acțiune interactivă, luați în considerare încercarea utilizatorului de a selecta o valoare într-un element de formular. Ca răspuns la aceasta, sistemul „se gândește la ceva”. Acest lucru se poate întâmpla din următoarele motive:

  1. Algoritmii care rulează pe o anumită acțiune examinează sau calculează datele asociate care afectează modul de selecție a valorii;
  2. Formularul de selectare care se deschide pentru a selecta această valoare citește toate obiectele din baza de date atunci când este inițializată.

Pentru a rezolva prima problemă, ar trebui să utilizați „Măsurarea performanței”, să găsiți algoritmi care consumă mult resurse și să-i optimizați.


A doua problemă poate fi adesea rezolvată prin simpla analiză a implementării formularului select. De exemplu, ar trebui să vă asigurați că proprietatea listei dinamice este setată la „Citirea dinamică a datelor”, proprietatea „Main Table” este setată corect și implementarea listei nu folosește algoritmi în mod evident consumatoare de resurse.

Există și situații în care la deschiderea formularului de selecție se citesc orice date aferente din baza de date (de exemplu, la deschiderea formularului de selecție „Nomenclator” se citește soldul mărfurilor din depozite). De obicei, aceasta nu este cea mai bună soluție. Citirea datelor asociate se face cel mai bine în mod asincron, după ce formularul a fost deschis. Acest lucru va cauza mai puțin disconfort pentru utilizator, deoarece. după ce formularul este afișat, utilizatorul va petrece ceva timp percepând formularul deschis, iar acest timp poate fi petrecut încărcând datele asociate.

Răspuns foarte lent la actualizări

Unul dintre simptomele banale, totuși, poate spune despre unele probleme de sistem: actualizarea 1C se blochează la pornirea backupului. Acest lucru se întâmplă în principal la actualizarea prin Internet și, cel mai probabil, indică faptul că configurația nu a fost actualizată de mult timp, iar lansările, rulând una peste alta, au provocat o înghețare. Puteți preveni o astfel de problemă instalând actualizări în timp util și, dacă o întâlniți, puteți pur și simplu întrerupe procesul de backup. După pornirea configuratorului, baza de date va începe cu modificările efectuate în modul normal.

Trebuie remarcat faptul că 1C 8.3 se blochează în timpul actualizărilor cel mai adesea și pentru că necesită un hardware care necesită mai multe resurse decât versiunile anterioare ale platformei. Merită să acordați atenție cantității de RAM și, dacă este necesar, să o creșteți - acest lucru, în principiu, ar trebui să ajute la rezolvarea problemei „1C îngheață la actualizarea configurației”.

Înregistrarea pe termen lung a obiectelor/afișarea documentelor

În acest caz, „tratamentul foto” este practic exclus, deoarece motivele pot fi foarte diverse, începând cu o cantitate mare de date în obiect, terminând cu așteptarea încuietorilor.

Dar chiar și în ACEST caz, este posibil să se contureze o direcție pentru analiză.

Absența unor modificări semnificative în timpul de înregistrare, din cauza orei din zi sau a numărului de utilizatori (conform unei estimări brute, subiective), indică o problemă în cod sau în volumul de date al obiectului. Pentru analiză, este logic să folosiți instrumentul „Măsurarea performanței”.

O modificare cardinală a timpului de înregistrare cu dependențe neclare necesită o analiză statistică a aspectului problemei, de exemplu. analiza performanței. Cel mai simplu mod este să analizați utilizarea jurnalului. Un avantaj suplimentar aici este că platforma 1C:Enterprise 8 acceptă salvarea datelor de jurnal într-un fișier în format SQLite. Acest lucru vă va permite să utilizați interogări SQL pentru a analiza datele din jurnal. Este foarte posibil să obțineți timpul scrierilor obiectelor din datele din jurnal, dat fiind faptul că fiecare scriere a obiectului este efectuată într-o tranzacție, iar fiecare tranzacție are propriul său număr de identificare.


Dacă rezultatul analizei statistice a arătat că timpul de înregistrare a obiectului depinde de ora din zi și nu de numărul de utilizatori, este necesar să se analizeze volumul de lucru al serverului 1C și al serverului de baze de date. Este posibil ca pe server să ruleze procese de rutină care să ocupe resurse inutile.

Dacă timpul de scriere al obiectelor depinde de numărul de utilizatori, problemele sunt cel mai probabil în cod (eventual așteptarea blocărilor) sau în debitul hardware-ului. Pentru a le rezolva, ar trebui să implicați un specialist cu competența „1C: Expert tehnologic”, deoarece nu există reguli unificate pentru rezolvarea unei astfel de probleme.

Dacă un program a încetat să vă mai răspundă, nu răspunde nici la mouse, nici la tastatură și poate chiar a apărut inscripția „programul nu răspunde”, acesta se numește program înghețat.

Uneori se întâmplă ca un program înghețat să nu interfereze cu munca dvs. și, uneori, dimpotrivă, din cauza unui program înghețat, activitatea întregului sistem de operare poate fi încetinită, în orice caz, problema trebuie rezolvată, ceva trebuie să fie rezolvată. fi realizat.

Ce sa nu faci:

1) Scoateți ștecherul din priză este cea mai mare greșeală pe care o poți face în această situație. O întrerupere bruscă de curent pentru un computer este mult stres. Acest articol include, de asemenea, oprirea computerului folosind butonul de pornire de pe unitatea de sistem și oprirea acestuia prin apăsarea comutatorului de alimentare. Esența acestor metode este aceeași, întrerupeți sursa de alimentare.

2) Apăsați butonul de resetare- acest buton este situat în partea din față a unității de sistem și este folosit pentru a forța repornirea. Ar trebui apăsat doar în situațiile cele mai fără speranță, când alte metode nu ajută.

3) Faceți mișcări suplimentare- dacă, din cauza unui program înghețat, sistemul dvs. de operare a început să încetinească, atunci orice acțiune inutilă nu va face decât să agraveze și mai mult situația. Prin acțiuni inutile, mă refer la încercarea de a reporni un program înghețat (în niciun caz nu trebuie făcut), lansarea oricăror alte programe, deschiderea meniului de pornire sau a altui meniu. Dacă situația este deosebit de critică, atunci nu ar trebui să mișcați doar mouse-ul, deoarece cursorul se poate îngheța și va fi mai dificil să rezolvați problema.

4) Așteptați foarte mult timp- de regulă, este suficient să așteptați cinci minute pentru a înțelege că programul este înghețat, dacă aveți un computer slab, acordați-i 15 până la 20 de minute.De obicei este inutil să așteptați mai departe.

5) Fii nervos- lovirea cu piciorul în unitatea de sistem sau lovirea tastaturii pe masă nu va ajuta lucrurile. Am scris în mod special acest paragraf, pentru că dintr-un motiv necunoscut oamenii fac uneori acest lucru (probabil că trecutul nostru afectează atunci când televizorul cu tub nu a vrut să funcționeze, de obicei îl loveau cu o mână și a ajutat). Un computer nu este un televizor cu tub, nu este nevoie să-l învingeți.

Ce ar trebui făcut

Trebuie să încercați să închideți programul, dacă faceți clic pe cruce din colțul din dreapta sus și combinația alt + f4 nu ajută, atunci trebuie să faceți următoarele:

Apăsați combinația de taste pentru a apela managerul de activități:

Pentru Windows xp „Ctrl + Alt + Del”.

Pentru Windows 7 "Ctrl + Shift + Esc".

În managerul de activități, accesați fila „Aplicații”, dacă programul dvs. este afișat în secțiunea de activități, apoi selectați-l și faceți clic pe butonul „Încheiați sarcina”. Dacă nu există nicio reacție imediată, nu trebuie să apăsați din nou acest buton, trebuie doar să așteptați puțin. După un timp, va apărea o fereastră cu un avertisment că datele se pot pierde, va trebui să faceți clic pe butonul „Finish Now”. Pentru un exemplu, vedeți captura de ecran (am finalizat programul de lucru, așa că textul dvs. va fi diferit, dar principiul este același).

Dacă această metodă nu reușește să încheie programul, atunci faceți clic dreapta pe programul suspendat și selectați „Mergeți la Proces” din meniul drop-down. Veți fi dus automat la fila „Procese”, procesul dorit va fi deja selectat, trebuie doar să faceți clic pe butonul „Încheierea procesului”.

Dacă programul blocat nu este afișat în fila „Aplicații”, atunci trebuie să mergeți la fila „Procese”, să găsiți procesul programului blocat și să îl încheiați. Cel mai ușor este să cauți un proces după nume, poți căuta și după gradul de încărcare a procesorului, de obicei acest procent este mare pentru o aplicație suspendată.