Как устранить ошибку Недостаточно памяти при обновлении конфигурации 1С

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия IT и автоматизация бизнеса
← На главную

При обновлении типовых и нетиповых конфигураций (таких как 1С:Бухгалтерия предприятия 3.0, 1С:ERP Управление предприятием или 1С:Комплексная автоматизация) разработчики и администраторы часто сталкиваются с ошибкой «Недостаточно памяти». При этом ошибка нередко возникает не на этапе непосредственной записи данных в базу, а в процессе сравнения и объединения конфигураций или при построении дерева метаданных.

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

Почему возникает нехватка памяти при сравнении конфигураций

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

  1. Ограничение 32-разрядного адресного пространства: 32-битный процесс Конфигуратора (1cv8.exe) в среде Windows может адресовать не более 2–3 ГБ оперативной памяти. В процессе сравнения двух больших конфигураций Конфигуратор строит в памяти полную древовидную модель объектов метаданных, их свойств, форм и модулей. В тяжелых решениях объем данных в памяти быстро выходит за рамки допустимого предела 32-битного процесса.
  2. Недостаточный размер или фиксированный размер файла подкачки: Если в операционной системе размер файла виртуальной памяти (pagefile.sys) ограничен фиксированным значением или отключен, операционная система не может предоставить приложению требуемые страницы памяти.
  3. Фрагментация и устаревшие версии в таблицах метаданных: Из-за частых динамических обновлений таблицы Config и ConfigSave накапливают неиспользуемые записи, что увеличивает объем считываемой информации при обновлении.
  4. Недостаток свободного места для временных файлов: При распаковке файлов конфигураций (.cf или .cfu) активная работа ведется в каталоге TEMP. Для успешной операции требуется объем дискового пространства, превышающий размер конфигурации в несколько раз.
  5. Объемные данные адресных классификаторов: Если в базе загружен полный адресный классификатор (КЛАДР или ФИАС), при реструктуризации связанных справочников и регистров потребление памяти возрастает лавинообразно.

Способ 1. Использование 64-разрядного клиента и операционной системы

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

Разберем по шагам порядок перехода:

  1. Убедимся, что на рабочей станции установлена 64-битная операционная система Windows или Linux.
  2. Установим 64-разрядный дистрибутив клиента 1С:Предприятие (в каталоге установки исполняемый файл будет расположен в папке C:\Program Files\1cv8\..., а не в C:\Program Files (x86)\1cv8\...).
  3. Запустим обновление базы в 64-разрядном Конфигураторе. Приложению станет доступен весь объем установленной физической и виртуальной памяти, что полностью снимет ограничение в 2 ГБ.

Способ 2. Корректная настройка файла виртуальной памяти (подкачки)

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

  1. Откроем Свойства системы (комбинация клавиш Win + Pause/Break или команда sysdm.cpl).
  2. Перейдем на вкладку Дополнительно и в блоке Быстродействие нажмем Параметры.
  3. В открывшемся окне перейдем на вкладку Дополнительно и нажмем кнопку Изменить в разделе Виртуальная память.
  4. Установим флаг Автоматически выбирать объем файла подкачки либо зададим переключатель в положение Размер по выбору системы для системного диска.
  5. Применим изменения и перезагрузим компьютер.

Способ 3. Перенос каталогов временных файлов и очистка диска

Для обновления тяжелых конфигураций верхняя оценка необходимого свободного места на системном диске составляет 2 * размер_CF + объем_выгрузки_в_файлы. Если на диске C: недостаточно места, настроим перенос временных папок на другой накопитель (желательно быстрый SSD).

  1. Создадим каталог для временных файлов на диске с достаточным объемом свободного места, например, D:\Temp1C.
  2. В свойствах системы перейдем в раздел Переменные среды.
  3. Для системных и пользовательских переменных TEMP и TMP укажем новый путь D:\Temp1C.
  4. В клиент-серверном варианте при необходимости также перенесем рабочий каталог сервера 1С (папку srvinfo) на диск с достаточным запасом дискового пространства.

Способ 4. Обновление в пакетном режиме через командную строку

При интерактивном сравнении в Конфигураторе значительная часть памяти расходуется на прорисовку графического дерева сопоставления объектов. Пакетный режим обновления из командной строки выполняет обновление без построения тяжелого графического интерфейса, что существенно снижает требования к ОЗУ.

Посмотрим на пример команды для пакетного обновления файловой базы:


"C:\Program Files\1cv8\8.3.XX.XXXX\bin\1cv8.exe" DESIGNER /F "D:\Bases\MyBase" /UpdateCfg "D:\Updates\1cv8.cfu" /UpdateDBCfg

Для прямой загрузки полного файла конфигурации вместо объединения используем параметр /LoadCfg:


"C:\Program Files\1cv8\8.3.XX.XXXX\bin\1cv8.exe" DESIGNER /F "D:\Bases\MyBase" /LoadCfg "D:\Updates\1cv8.cf" /UpdateDBCfg

Способ 5. Очистка кэша и оптимизация таблиц конфигурации

Разберем действия по удалению поврежденных кэшированных данных и оптимизации таблиц метаданных:

  1. Очистка локального кэша: Удалим содержимое папок %LOCALAPPDATA%\1C\1cv8\ и %APPDATA%\1C\1cv8\ (за исключением файла со списком баз ibases.v8i).
  2. Выгрузка и загрузка базы через файл .dt: Выполним процедуру Администрирование -> Выгрузить информационную базу, создадим новую чистую базу и загрузим в нее полученный файл через Администрирование -> Загрузить информационную базу. Это очистит фрагментацию и удалит старые версии конфигураций из таблиц Config и ConfigSave.
  3. Тестирование и исправление: Запустим утилиту через меню Администрирование -> Тестирование и исправление... с установленными флагами Реиндексация таблиц, Сжатие таблиц и Проверка логической и структурной целостности.
  4. Очистка устаревших классификаторов: Если в базе присутствуют неиспользуемые старые версии адресных сведений (КЛАДР), очистим их перед обновлением и перейдем на использование веб-сервиса загрузки адресных сведений по требованию.

Способ 6. Подготовка файла конфигурации на отдельном стенде

Если конфигурация доработана и требует сложного ручного объединения с выбором объектов, рекомендуется применить двухэтапную схему:

  1. Выполним сравнение и объединение конфигураций на мощном компьютере с 64-битной платформой и достаточным объемом оперативной памяти.
  2. После успешного объединения сохраним итоговую конфигурацию в файл через меню Конфигурация -> Сохранить конфигурацию в файл... (получаем файл .cf).
  3. В рабочей базе откроем Конфигуратор и применим готовый файл через команду Конфигурация -> Загрузить конфигурацию из файла.... Данная операция не выполняет ресурсоемкое сравнение и заменяет структуру метаданных целиком с минимальным потреблением оперативной памяти.
← На главную