Няма памет в 1s какво да правя


Грешката „Недостиг на памет“ в 1C 8.3 и 8.2 не е толкова рядка. Може да се намери и в конфигуратора (например при сравняване на конфигурации), както и в режим 1C:Enterprise при извършване на трудоемка обработка: например при писане на голям base64 файл.

Тази грешка може да възникне не само в програмата 1C, но и в други програми на операционната система Windows.

Работата е там, че в 32-битовите операционни системи по подразбиране има 2 гигабайта за различни програми и същото количество за операционната система. В 64-битовата ОС количеството памет, разпределено за приложения, вече е 4 гигабайта.

Следвайки горното, трябва да увеличите размера на разпределената адресна памет за приложения, което е програмата 1C. Това може да стане по два начина: да преминете от 32-битова система към 64-битова или да увеличите първоначално разпределеното количество адресна памет.

Разбира се, първият метод е по-добър и за предпочитане, но ако в момента или изобщо не можете да го използвате, можете да използвате втория.
Начален ден, отидете на командния ред на операционната система. За да направите това, отидете в менюто "Старт" и въведете "cmd" в лентата за търсене.

Пред вас ще се покаже търсене на програми. Изберете този, наречен „cmd“.

Можете също да отворите командния ред, като използвате комбинацията от клавишни комбинации Windows + R.

В прозореца, който се отваря, въведете следната команда и натиснете „Enter“:

bcdedit /задаване на увеличениеuserva 3200

В този случай ще увеличите обема на адресната памет до 3200 мегабайта.

След като успеете, силно се препоръчва да възстановите предишното количество адресна памет. Тази мярка е временна, тъй като когато паметта се разпределя за приложения, операционната система има по-малко памет. Това може да компрометира стабилността на Windows.

За да възстановите адресната памет до нейната стойност по подразбиране, можете да използвате следната команда, която също се въвежда в командния ред:

bcdedit /deletevalue увеличениеuserva

Моля, имайте предвид, че при често срещаната грешка „Недостиг на памет“ в 1C изтриването на маркирани обекти също може да помогне. Може би програмата е натрупала много от тях и е трудно за програмата да обработва такива обеми от данни. Ако този метод не помогне, тогава трябва да увеличите битовостта на операционната система Windows.

Една от най-честите грешки, които възникват при работа с 1C 8.3, е „Няма достатъчно памет“. Реално може да възникне след много събития - актуализиране, обработка на големи файлове, генериране на отчет, зареждане на данни и др. Това означава, че всеки администратор и разработчик на 1C трябва да разбира същността на проблема и да може да го коригира. Простото увеличаване на RAM паметта или твърдия диск на вашия компютър няма да реши този проблем.

Решаване на проблема на клиентския компютър

Причините за тази грешка не са изцяло в системата 1C, тъй като можете да видите подобна грешка в други приложения. Проблемът е, че в операционните системи от семейството на Microsoft по подразбиране за всяко приложение се разпределя определено количество памет. За 32-битови системи тази стойност е зададена на 2 GB, за 64-битови системи - 4 GB. Когато софтуерът надвиши тази стойност, на монитора се появява прозорец за грешка.

Най-лесният начин да се отървете от такива съобщения е да изтриете обекти, маркирани за изтриване в конфигурацията. Това помага рядко, но елиминира ненужното колебание. Освен това рискът от тези действия е минимален, тъй като не изисква намеса във вътрешните настройки на Windows. Ако премахването не помогне, тогава ще трябва да се борите с други методи.

Друго решение за 32-битовите системи е да преминете към 64-битовата версия или да разпределите повече памет за приложенията. Първият вариант е много по-правилен, но понякога по различни причини е невъзможен. След това има само опцията с алгоритъма за действие, показан по-долу, но трябва да я използвате много внимателно - може да има значителни проблеми с производителността на цялата система.

Този алгоритъм е доста прост:

  1. Отворете командния ред на Windows. Използвайте менюто "Старт" или клавишната комбинация на Windows +R и въведете командата "cmd";
  2. В прозореца, който се показва, въведете командата „bcdedit /set increaseuserva 3200“ (например ще увеличим ограничението до 3,2 GB). Струва си да увеличите лимита внимателно и постепенно;
  3. След като потвърдите успешното завършване на операцията в прозореца на командния ред, рестартирайте компютъра си и опитайте отново стъпките, довели до грешката. Ако проблемът не изчезне и 1C все още се срива, можете да увеличите лимита отново;
  4. След успешно завършване на операцията без грешка в 1C, възстановете ограниченията на Windows по подразбиране с командата „bcdedit /deletevalue increaseuserva“. Това е необходима стъпка, така че операционната система да не компрометира своята производителност в името на 1C и други приложения.

Това решение ви позволява да извършите операция, която не може да бъде изпълнена поради грешката 1C „Недостатъчна памет“. Може да се използва само в спешни случаи, когато операцията трябва да се извърши незабавно. При други обстоятелства е по-добре да опитате да стартирате 1C на 64-битова платформа и да повторите операцията там.

Трябва да приемете много по-сериозно съобщението, че няма достатъчно памет на сървъра по време на актуализация или мащабна операция. Проблемът може да бъде ненавременно завършване на процеси, стартирани от различен софтуер, което води до „наслояване“ и натрупването им във виртуалната памет. Вторият източник на такава грешка е интензивната работа на различни програми с резервиране и освобождаване на памет. Има различни софтуери за решаване на тези проблеми, но практиката показва, че причинява прекъсвания на връзката и сривове на 1C.


Грешки като тези ви карат да се чудите дали 1C сървърът е достатъчно мощен. Увеличаването на капацитета му ще бъде от полза за компанията, но подобна грешка може да бъде заобиколена по други начини, които не изискват инжектиране на пари.

Разбира се, не трябва да ги използвате през цялото време, но един ден те могат да ви помогнат спешно да извършите ресурсоемка работа, ако е необходимо. Сред популярните методи, които могат да помогнат за разрешаването на грешката от недостатъчна памет на сървъра, са:

  • Рестартиране на работните процеси на 1C, което ще доведе до намаляване на използваната памет. Тази опция е подходяща само за опитни администратори, които разбират конзолата за администриране на сървъра 1C;
  • Използвайки технологичния дневник, намерете таблицата, която при зареждане получава грешката „Недостатъчна памет“ по време на актуализация или друга операция. Ако се появи грешка при работа с таблицата „config“, проверете конфигурацията с флага „Проверете логическата цялост на конфигурацията“. Можете да намерите тази функция в конфигуратора в менюто „Конфигурация“.
  • Друга често срещана грешка в 1C възниква, когато няма достатъчно място на твърдия диск на сървъра. Временните таблици заемат много място и ако няма достатъчно място, администраторът вижда грешката „Няма достатъчно свободна памет за извършване на операцията“. В този случай е трудно да се даде точен съвет, тъй като дизайнът на сървъра или клъстера може да се различава значително в различните версии. Сред стандартните решения, които помагат в такива случаи, можете да намерите рестартиране на сървъра, увеличаване на свободното пространство, оптимизиране на заявки и актуализиране на версията.


    В компании с голям брой потребители грешката „Недостатъчна свободна памет на сървъра 1C:Enterprise 8.3“ се появява доста често. Голям проблем и предпоставка за това е недостатъчният анализ на изискваната производителност. Ето защо, когато внедрявате 1C, обърнете голямо внимание на достатъчната мощност на сървъра, така че в бъдеще да не се налага да коригирате производителността за сметка на стабилността.

    Същата ситуация може да възникне при генериране на голям отчет, изпълнение, при изпълнение, зареждане на голяма информационна база и т.н. Имайте предвид, че това се случва при извършване на някои мащабни операции, които изискват определено количество компютърни ресурси. Освен това в нормален режим програмата 1C работи сравнително нормално.

    Съвети като почистване на диска, на който е инсталирана програмата, стартиране в програмата, използване чрез избиране Компресиране на таблици на информационна база , най-вероятно няма да дадат желания резултат, въпреки че си струва да опитате.

    За да работи програмата 1C, към параметрите на компютъра се налагат определени изисквания и ако техните характеристики не съответстват на инсталираната програма, тогава могат да възникнат проблеми под формата на забавяне и появата на този тип грешка.

    След добавяне на повече RAM към нашия компютър, грешката се появява отново. В този случай причината се крие в ограниченото разпределение на адресна памет от операционната система за софтуер:

    • в 32-битови операционни системи по подразбиране се разпределят 2 GB за различни програми и същото количество за операционната система,
    • в 64-битови операционни системи - капацитетът на паметта вече е 4 GB.

    Когато работите с 1C и извършвате операция, можете да използвате Диспечер на задачитеследете процеса на натоварване на процесора и свободното количество памет. В нашия случай по време на актуализацията тази цифра се доближи до нула и в този момент възникна грешката „Недостатъчна памет“. Стартирайте Диспечер на задачитевъзможно чрез натискане на клавиши Ctrl+Alt+Delи отваряне на раздела производителност, следете тези показатели.

    По този начин трябва да увеличим размера на разпределената адресна памет за приложения (включително 1C). Това може да стане по два начина: да преминете от 32-битова система към 64-битова или да увеличите размера на разпределената адресна памет по подразбиране. Първият вариант е по-правилен, но по някои причини може да не е възможно, така че нека разгледаме втория вариант за решаване на проблема.

    Възникват грешки. Ще разгледаме един от тях, посветен на темата „Недостатъчна свободна памет на сървъра на 1C: Enterprise“.

    Метод за премахване на грешката „Няма достатъчно свободна памет на сървъра на 1C:Enterprise.“

    Капацитетът на паметта на работните процеси при работа на сървъра на 1C агент не е безкраен. Когато е при максимално натоварване, потребителят вижда съобщение, което е приятно със своята новост - „Няма достатъчно свободна памет на сървъра 1C: Enterprise“.


    Първо, нека поговорим за причините за този вид съобщения - защо няма достатъчно памет. Може да има няколко от тях:

    Недостатъчна мощност на желязото

    Ако в системата работят до петима души, тогава ще бъде достатъчен един осем гигабайтов компютър с два винта (на единия - SERVER, на втория - SQL) и допълнително инсталирани чипове. Но това е друг въпрос - около тридесет потребители, хиляди първични документи. Тук SQL трябва да се премести на отделен сървър и терминалният сървър сам не може да се справи.

    Липса на памет за ненужна информация

    Типичните конфигурации се опитват да опишат буквално всички процеси, които един разработчик може да си представи, опитвайки се да създаде универсален счетоводен инструмент, наречен 1C:Enterprise. Следователно конкретен потребител получава допълнителен багаж под формата на бездна от обекти с метаданни, допълнителни SQL таблици и неизползвани подробности. Постоянната регистрация и повторно индексиране на всички тези ненужни неща в регистрите на програмата отнема много време и много място.

    Грешки в кодирането

    Претоварването на сървъра също възниква, когато програмистите (понякога) не разбират определени процеси и въвеждат свои собствени „патерици“, които увеличават времето, необходимо за изпълнение на възложените задачи (и броя на работните процеси също).

    Програмни грешки

    Освен всичко друго, и това често е почти основната причина - програмата 1C има невероятен брой вътрешни грешки. Някои от тях са коригирани в следващите версии. Голям брой форуми са посветени на тези грешки, където администраторите, обсъждайки най-новите трикове, шеговито казват, че вероятно само таджики (Джамшут и Равшан) работят в една и съща социална мрежа.

    И така, какво да правя със сървъра 1C?

    Тъй като причините за даден проблем могат да бъдат различни, има и различни начини за разрешаване на ситуацията:

    Рестартиране на сървърната услуга

    Най-бързото и лесно решение е да рестартирате сървърната услуга. От командния ред на Microsoft Windows (cmd): за спиране изпълнете командата - net stop "1C:Enterprise 8.3 (или вашата версия) Server Agent", а за стартиране - net start "1C:Enterprise 8.3 (според вашата версия) Сървърен агент". Това решение не решава напълно проблема - най-често грешката се повтаря. Честотата на повторенията му зависи от броя на клиентите и броя на работните процеси.

    ВАЖНО.

    За да можете да рестартирате, трябва да имате съответните права.

    Автоматично рестартиране и настройки на клъстера

    Понякога дори един работещ работен процес може да заеме почти цялата RAM. Този проблем се решава чрез увеличаване на броя им в настройките на клъстера. Те добавят приблизително един процес на всеки петнадесет до тридесет потребители.

    Интервал за рестартиране. Малко преди предишният да приключи, стартира нов процес rphost.exe. - Към него се прехвърлят връзки от стария. Допустим размер на паметта - ако тази стойност бъде надвишена, ще се стартира втори таймер за обратно броене.

    Интервал за превишаване на пределния обем - когато таймерът надвиши тази стойност, ще се стартира нов процес. И връзките от стария ще бъдат свързани към него. А старият от своя страна е маркиран като неактивен. Изкл спре процеси след - след като стойността на този параметър премине след маркиране на работния поток като неактивен, той ще бъде прекратен от операционната система. Ако зададете този параметър равен на „0“, тогава всички неактивни процеси няма да бъдат прекратени автоматично.

    ВАЖНО.

    Тази настройка се характеризира с факта, че изключва от базата данни само клиента, който е стартирал неправилния отчет. А останалите ще бъдат плавно преместени към нови връзки (без прекъсване от тяхната база).

    Брой работни процеси

    Ако rphost.exe е претоварен с фонови задания и не се създават нови процеси, трябва да проверите настройките:

    Количеството памет за процеси, до чиято стойност сървърът се счита за продуктивен от системата - когато тази стойност бъде достигната, сървърът на клъстера спира да приема връзки. Брой информационни бази за процес - изолира информационната сигурност по процес. След изолиране на информационни бази (чрез въвеждане на стойност „1“) проблемите обикновено се решават.

    Брой връзки на процес - стойността по подразбиране е „128“. Ако текущата база данни има много голямо натоварване от фонови задания, тогава можете да намалите този брой, например, до „25“. С тези настройки настройките на клъстера ще се променят леко:

    Ниво на устойчивост на грешки - показва броя на сървърите, които, ако се повредят, няма да доведат до аварийно изключване на клиенти. В този случай услугите за архивиране ще бъдат автоматично стартирани в необходимото количество.

    Режим на споделяне на натоварването - има две възможни опции. Ако зададете „Приоритет на производителността“, тогава паметта на сървъра ще се консумира повече, за да се увеличи производителността. Когато изберете „Приоритет на паметта“, клъстерът 1C ще спести памет.

    Инструмент за база данни

    За да работите с базата данни, трябва да използвате MS SQL СУБД.

    Проверка на конфигурацията

    Възможно е причината за грешката да е в неправилна информация, съдържаща се в конфигурацията. За да го проверите, трябва да изпълните командата „Проверка на конфигурацията“. (Да не се бърка с тестването!). Преди изпълнението трябва да проверите настройката на квадратчето за отметка (квадрат за отметка) - „логическа цялост“. Ако бъде открита неправилност, това ще бъде отразено в съобщението. И грешките ще бъдат премахнати.

    Разгледахме причините за липсата на свободна памет на сървъра 1C и възможните начини за премахване на това. Един от методите със сигурност ще реши проблема.

    Невъзможно е да се изброят всички ситуации, когато възникне грешката 1C „Недостатъчна памет“ (фиг. 1). Нека се опитаме да идентифицираме основните:

    • При обновяване на конфигурацията;
    • При стартиране на приложението;
    • При генериране на отчет;
    • При извършване на големи изчисления (извършване на документа „Изчисляване на разходите“, „Затваряне на месеца“ и т.н.).

    Причината във всички случаи е една и съща - липса на физическа памет на компютъра. Добавянето на допълнителни RAM памети към устройството обаче не винаги решава проблема.

    Какво определя размера на наличната памет

    32-битовите операционни системи имат една важна характеристика: независимо от количеството RAM и размера на файла за виртуална памет, операционната система отделя само 4 GB за изпълнение на конкретно приложение.

    Като се има предвид, че половината от адресното пространство на виртуалната памет е разпределено за нуждите на самата система, за приложението остават само 2GB. Когато програмата работи, адресното пространство на виртуалната памет трябва да бъде запазено в един непрекъснат блок. Когато това не е възможно, се появява прозорец (фиг. 1).

    Как да увеличите наличната памет

    Без преинсталиране на операционната система има две възможности за коригиране на ситуацията:


    Използвайки тези методи, можете да намалите адресното пространство, разпределено за операционната система, до 1 GB, като увеличите паметта за приложението до 3 GB.

    внимание! Чрез ръчно разпределяне на паметта можете да срещнете проблеми в работата на вашия персонален компютър, до пълно спиране на системата.

    Премахването на реда от файла boot.ini или изпълнението на командата и замяната на параметър 2900 с 2000 връща системата в първоначалното й състояние.

    Важно е да разберете, че тези методи са само временно решение на проблема; за да го премахнете завинаги, трябва да прехвърлите базата данни на 64-битова платформа.

    Недостатъчна памет при генериране на отчет

    Не много често, но тази грешка възниква, когато се появят отчети. В този случай обработката на генериране на табличен документ се забавя и в крайна сметка завършва с прозорец, както на първата фигура.

    Преди да влезете в настройките на операционната система и да промените параметрите за разпределение на RAM, в този случай е по-добре да опитате да промените настройките на отчета. Променете датата, променете групирането, добавете селекция. В повечето случаи това помага.

    Ако грешката не се появи в стандартен отчет (като карта на сметка или баланс) и имате достъп до изходния код за обработка, проверете дали в заявката се формират временни таблици. Записани в RAM и съществуващи до края на заявката, те могат значително да изядат ресурсите на слаб компютър.

    Като цяло, за да се избегнат подобни ситуации, силно се препоръчва да унищожите временните таблици в заявка веднага след като вече не са необходими.

    Изтичане на памет на сървъра

    В някои случаи потребителите получават съобщение, показано на фиг. 3

    Ориз. 3.

    Бих искал да говоря отделно за причините за това поведение на сървъра.

    Като цяло фразата „изтичане на памет“ е донякъде неточна; по-добре е да се каже, че паметта се съхранява, напластява. Програмите, които стартират процеси, забравят да ги прекратят навреме. В резултат на това те се натрупват в RAM.

    Втората причина е фрагментацията на паметта. Ако възникне интензивно резервиране и освобождаване на RAM по време на работа на сървъра, в един момент може да възникне ситуация, когато количеството свободна памет е достатъчно, но е невъзможно да се улови непрекъснат блок от адреси на паметта с достатъчен размер.

    Можете да разрешите втория проблем с помощта на системни помощни програми.

    В резултат на това те могат:

    1. Има проблеми с връзката, тя прекъсва, програмата се срива (фиг. 4);

    Фиг.4

    1. Появяват се грешки и замръзвания при разтоварване на информационната база;
    2. Има скокове в паметта, заета от 1C процеси.

    Актуализиране на грешки

    Тази опция за малко памет възниква, когато се опитате да актуализирате конфигурацията до текущата версия. Може да бъде свързано или с голям брой работещи приложения, или с грешки в базата данни.

    Първото действие, когато възникне този проблем, е да стартирате актуализираната база данни в режим на конфигуратор и да извършите нейното преструктуриране (елемент от менюто Администриране->Тестване и корекция), въпреки че е по-добре да извършите пълна гама от дейности за коригиране на грешки и преиндексиране на таблици .