← База знаний

«Недостаточно памяти» в 1С — что делать

Ошибка «Недостаточно памяти» возникает, когда 1С не хватает оперативной памяти для выполнения операции. Разберём причины и способы решения.

Почему возникает ошибка

  • Тяжёлый отчёт — запрос выбирает слишком много данных
  • Ограничение 32-bit — старая платформа может использовать только 2ГБ
  • Утечка памяти — некорректный код не освобождает ресурсы
  • Мало RAM на сервере — физически недостаточно памяти
  • Большой документ — тысячи строк в табличной части

Решение 1: Переход на 64-bit платформу

32-битная платформа ограничена 2ГБ памяти на процесс.

  1. Скачайте 64-битную версию платформы с releases.1c.ru
  2. Установите параллельно с текущей
  3. Измените ярлык запуска на 64-битную версию

Решение 2: Оптимизация отчёта/запроса

Если ошибка возникает при формировании отчёта:

  • Сократите период выборки
  • Добавьте отборы по организации, складу и т.д.
  • Используйте временные таблицы вместо вложенных запросов
  • Разбейте большой отчёт на несколько маленьких

Решение 3: Увеличение памяти сервера 1С

Для клиент-серверного режима:

  1. Откройте консоль администрирования кластера
  2. Свойства рабочего сервера → «Максимальный объём памяти»
  3. Установите значение в байтах (например, 8589934592 = 8ГБ)
  4. Перезапустите рабочие процессы

Решение 4: Добавление физической памяти

Если память действительно заканчивается:

  • Проверьте загрузку RAM в Диспетчере задач
  • Добавьте оперативную память на сервер
  • Рекомендация: минимум 1ГБ на каждые 10 активных пользователей

Решение 5: Исправление кода

Для программистов — частые причины утечек:

// Плохо — загружаем всё в память
Результат = Запрос.Выполнить().Выгрузить();

// Хорошо — обрабатываем порциями
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
    // Обработка по одной записи
КонецЦикла;

Не удаётся решить проблему?

Проведу аудит и найду причину. Оптимизирую запросы или настрою сервер.

Обсудить в Telegram