Обновление конфигурации падает с нехваткой памяти: разбираем по шагам

· 10 мин

Содержание

Если 1С при обновлении пишет Недостаточно памяти, чаще всего виноват 32-разрядный конфигуратор: он упирается в потолок адресного пространства процесса (около 2 ГБ, на 64-битной Windows — до 4 ГБ), сколько бы оперативной памяти ни стояло на компьютере. Решение номер один — запустить обновление из 64-разрядной платформы той же версии. Если не помогло, дальше проверяют диск под временные файлы, лимиты рабочих процессов сервера 1С и память СУБД.

Типичная картина: бухгалтер вечером ставит обновление «Бухгалтерии» или ЗУП, конфигуратор полчаса сравнивает объекты и на этапе объединения или реструктуризации падает с ошибкой. На ERP и КА это бывает ещё чаще: у них самые большие конфигурации, и сравнение с объединением съедает по 3–6 ГБ.

Где кончается память: проверяем до любых настроек

Сначала поймите, какой процесс упал и на каком этапе. От этого зависит решение.

Этапы обновления и кто на них работает:

ЭтапКакой процесс тратит памятьГде смотреть
Сравнение и объединение конфигураций1cv8.exe на вашем компьютереДиспетчер задач, вкладка «Подробности»
Сохранение конфигурации, обновление конфигурации БД (файловая база)1cv8.exeДиспетчер задач
Реструктуризация в клиент-серверной базеrphost.exe на сервере 1С и процесс СУБДКонсоль кластера, диспетчер задач сервера
Выгрузка и загрузка .dt1cv8.exe в файловом режиме, rphost.exe в серверномОба места
Обработчики обновления при первом запускеrphost.exe или 1cv8c.exeКонсоль кластера

Порядок диагностики:

  1. Откройте диспетчер задач, вкладку «Подробности», и добавьте столбец «Платформа» (правый клик по заголовку → «Выбрать столбцы»). Если у 1cv8.exe там указано «32 бита» — причина почти наверняка найдена.
  2. Посмотрите, сколько памяти занимал процесс перед падением. Значения у отметки 1,8–3,9 ГБ при свободной оперативной памяти — это потолок 32-битного процесса.
  3. Проверьте свободное место на системном диске. Временные файлы обновления ложатся в %TEMP%, и нехватка места иногда выдаётся тем же сообщением о памяти.
  4. Проверьте файл подкачки: Свойства системы → Дополнительно → Быстродействие → Параметры → Дополнительно → Виртуальная память. Если подкачка отключена или зажата в 1–2 ГБ, крупное объединение может не поместиться.
  5. Для серверной базы откройте консоль кластера и посмотрите память рабочих процессов в момент ошибки (подробнее — ниже).
Диагностика: выберите симптом

Нехватка памяти при обновлении в файловом режиме

В файловой базе всё делает один процесс на вашем компьютере. Поэтому и решение лежит на нём.

Переход на 64-разрядный конфигуратор

Современная платформа 8.3 выпускается и в 32-, и в 64-разрядном варианте для Windows. Чтобы запускать конфигуратор в 64 битах:

  1. Скачайте дистрибутив 64-разрядной платформы той же версии, что уже стоит. Версия в окне «О программе» должна совпасть до последней цифры.
  2. Установите его. 64-битная платформа ставится в C:\Program Files\1cv8, 32-битная живёт в C:\Program Files (x86)\1cv8 — они не мешают друг другу.
  3. В окне запуска выберите базу, нажмите «Изменить» и на последнем шаге в поле «Разрядность» укажите «64 (x86_64)».
  4. Запустите конфигуратор и повторите обновление.

Разрядность можно и не настраивать, а запустить конкретный файл: C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe. Подставьте свою версию в путь.

Это лечит абсолютное большинство ошибок на этапе сравнения и объединения. Лицензий 64-битный клиент требует столько же, сколько 32-битный.

Освобождаем диск и кэш

Обновление создаёт временные файлы размером с конфигурацию и больше. Проверьте:

  • 📁 %TEMP% — временная папка пользователя. Закройте 1С и удалите её содержимое.
  • 🗂️ %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8 — кэш конфигураций. Папки с длинными именами из букв и цифр можно удалить при закрытой 1С, они создадутся заново.
  • 💾 Свободное место на диске с базой: при обновлении конфигурации БД файл 1Cv8.1CD временно растёт.

Для запаса держите на системном диске не меньше двух размеров файла конфигурации плюс 10 ГБ. Под крупные базы закладывайте ещё объём самого 1Cv8.1CD.

Выгрузка и загрузка .dt в файловой базе

Делать выгрузку в .dt перед обновлением правильно, но на базах в десятки гигабайт она сама падает с нехваткой памяти. Варианты:

  1. Выгружайте из 64-битного конфигуратора — тем же способом, что выше.
  2. Для резервной копии файловой базы закройте все сеансы и просто скопируйте 1Cv8.1CD в другую папку. Это полноценная копия, и её не надо собирать в память.
  3. Выгрузку можно запустить из командной строки без открытия интерфейса:
"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" DESIGNER /F"D:\Bases\Buh" /N"Администратор" /P"пароль" /DumpIB"D:\Backup\buh.dt" /Out"D:\Backup\dump.log"

Перед обновлением всегда сохраняйте копию базы — неважно, .dt это или копия файла. Обновление нельзя откатить кнопкой.

Если файловая база перевалила за 20–30 ГБ и обновления стабильно падают даже в 64 битах, это сигнал переводить её на клиент-серверный вариант (MS SQL или PostgreSQL). Файловый режим с такими объёмами работает на пределе.

Лимиты памяти рабочих процессов сервера 1С

В клиент-серверной базе тяжёлую часть обновления конфигурации БД делает сервер. Ошибка нехватки памяти здесь может возникнуть не потому, что памяти мало физически, а потому, что сервер 1С сам ограничивает рабочие процессы.

Где это настраивается: в консоли Администрирование серверов 1С Предприятия откройте Кластер → Рабочие серверы → <ваш сервер> → Свойства. Там задаются параметры расхода памяти:

ПараметрЧто делаетНа что обратить внимание
Максимальный объём памяти рабочих процессовОбщий потолок для всех rphost на сервереЗначение 0 — ограничение по умолчанию, считается от объёма ОЗУ. Слишком маленькое число режет тяжёлые операции
Безопасный расход памяти за один вызовСколько памяти может занять один серверный вызовЕсли стоит небольшое значение, длинная операция реструктуризации будет прервана
Временно допустимый объём памяти процессов и интервал превышенияРазрешают кратковременно выходить за лимитВыставленные «на минимум», они обрывают пики при обновлении

Что делать:

  1. Запишите текущие значения, чтобы потом вернуть.
  2. На время обновления ослабьте ограничения: верните значения по умолчанию (0) или поднимите их с учётом ОЗУ сервера. Оставьте запас 20–30% памяти для СУБД и ОС, если они на той же машине.
  3. Проведите обновление.
  4. Верните рабочие значения, если они были выставлены осознанно.

Сервер 1С должен быть 64-разрядным. 32-разрядный rphost упирается в тот же потолок адресного пространства, что и 32-битный конфигуратор, и никакие лимиты в консоли его не поднимут.

Консоль кластера: что смотреть во время обновления

Консоль администрирования помогает поймать момент нехватки, а не гадать по сообщению.

Что проверить:

  • 🔍 Раздел «Рабочие процессы»: столбец памяти у каждого rphost. Если один процесс раздулся до лимита — дело в нём.
  • 👥 Раздел «Сеансы»: кто ещё работает в базе. Ночные регламентные задания и забытые сеансы отъедают память у обновления.
  • 🔒 Раздел «Информационные базы»: в свойствах базы можно включить «Блокировку начала сеансов» на время обновления.

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

Выключение рабочего процесса или перезапуск службы «Агент сервера 1С:Предприятия» обрывает сеансы всех пользователей на этом процессе. Делайте это вне рабочего времени и после предупреждения коллег.

Для тех, кто работает из командной строки, есть утилита rac. Посмотреть кластеры и сеансы можно командами rac cluster list и rac session list --cluster=<id>, полный список параметров — в rac help. Для работы rac нужна запущенная служба ras.

СУБД и временные таблицы при реструктуризации

Реструктуризация в клиент-серверной базе — это пересоздание таблиц на стороне СУБД. Большие таблицы регистров копируются через временные объекты, и тут бывает уже нехватка памяти или места у SQL-сервера.

MS SQL Server

Две частые проблемы:

  1. SQL Server забрал всю память. По умолчанию он занимает почти всю ОЗУ, и если сервер 1С стоит на той же машине, rphost остаётся без памяти. Ограничьте SQL:
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'max server memory (MB)', 16384;
RECONFIGURE;

Число подберите под свой сервер. Например, при 32 ГБ ОЗУ и сервере 1С на той же машине отдайте SQL 16 ГБ, остальное останется для 1С и ОС.

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

PostgreSQL

Для PostgreSQL проверьте место на диске с каталогом данных: временные файлы большой сортировки пишутся туда. Параметры памяти shared_buffers и work_mem задаются в postgresql.conf. Завышенный work_mem при множестве параллельных операций сам приводит к нехватке ОЗУ, так что увеличивайте его осторожно и только на время обновления.

Перед обновлением большой базы сделайте резервную копию средствами СУБД. Для базы в сотни гигабайт это быстрее и надёжнее, чем .dt.

Обновление конфигурации БД на сервере

В клиент-серверной базе реструктуризацию можно перенести целиком на сервер, чтобы она не зависела от памяти вашего компьютера. В конфигураторе при обновлении конфигурации базы данных выберите выполнение на сервере, а из командной строки используйте ключ -Server у команды /UpdateDBCfg:

"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" DESIGNER /S"srv1c\buh" /N"Администратор" /P"пароль" /UpdateDBCfg -Server /Out"D:\Logs\update.log"

Обходные способы обновить конфигурацию

Если ни одна настройка не помогла, обновление можно провести иначе.

СпособКогда подходитРиски
Обновление из 64-битного конфигуратораВсегда, первый вариантПочти нет
Обновление через пользовательский режимТиповая конфигурация без доработок, с подключённой интернет-поддержкойНужны права администратора, обработчики обновления идут сразу
Объединение на мощном компьютере, затем загрузка готовой .cfДоработанная конфигурация, слабый рабочий компьютерНужно аккуратно перенести результат, не перепутав базы
Пошаговое обновление через промежуточные релизыПропущено много релизовДольше, но каждый шаг легче
Перевод файловой базы на клиент-серверный вариантБольшая файловая база, падения повторяютсяНужен сервер 1С и СУБД

Объединение на другом компьютере

Приём для доработанных конфигураций, когда рабочая машина слабая:

  1. На мощном компьютере с 64-битной платформой разверните копию базы из .dt.
  2. Проведите в копии обновление со сравнением и объединением.
  3. Сохраните результат: Конфигурация → Сохранить конфигурацию в файл.
  4. В рабочей базе загрузите полученный файл: Конфигурация → Загрузить конфигурацию из файла, затем обновите конфигурацию БД.

Загрузка .cf полностью заменяет основную конфигурацию. Если между снятием копии и загрузкой кто-то вносил в рабочую базу доработки, они пропадут.

Обновление в пользовательском режиме

В типовых конфигурациях без изменений, например БП 3.0 и ЗУП 3.1, обновление ставится из самой программы: Администрирование → Обслуживание → Обновление версии программы. Программа сама скачивает файлы и запускает конфигуратор в пакетном режиме. Однако падает он по той же причине, так что 64-битную платформу на компьютере стоит поставить и здесь.

Пропущено много релизов

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

Как избежать нехватки памяти при следующих обновлениях

Профилактика проще, чем ночь с падающим конфигуратором.

Перед обновлением 1С
Выполнено: 0 / 7

И несколько привычек на будущее:

  • 📅 Обновляйтесь регулярно. Объединение через один релиз в разы легче, чем через десять.
  • 🧩 Выносите доработки в расширения конфигурации . Основная конфигурация остаётся на поддержке без изменений, и обновление идёт без тяжёлого объединения.
  • 🖥️ Для рабочего места администратора 1С закладывайте 16 ГБ ОЗУ и выше, если обновляете ERP или КА.
  • 📈 Следите за размером базы. Свёртка или удаление устаревших данных уменьшает реструктуризацию.

Частые вопросы

Поможет ли просто добавить оперативной памяти в компьютер?
Только если платформа 64-разрядная. 32-битный конфигуратор не увидит больше 4 ГБ, даже если в компьютере их 64.
Нужна ли отдельная лицензия на 64-разрядный клиент?
Нет. Клиентские лицензии не зависят от разрядности платформы, на компьютере можно держать обе версии.
Почему ошибка появляется на обновлении, а в обычной работе всё нормально?
При обновлении конфигуратор держит в памяти сразу три конфигурации: старую, новую и результат объединения. В обычной работе такой нагрузки нет.
Можно ли продолжить обновление после ошибки, или нужно начинать заново?
Если упало сравнение или объединение, основная конфигурация не изменилась — начните заново. Если ошибка случилась на обновлении конфигурации БД, повторите только этот шаг; при сомнениях в целостности восстановите базу из копии.
Ошибка бывает на 1С в облаке или в сервисе 1С:Фреш?
В сервисе обновление выполняет поставщик, пользователь его не запускает. Если ошибка появилась в арендованной базе, пишите в поддержку провайдера.