Non c'è memoria in 1 cosa fare


L'errore "Memoria esaurita" in 1C 8.3 e 8.2 non è così raro. Può anche essere trovato nel configuratore (ad esempio, quando si confrontano le configurazioni), così come nella modalità 1C:Enterprise quando si eseguono elaborazioni ad alta intensità di lavoro: ad esempio, quando si scrive un file base64 di grandi dimensioni.

Questo errore può verificarsi non solo nel programma 1C, ma anche in altri programmi del sistema operativo Windows.

Il fatto è che nei sistemi operativi a 32 bit, per impostazione predefinita, ci sono 2 Gigabyte per vari programmi e la stessa quantità per il sistema operativo. Nel sistema operativo a 64 bit, la quantità di memoria allocata per le applicazioni è già di 4 Gigabyte.

In seguito a quanto sopra, è necessario aumentare la dimensione della memoria degli indirizzi allocata per le applicazioni, che è il programma 1C. Questo può essere fatto in due modi: passare da un sistema a 32 bit a uno a 64 bit o aumentare la quantità di memoria degli indirizzi inizialmente allocata.

Naturalmente, il primo metodo è migliore e preferibile, ma se al momento o del tutto non è possibile utilizzarlo, è possibile utilizzare il secondo.
Inizia il giorno, vai alla riga di comando del sistema operativo. Per fare ciò, vai al menu Start e digita "cmd" nella barra di ricerca.

Di fronte a te verrà visualizzata una ricerca di programmi. Seleziona quello chiamato "cmd".

Puoi anche aprire la riga di comando utilizzando la combinazione di tasti di scelta rapida Windows + R.

Nella finestra che si apre, digita il seguente comando e premi “Invio”:

bcdedit /set incrementouserva 3200

In questo caso, aumenterai la quantità di memoria indirizzi a 3200 Megabyte.

Dopo che ci sei riuscito, si consiglia vivamente di ripristinare la quantità precedente di memoria degli indirizzi. Questa misura è temporanea, poiché quando si alloca memoria per le applicazioni, il sistema operativo ne ha meno. Ciò potrebbe compromettere la stabilità di Windows.

Per ripristinare il valore predefinito della memoria indirizzi è possibile utilizzare il seguente comando, da inserire anche nella riga di comando:

bcdedit /deletevalue incrementouserva

Tieni presente che con il comune errore "Memoria esaurita" in 1C, anche l'eliminazione degli oggetti contrassegnati può essere d'aiuto. Forse il programma ne ha accumulati molti ed è difficile per il programma elaborare tali volumi di dati. Se questo metodo non aiuta, dovresti aumentare la bitness del sistema operativo Windows.

Uno degli errori più comuni che si verificano quando si lavora con 1C 8.3 è "Memoria insufficiente". In realtà, può verificarsi dopo molti eventi: aggiornamento, elaborazione di file di grandi dimensioni, generazione di un report, caricamento di dati e altro. Ciò significa che qualsiasi amministratore e sviluppatore 1C deve comprendere l'essenza del problema ed essere in grado di risolverlo. Il semplice aumento della RAM o del disco rigido del PC non risolverà questo problema.

Risoluzione del problema sul computer client

Le ragioni di questo errore non risiedono interamente nel sistema 1C, poiché puoi vedere un errore simile in altre applicazioni. Il problema è che nei sistemi operativi della famiglia Microsoft, per impostazione predefinita, viene allocata una certa quantità di memoria per ciascuna applicazione. Per i sistemi a 32 bit questo valore è impostato su 2 GB, per i sistemi a 64 bit - 4 GB. Quando il software supera questo valore, sul monitor viene visualizzata una finestra di errore.

Il modo più semplice per eliminare tali messaggi è eliminare gli oggetti contrassegnati per l'eliminazione nella configurazione. Questo aiuta raramente, ma elimina esitazioni inutili. Inoltre, il rischio di queste azioni è minimo, poiché non richiede l'intervento nelle impostazioni interne di Windows. Se la rimozione non aiuta, dovrai combattere con altri metodi.

Un'altra soluzione per i sistemi a 32 bit è passare alla versione a 64 bit o allocare più memoria alle applicazioni. La prima opzione è molto più corretta, ma a volte, per vari motivi, è impossibile. Quindi c'è solo l'opzione con l'algoritmo di azione mostrato di seguito, ma dovresti usarla con molta attenzione: potrebbero esserci problemi significativi con le prestazioni dell'intero sistema.

Questo algoritmo è abbastanza semplice:

  1. Apri il prompt dei comandi di Windows. Utilizza il menu Start o la combinazione di tasti Windows +R e digita il comando “cmd”;
  2. Nella finestra che appare, digita il comando “bcdedit /set increaseuserva 3200” (ad esempio, aumenteremo il limite a 3,2 GB). Vale la pena aumentare il limite con attenzione e gradualmente;
  3. Dopo aver confermato il corretto completamento dell'operazione nella finestra del prompt dei comandi, riavvia il PC e riprova i passaggi che hanno portato all'errore. Se il problema persiste e 1C continua a bloccarsi, puoi aumentare nuovamente il limite;
  4. Dopo aver completato con successo l'operazione senza errori in 1C, ripristinare le restrizioni predefinite di Windows con il comando "bcdedit /deletevalue increaseuserva". Questo è un passaggio necessario affinché il sistema operativo non comprometta le sue prestazioni per il bene di 1C e altre applicazioni.

Questa soluzione consente di eseguire un'operazione che non può essere eseguita a causa dell'errore 1C "Memoria insufficiente". Può essere utilizzato solo in casi di emergenza quando l'operazione deve essere eseguita immediatamente. In altre circostanze, è meglio provare a eseguire 1C su una piattaforma a 64 bit e ripetere lì l'operazione.

Dovresti prendere molto più seriamente il messaggio che durante un aggiornamento o un'operazione su larga scala non c'è abbastanza memoria sul server. Il problema potrebbe essere il completamento prematuro dei processi avviati da vari software, con conseguente "stratificazione" e accumulo degli stessi nella memoria virtuale. La seconda fonte di tale errore è il lavoro intenso di vari programmi con la prenotazione e la liberazione della memoria. Esistono vari software per risolvere questi problemi, ma la pratica dimostra che provoca interruzioni di connessione e arresti anomali di 1C.


Errori come questi ti fanno chiedere se il server 1C sia abbastanza potente. L’aumento della sua capacità andrà a vantaggio dell’azienda, ma questo errore può essere aggirato in altri modi che non richiedono un’iniezione di liquidità.

Naturalmente, non dovresti usarli sempre, ma un giorno potranno aiutarti a svolgere urgentemente un lavoro ad alta intensità di risorse, se necessario. Tra i metodi popolari che possono aiutare a risolvere l'errore di memoria insufficiente sul server ci sono:

  • Riavvio dei processi di lavoro 1C, che porterà a una diminuzione della memoria utilizzata. Questa opzione è adatta solo agli amministratori esperti che comprendono la console di amministrazione del server 1C;
  • Utilizzando il registro della tecnologia, individuare la tabella che, una volta caricata, riceve l'errore "Memoria insufficiente" durante un aggiornamento o un'altra operazione. Se viene visualizzato un errore quando si lavora con la tabella "config", verificare la configurazione con il flag "Verifica l'integrità logica della configurazione". Puoi trovare questa funzione nel configuratore nel menu “Configurazione”.
  • Un altro errore 1C comune si verifica quando non c'è abbastanza spazio sul disco rigido del server. Le tabelle temporanee occupano molto spazio e, se non c'è abbastanza spazio, l'amministratore visualizza l'errore "Memoria libera insufficiente per eseguire l'operazione". In questo caso è difficile dare consigli precisi, poiché la struttura del server o del cluster può differire notevolmente nelle diverse versioni. Tra le soluzioni standard che aiutano in questi casi, puoi trovare il riavvio del server, l'aumento dello spazio libero, l'ottimizzazione delle query e l'aggiornamento della versione.


    Nelle aziende con un numero elevato di utenti, l'errore "Memoria libera insufficiente sul server 1C:Enterprise 8.3" si verifica abbastanza spesso. Un grosso problema e un prerequisito per questo è l'analisi insufficiente delle prestazioni richieste. Pertanto, quando si implementa 1C, prestare molta attenzione alla potenza sufficiente del server in modo da non dover modificare le prestazioni a scapito della stabilità in futuro.

    La stessa situazione può verificarsi durante la generazione di un report di grandi dimensioni, l'esecuzione, durante l'esecuzione, il caricamento di una grande base di informazioni, ecc. Tieni presente che ciò accade quando si eseguono alcune operazioni su larga scala che richiedono una certa quantità di risorse del computer. Inoltre, in modalità normale, il programma 1C funziona in modo relativamente normale.

    Suggerimenti come pulire il disco su cui è installato il programma, eseguirlo nel programma, utilizzarlo selezionando Compressione delle tabelle dell'infobase , molto probabilmente non darà il risultato desiderato, anche se vale la pena provarli.

    Affinché il programma 1C funzioni, vengono imposti determinati requisiti ai parametri del computer e, se le loro caratteristiche non corrispondono al programma installato, potrebbero sorgere problemi sotto forma di rallentamenti e comparsa di questo tipo di errore.

    Dopo aver aggiunto più RAM al nostro computer, l'errore appare di nuovo. In questo caso il motivo risiede nella limitata allocazione della memoria di indirizzi da parte del sistema operativo per il software:

    • nei sistemi operativi a 32 bit, per impostazione predefinita vengono assegnati 2 GB per vari programmi e la stessa quantità per il sistema operativo,
    • nei sistemi operativi a 64 bit: la capacità di memoria è già di 4 GB.

    Quando si lavora con 1C ed si esegue un'operazione, è possibile utilizzare Responsabile delle attività monitorare il processo di caricamento del processore e la quantità di memoria libera. Nel nostro caso, durante l'aggiornamento questa cifra si è avvicinata allo zero e in quel momento si è verificato l'errore “Memoria insufficiente”. Lancio Responsabile delle attività possibile premendo i tasti Ctrl+Alt+Canc e aprendo la scheda Prestazione, monitorare questi indicatori.

    Pertanto, dobbiamo aumentare la dimensione della memoria degli indirizzi allocata per le applicazioni (incluso 1C). Questo può essere fatto in due modi: passare da un sistema a 32 bit a un sistema a 64 bit o aumentare la quantità predefinita di memoria degli indirizzi allocata. La prima opzione è più corretta, ma per alcuni motivi potrebbe non essere possibile, quindi consideriamo la seconda opzione per risolvere il problema.

    Si verificano errori. Ne esamineremo uno, dedicato all'argomento "Memoria libera insufficiente sul server 1C:Enterprise".

    Metodo per eliminare l'errore "Memoria libera insufficiente sul server 1C:Enterprise".

    La capacità di memoria dei processi di lavoro quando si lavora sul server dell'agente 1C non è infinita. Quando è al massimo carico, l'utente vede un messaggio che piace alla sua novità: "Non c'è abbastanza memoria libera sul server 1C:Enterprise".


    Innanzitutto, parliamo delle ragioni di questo tipo di messaggi: perché non c'è abbastanza memoria. Potrebbero essercene diversi:

    Potenza del ferro insufficiente

    Se nel sistema lavorano fino a cinque persone, sarà sufficiente un computer da otto gigabyte con due viti (su uno - SERVER, sul secondo - SQL) e chip aggiuntivi installati. Ma è un'altra questione: una trentina di utenti, migliaia di documenti primari. In questo caso SQL deve essere spostato su un server separato e un server terminal da solo non può farcela.

    Mancanza di memoria per informazioni non necessarie

    Le configurazioni tipiche cercano di descrivere letteralmente tutti i processi che uno sviluppatore potrebbe immaginare, cercando di creare uno strumento di contabilità universale chiamato 1C:Enterprise. Pertanto, un utente specifico riceve un bagaglio aggiuntivo sotto forma di un abisso di oggetti di metadati, tabelle SQL aggiuntive e dettagli inutilizzati. La registrazione costante e la reindicizzazione di tutto questo materiale non necessario nei registri del programma richiede molto tempo e molto spazio.

    Errori di codifica

    Il sovraccarico del server si verifica anche quando i programmatori (a volte) non comprendono determinati processi e introducono le proprie “stampelle” che aumentano il tempo necessario per completare le attività assegnate (e anche il numero di processi di lavoro).

    Errori del programma

    Tra le altre cose, e spesso questo è quasi il motivo principale, il programma 1C presenta un numero incredibile di errori interni. Alcuni di essi vengono risolti nelle versioni successive. A questi errori sono dedicati un gran numero di forum, dove gli amministratori, discutendo degli ultimi trucchi, dicono scherzosamente che probabilmente solo i tagiki (Dzhamshut e Ravshan) lavorano nello stesso social network.

    Allora cosa fare con il server 1C?

    Poiché le cause di un problema possono essere diverse, esistono anche diversi modi per risolvere la situazione:

    Riavvio del servizio server

    La soluzione più rapida e semplice è riavviare il servizio server. Dalla riga di comando di Microsoft Windows (cmd): per arrestare, eseguire il comando - net stop "1C:Enterprise 8.3 (o la tua versione) Server Agent", e per avviare - net start "1C:Enterprise 8.3 (a seconda della tua versione) Agente server". Questa soluzione non risolve completamente il problema: molto spesso l'errore si ripete. La frequenza delle sue ripetizioni dipende dal numero di clienti e dal numero di processi di lavoro.

    IMPORTANTE. Per poter riavviare è necessario disporre dei diritti appropriati.

    Riavvio automatico e impostazioni del cluster

    A volte anche un flusso di lavoro in esecuzione può occupare quasi tutta la RAM. Questo problema viene risolto aumentandone il numero nelle impostazioni del cluster. Aggiungono circa un processo ogni quindici-trenta utenti.

    Intervallo di riavvio. Poco prima che finisca quello precedente, viene avviato un nuovo processo rphost.exe. - Le connessioni da quella vecchia vengono trasferite ad esso. Dimensione memoria consentita: se questo valore viene superato, verrà avviato un secondo conto alla rovescia.

    Intervallo per il superamento del volume limite: quando il timer supera questo valore, verrà avviato un nuovo processo. E le connessioni di quello vecchio saranno collegate ad esso. E quello vecchio, a sua volta, è contrassegnato come inattivo. Spento arresta i processi dopo: una volta superato il valore di questo parametro, dopo aver contrassegnato il flusso di lavoro come inattivo, verrà terminato dal sistema operativo. Se si specifica questo parametro uguale a "0", tutti i processi inattivi non verranno terminati automaticamente.

    IMPORTANTE. Questa impostazione è caratterizzata dal fatto che disconnette dal database solo il client che ha lanciato il report errato. E il resto verrà spostato senza problemi su nuove connessioni (senza interruzioni dalla loro base).

    Numero di processi di lavoro

    Se rphost.exe è sovraccarico di processi in background e non vengono creati nuovi processi, è necessario controllare le impostazioni:

    Massimo. La dimensione della memoria dei processi di lavoro è la quantità totale di memoria per tutti i processi insieme. Misurato in byte. Se imposti un valore sbagliato (non adeguato al normale funzionamento), tutti riceveranno l'errore "Memoria libera insufficiente sul server 1c".

    Consumo sicuro di memoria per chiamata: controlla il consumo di memoria durante una chiamata da parte del server (in byte). Se una chiamata utilizza più numeri rispetto a quelli specificati, verrà completata all'interno del cluster. Non verrà riavviato. E la perdita di una sessione non influirà sugli altri clienti.

    La quantità di memoria per i processi fino alla quale il server è considerato produttivo dal sistema: quando viene raggiunto questo valore, il server cluster smette di accettare connessioni. Numero di basi di informazioni per processo: isola la sicurezza delle informazioni per processo. Dopo aver isolato le basi informative (inserendo il valore “1”), i problemi vengono solitamente risolti.

    Numero di connessioni per processo: il valore predefinito è "128". Se il database corrente presenta un carico molto pesante derivante da lavori in background, è possibile ridurre questo numero, ad esempio, a "25". Con queste impostazioni, le impostazioni del cluster cambieranno leggermente:

    Livello di tolleranza agli errori: mostra il numero di server che, in caso di guasto, non causeranno l'arresto di emergenza dei client. In questo caso, i servizi di backup verranno avviati automaticamente nella quantità richiesta.

    Modalità di condivisione del carico: ha due opzioni possibili. Se imposti "Priorità alle prestazioni", la memoria del server verrà consumata maggiormente per aumentare le prestazioni. Quando selezioni "Priorità memoria", il cluster 1C salverà memoria.

    Strumento banca dati

    Per operare con il database, è necessario utilizzare MS SQL DBMS.

    Verifica della configurazione

    Forse la causa dell'errore risiede nelle informazioni errate contenute nella Configurazione. Per verificarlo è necessario eseguire il comando “Verifica configurazione”. (Da non confondere con i test!). Prima dell'esecuzione, è necessario verificare l'impostazione della casella di controllo (casella di controllo) - "integrità logica". Se viene rilevata un'inesattezza, questa verrà riflessa nel messaggio. E gli errori verranno rimossi.

    Abbiamo esaminato le ragioni della mancanza di memoria libera sul server 1C e i possibili modi per eliminarla. Uno dei metodi risolverà sicuramente il problema.

    È impossibile elencare tutte le situazioni in cui si verifica l'errore 1C "Memoria insufficiente" (Fig. 1). Proviamo ad individuare i principali:

    • Quando si aggiorna la configurazione;
    • All'avvio dell'applicazione;
    • Quando si genera un rapporto;
    • Quando si eseguono calcoli di grandi dimensioni (esecuzione del documento “Calcolo dei costi”, “Chiusura del mese” e così via).

    Il motivo in tutti i casi è lo stesso: mancanza di memoria fisica sul computer. Tuttavia, l'aggiunta di ulteriori memorie RAM al dispositivo non sempre risolve il problema.

    Cosa determina la dimensione della memoria disponibile

    I sistemi operativi a 32 bit hanno una caratteristica significativa: indipendentemente dalla quantità di RAM e dalla dimensione del file di paging, il sistema operativo assegna solo 4 GB per l'esecuzione di un'applicazione specifica.

    Considerando che metà dello spazio degli indirizzi della memoria virtuale è allocata per le esigenze del sistema stesso, per l'applicazione rimangono solo 2 GB. Quando il programma è in esecuzione, lo spazio degli indirizzi della memoria virtuale deve essere riservato in un blocco contiguo. Quando ciò non è possibile, viene visualizzata una finestra (Fig. 1).

    Come aumentare la memoria disponibile

    Senza reinstallare il sistema operativo, ci sono due opzioni per correggere la situazione:


    Utilizzando questi metodi, è possibile ridurre lo spazio degli indirizzi allocato per il sistema operativo a 1 GB, aumentando la memoria per l'applicazione a 3 GB.

    Attenzione! Allocando manualmente la memoria, potresti riscontrare problemi nel funzionamento del tuo personal computer, fino all'arresto completo del sistema.

    Rimuovendo la riga dal file boot.ini o eseguendo il comando e sostituendo il parametro 2900 con 2000 si riporta il sistema al suo stato originale.

    È importante capire che questi metodi sono solo una soluzione temporanea al problema; per eliminarlo definitivamente è necessario trasferire il database su una piattaforma a 64 bit.

    Memoria insufficiente durante la generazione di un report

    Non molto spesso, ma questo errore si verifica quando si verificano le segnalazioni. In questo caso, il processo di generazione di un documento foglio di calcolo viene ritardato e, alla fine, si conclude con una finestra, come nella prima figura.

    Prima di entrare nelle impostazioni del sistema operativo e modificare i parametri di allocazione della RAM, in questo caso è meglio provare a modificare le impostazioni del report. Cambia la data, cambia i raggruppamenti, aggiungi la selezione. Nella maggior parte dei casi questo aiuta.

    Se l'errore non si verifica in un report standard (come una scheda conto o un bilancio) e si ha accesso al codice di elaborazione sorgente, verificare se nella query vengono formate tabelle temporanee. Registrati nella RAM ed esistenti fino alla fine della richiesta, possono consumare in modo significativo le risorse di un computer debole.

    In generale, per evitare tali situazioni, è altamente consigliabile distruggere le tabelle temporanee in una query immediatamente dopo che non sono più necessarie.

    Perdite di memoria sul server

    In alcuni casi, gli utenti ricevono un messaggio mostrato in Fig. 3

    Riso. 3.

    Vorrei parlare separatamente delle ragioni di questo comportamento del server.

    In generale, la frase “perdita di memoria” è alquanto imprecisa, è meglio dire che la memoria viene immagazzinata, stratificata; I programmi che avviano processi dimenticano di terminarli in modo tempestivo. Di conseguenza, si accumulano nella RAM.

    Il secondo motivo è la frammentazione della memoria. Se si verifica una prenotazione e un rilascio intensivi di RAM durante il funzionamento del server, a un certo punto potrebbe verificarsi una situazione in cui la quantità di memoria libera è sufficiente, ma è impossibile acquisire un blocco continuo di indirizzi di memoria di dimensioni sufficienti.

    Puoi risolvere il secondo problema utilizzando le utilità di sistema.

    Di conseguenza potrebbero:

    1. Ci sono problemi con la connessione, si interrompe, il programma va in crash (Fig. 4)

    Fig.4

    1. Appaiono errori e blocchi durante lo scaricamento della base informazioni;
    2. Ci sono salti nella memoria occupata dai processi 1C.

    Aggiorna errori

    Questa opzione di memoria insufficiente si verifica quando si tenta di aggiornare la configurazione alla versione corrente. Può essere associato a un gran numero di applicazioni in esecuzione o ad errori nel database.

    La prima azione quando si verifica questo problema è avviare il database aggiornato in modalità configuratore ed effettuare la sua ristrutturazione (voce di menu Amministrazione->Test e correzione), anche se è meglio svolgere un lavoro completo per correggere errori e reindicizzare le tabelle .