Тарифы Услуги Сим-карты

1с не хватает памяти

Возникают ошибки. Мы рассмотрим одну из них, посвящённую теме «Недостаточно свободной памяти на сервере 1С:Предприятия».

Методика устранения ошибки «Недостаточно свободной памяти на сервере 1С:Предприятия».

Объём памяти рабочих процессов при работе на агент-сервере 1С не является бесконечным. При его максимальной загрузке пользователь видит перед собой радующее своей новизной сообщение - «Недостаточно свободной памяти на сервере 1С:Предприятия».


Сначала о причинах возникновения подобного рода сообщений - почему памяти не хватает. Их может быть несколько:

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

Если в системе работает до пяти человек - тогда будет достаточно одного восьмигигабайтного компа с двумя винтами (на одном - SERVER, на втором - SQL) и дополнительно установленных фишек. Но другое дело - человек тридцать пользователей, тысячи документов первички. Тут и SQL нужно выносить в отдельный сервер, и одним сервером терминалов уже не справиться.

Нехватка памяти для лишней информации

Типовые конфигурации пытаются описывать буквально все процессы, которые только мог себе представить разработчик, пытаясь создать универсальное бухгалтерское средство под названием 1С:Предприятие. Поэтому конкретный пользователь получает дополнительный багаж в виде бездны объектов метаданных , дополнительных таблиц SQL, неиспользуемых реквизитов. Постоянная прописка и переиндексация всего этого ненужного в регистрах программы занимает длительное время и много места.

Ошибки кодирования

Перегрузка сервера возникает и при непонимании (иногда) программистами некоторых процессов и внедрении ими своих «костылей», увеличивающих срок выполнения поставленных задач (и количество рабочих процессов тоже).

Ошибки программы

Кроме всего прочего, и это является часто чуть ли не основной причиной - программа 1С имеет неимоверное количество внутренних ошибок . Некоторые из них исправляются в последующих релизах. Этим ошибкам посвящено большое количество форумов, на которых админы, обсуждая очередные каверзы, шутя говорят, что в один эс работают, наверное, одни таджики (Джамшут и Равшан).

Так что же делать с сервером 1С

Поскольку причины возникновения проблемы могут быть различными, то и способы выхода из ситуации тоже есть разные:

Перезапуск службы сервера

Самым быстрым и простым способом решения является перезапуск службы сервера. Из командной строки Microsoft Windows (cmd): для остановки выполняется команда - net stop «1C:Enterprise 8.3 (или ваша версия) Server Agent», а для запуска - net start «1C:Enterprise 8.3 (соответственно вашей версии) Server Agent». Такое решение не снимает вопрос полностью - чаще всего ошибка повторяется. Частота её повторов зависит от количества клиентов и количества рабочих процессов.

ВАЖНО. Для возможности перезапуска нужно обладать соответствующими правами.

Автоперезапуск и настройки кластера

Иногда даже один выполняемый рабочий процесс может занять чуть ли не всю оперативку. Такую задачу решают путём увеличения их количества в настройках кластера. Добавляют примерно по одному процессу для каждых пятнадцати-тридцати юзеров.

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

Интервал по превышению предельного объёма - при превышении таймером отсчёта этого значения будет запущен новый процесс. И на него подвяжутся соединения от старого. А старый, в свою очередь, помечается неактивным. Выкл. процессы останавливать через - по прошествии значения этого параметра после пометки рабочего процесса неактивным, произойдёт его завершение операционной системой. Если такой параметр указать равным «0» - тогда все неактивные процессы не будут автоматически завершаться.

ВАЖНО. Эта настройка характерна тем, что отключает от базы только того из клиентов, который запустил некорректный отчёт. А остальные - будут плавно перемещены к новым соединениям (без прерывания от своей базы).

Количество рабочих процессов

При перегрузке rphost.exe с фоновыми заданиями и отсутствии создания новых процессов нужно проверить настройки:

Макс. объем памяти рабочих процессов - это суммарный объем памяти для всех процессов вместе. Измеряется в байтах. При установке неправильного значения (неадекватного нормальной работе) все получат ошибку «Недостаточно свободной памяти на сервере 1с».

Безопасный расход памяти на 1 вызов - контролирует расходование памяти при вызове сервером (в байтах). При использовании вызовом большего количества чем указано - он будет завершён внутри кластера. Перезапуск его произведён не будет. А утрата сеанса не отразится на других клиентах.

Объем памяти для процессов, до величины которого сервер считается системой производительным - при достижении этого значения сервер кластера перестаёт принимать соединения. Количество информационных баз на процесс - изолирует ИБ по процессам. После изоляции информационных баз (при введении значения - «1») проблемы обычно решаются.

Количество соединений на один процесс - по умолчанию установлено значение «128». Если текущая база отличается очень большой нагрузкой от фоновых заданий, то можно уменьшить это количество, например, до «25». При таких настройках немного изменится и настройка кластера:

Уровень отказоустойчивости - показывает то количество серверов, при выходе из строя которого не произойдёт аварийного завершения работы клиентов. При этом автоматически будут запущены в нужном количестве резервные сервисы.

Режим распределения нагрузки - имеет два возможных варианта. Если установить «Приоритет по производительности» - то память сервера будет расходоваться больше для увеличения производительности. При выборе «Приоритет по памяти» - кластером 1С память будет экономиться.

Инструмент для работы с базой

Для оперирования с базой данных необходимо пользоваться средствами СУБД MS SQL.

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

Возможно, причина ошибка кроется в некорректной информации, содержащейся в Конфигурации. Для её проверки требуется выполнить команду «Проверка конфигурации». (Не путать с тестированием!). Перед выполнением нужно проверить установку чекбокса (флажка) - «логическая целостность». При обнаружении некорректности это будет отражено в сообщении. А ошибки будут удалены.

Мы рассмотрели причины отсутствия свободной памяти на сервере 1С и возможные пути устранения этого. Один из способов наверняка позволит разрешить проблему.

Рассмотрим более подробно варианты исправления ошибки “Недостаточно памяти” в 1С 8.3.

Способ 1. Увеличить размер адресной памяти

Существует ограничение в выделении адресной памяти для программного обеспечения операционной системой: для 32-х разрядной системы - 2 Гб; для 64-х разрядной системы - 4 Гб.

Шаг 1

Для увеличения размера адресной памяти нужно сделать следующее: запускаем командную строку с правами Администратора:

  • Пуск – Выполнить – в командной строке вводим CMD и жмем Enter:
  • Или кликните правой кнопкой мыши по кнопке Пуск и выберите командная строка (Администратор).

Шаг 2

Далее попадаем в диалоговое командное окно, где и должны набрать команду на увеличение адрес ной памяти. Введем в командной строке BCDEdit /set increaseuserva xxxx, где вместо хххх указываем объем виртуального адресного пространства в мегабайтах. Например, в 32-х разрядных системах рекомендуется 3072 Мб:

Шаг 3

Перезагружаем компьютер. Произведем действия в программе 1С 8.3, которые не получались ранее.

Шаг 4

После выполнения операций лучше вернуть адресной памяти значение по умолчанию. Для этого введем в командной строке BCDEdit /deletevalue increaseuserva:

Перезагружаем компьютер.

Способ 2. Удалить помеченные на удаление документы и справочники

В платформе 1С 8.3 появилась возможность с помощью регламентного задания .

Удаление помеченных объектов позволяет:

  1. Увеличить производительность системы;
  2. Уменьшить размер базы данных.

Шаг 1. Создаем копию базы

Открываем пункт : раздел Администрирование – Настройки программы – Поддержка и обслуживание – Резервное копирование и восстановление:

Настраиваем расписание автоматического копирования базы и нажимаем Готово:

Подробнее как сделать резервную копию 1С 8.3 смотрите в нашем видео уроке:

Шаг 2. Удаляем помеченные объекты

Открываем пункт Автоматически удалять помеченные объекты по расписанию: раздел Администрирование – Настройки программы – Поддержка и обслуживание – Регламентные операции:

Настраиваем расписание автоматического удаление помеченных объектов в 1С 8.3 на удобное время. Например, на время обеденного перерыва и нажимаем Готово:

В результате произведенных действий размер базы уменьшится, улучшится производительность системы и ошибки 1С “Недостаточно памяти” не должно возникнуть.


Поставьте вашу оценку этой статье:

Ошибка «Недостаточно памяти» в 1С 8.3 и 8.2 является не такой уж и редкой. Ее можно встретить и в конфигураторе (например, при сравнении конфигураций), а так же в режиме «1С:Предприятие» при выполнении трудоемких обработок: например при записи большого файла формата base64.

Данная ошибка может встречаться не только в программе 1С, но и в других программах операционной системы Windows.

Все дело в том, что в 32-х разрядных операционных системах по умолчанию 2 ГигаБайта на различные программы и столько же для операционной системы. В 64-х разрядных ОС выделяемый на приложения объем памяти составляет уже 4 ГигаБайта.

Следуя из вышесказанного, вам необходимо увеличить размер выделяемой адресной памяти на приложения, коим является программа 1С. Сделать это можно двумя способами: осуществить переход с 32-х разрядной системы на 64-х разрядную, или увеличить выделяемое изначально количество адресной памяти.

Конечно же, первый способ лучше и предпочтительнее, но если в данный момент, либо вообще вы не можете им воспользоваться, то можете воспользоваться вторым.
Дня начала перейдите в командную строку операционной системы. Для этого перейдите в меню «Пуск» и вверите в строке поиска «cmd».

Перед вами отобразится поиск программ. Выберите ту, что называется «cmd».

Так же командную строку можно открыть при помощи комбинации горячих клавиш Windows + R.

В открывшемся окне наберите следующую команду и так же нажмите «Enter»:

bcdedit /set increaseuserva 3200

В данном случае вы увеличите объем адресной памяти до 3200 МегаБайт.

После того, как у вас все получилось, настоятельно рекомендуется восстановить прежний объем адресной памяти. Данная мера временная, так как при выделении памяти на приложения, у операционной системы ее становится меньше. За счет этого возможно нарушение стабильности Windows.

Для восстановления адресной памяти в значение по умолчанию можно воспользоваться следующей командной, которая так же вводится в командной строке:

bcdedit /deletevalue increaseuserva

Обратите внимание, что при часто встречающийся ошибке «Нехватка памяти» в 1С так же может помочь удаление помеченных объектов. Возможно, в программе их накопилось очень много и программе сложно обрабатывать такие объемы данных. Если и этот способ не помог, то вам следует увеличить разрядность операционной системы Windows.

Такая же ситуация может происходить во время формировании объемного отчета, выполнения , при выполнении , загрузке большой информационной базы и т.п. Заметим, это происходит при выполнении каких-то объемных операций, которые требуют определенного количества ресурса компьютера. Причем в обычном режиме программа 1С работает относительно нормально.

Такие советы как очистить диск, на котором установлена программа, выполнить в программе, воспользоваться , выбрав пункт Сжатие таблиц информационной базы , скорее всего не дадут нужного результата, хотя их тоже стоит попробовать.

Для работы программы 1С, к параметрам компьютера предъявляются определенные требования и если их характеристика не соответствует установленной программе, то могут возникнуть проблемы в виде торможения работы, появлению такого рода ошибок.

Добавив оперативной памяти нашему компьютеру, ошибка появляется снова. В таком случае, причина кроется в ограниченном выделении адресной памяти операционной системой под программное обеспечение:

  • в 32-х разрядных операционных системах по умолчанию выделено 2 Гб на различные программы и столько же для операционной системы,
  • в 64-х разрядных операционных системах — объем памяти составляет уже 4 Гб.

При работе 1С и выполнения операции, можно через Диспетчер задач следить за процессом загрузки процессора и за свободным количеством памяти. В нашем случае, при обновлении это цифра приближалась к нулю и в этот момент возникала ошибка «Недостаточно памяти». Запустить Диспетчер задач можно нажатием клавиш Ctrl+Alt+Del и открыв вкладку Быстродействие , следить за данными показателями.

Таким образом, нам необходимо увеличить размер выделяемой адресной памяти для приложений (в том числе и 1С). Это можно сделать двумя способами: перейти с 32-х разрядной системы на 64-х разрядную или увеличить выделяемое по умолчанию количество адресной памяти. Первый вариант является более правильным, но в силу некоторых причин он бывает невозможен, поэтому рассмотрим второй вариант решения проблемы.

Перечислить все ситуации, когда возникает ошибка 1С «Недостаточно памяти» (Рис.1) невозможно. Попробуем определить основные:

  • При обновлении конфигурации;
  • При запуске приложения;
  • При формировании отчета;
  • При выполнении больших расчетов (проведение документа «Расчет себестоимости», «Закрытие месяца» и так далее).

Причина во всех случаях одна – нехватка физической памяти компьютера. При этом добавление в устройство дополнительных планок оперативной памяти, проблему решает не всегда.

Что определяет размер доступной памяти

32-разрядные операционные системы имеют одну существенную особенность: независимо от объема оперативной памяти и размера файла подкачки, под работу конкретного приложения операционка выделяет только 4 Гб.

Учитывая, что половина адресного пространства виртуальной памяти выделяются под нужды самой системы, на работу приложения остается только 2Гб. При работе программы адресное пространство виртуальной памяти должно резервироваться одним непрерывным блоком. Когда нет такой возможности, выскакивает окно (Рис.1).

Как увеличить доступную память

Без переустановки операционной системы существуют два варианта исправления ситуации:


Этими способами можно уменьшить адресное пространство, выделяемое под операционную систему до 1Гб, увеличив память под приложение до 3Гб.

Внимание! Вручную распределив память можно столкнуться с проблемами в работе персонального компьютера вплоть до полной остановки системы.

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

Важно понимать, что указанные способы – только временное решение проблемы, для окончательного её устранения необходимо перенести базу на 64-разрядную платформу.

Нехватка памяти при формировании отчета

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

Прежде, чем лезть в настройки операционной системы и менять параметры распределения оперативной памяти, в этом случае лучше попробовать сменить настройки отчета. Поменяйте дату, измените группировки, добавьте отбор. В большинстве случаев это помогает.

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

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

Утечки памяти на сервере

В некоторых случаях у пользователей появляется сообщение, представленное на рис.3

Рис. 3.

О причинах подобного поведения сервера хотелось бы сказать отдельно.

Вообще фраза «утечка памяти» несколько неточная, лучше сказать, что идет складирование памяти, её наслоение. Программы, запускающие процессы, забывают их своевременно завершить. В результате они накапливаются в оперативной памяти.

Вторая причина – фрагментация памяти. Если в процессе работы сервера происходит интенсивное резервирование и высвобождение оперативной памяти, в один из моментов может возникнуть ситуация, когда объем свободной памяти достаточен, но захватить непрерывный блок адресов памяти, достаточного размера невозможно.

Решить вторую проблему можно с помощью системных утилит.

В результате этого могут:

  1. Возникать проблемы с соединением, его разрывы, падение программы;(рис.4)

Рис.4

  1. Появляться ошибки и зависания при выгрузке информационной базы;
  2. Наблюдаться скачки памяти, занимаемой процессами 1С.

Ошибки обновления

Этот вариант нехватки памяти возникает при попытке обновления конфигурации до актуального релиза. Он может быть связан как с большим количеством запущенных приложений, так и с ошибками в базе.

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