При обновлении типовых и нетиповых конфигураций (таких как 1С:Бухгалтерия предприятия 3.0, 1С:ERP Управление предприятием или 1С:Комплексная автоматизация) разработчики и администраторы часто сталкиваются с ошибкой «Недостаточно памяти». При этом ошибка нередко возникает не на этапе непосредственной записи данных в базу, а в процессе сравнения и объединения конфигураций или при построении дерева метаданных.
Выясним причину такого поведения платформы и подробно разберем практические способы решения этой проблемы.
Проанализируем основные технические факторы, приводящие к аварийному завершению работы Конфигуратора:
1cv8.exe) в среде Windows может адресовать не более 2–3 ГБ оперативной памяти. В процессе сравнения двух больших конфигураций Конфигуратор строит в памяти полную древовидную модель объектов метаданных, их свойств, форм и модулей. В тяжелых решениях объем данных в памяти быстро выходит за рамки допустимого предела 32-битного процесса.pagefile.sys) ограничен фиксированным значением или отключен, операционная система не может предоставить приложению требуемые страницы памяти.Config и ConfigSave накапливают неиспользуемые записи, что увеличивает объем считываемой информации при обновлении..cf или .cfu) активная работа ведется в каталоге TEMP. Для успешной операции требуется объем дискового пространства, превышающий размер конфигурации в несколько раз.Самым эффективным способом решения проблемы переполнения адресного пространства является запуск 64-битной версии платформы 1С:Предприятие. Начиная с версии платформы 8.3, 64-разрядный клиент доступен не только для сервера, но и для клиентских приложений и Конфигуратора.
Разберем по шагам порядок перехода:
C:\Program Files\1cv8\..., а не в C:\Program Files (x86)\1cv8\...).Рассмотрим ситуацию, когда размер файла подкачки ограничен вручную. При интенсивных операциях сравнения метаданных системе требуется динамическое расширение виртуальной памяти.
Win + Pause/Break или команда sysdm.cpl).Для обновления тяжелых конфигураций верхняя оценка необходимого свободного места на системном диске составляет 2 * размер_CF + объем_выгрузки_в_файлы. Если на диске C: недостаточно места, настроим перенос временных папок на другой накопитель (желательно быстрый SSD).
D:\Temp1C.TEMP и TMP укажем новый путь D:\Temp1C.srvinfo) на диск с достаточным запасом дискового пространства.При интерактивном сравнении в Конфигураторе значительная часть памяти расходуется на прорисовку графического дерева сопоставления объектов. Пакетный режим обновления из командной строки выполняет обновление без построения тяжелого графического интерфейса, что существенно снижает требования к ОЗУ.
Посмотрим на пример команды для пакетного обновления файловой базы:
"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
Разберем действия по удалению поврежденных кэшированных данных и оптимизации таблиц метаданных:
%LOCALAPPDATA%\1C\1cv8\ и %APPDATA%\1C\1cv8\ (за исключением файла со списком баз ibases.v8i).Администрирование -> Выгрузить информационную базу, создадим новую чистую базу и загрузим в нее полученный файл через Администрирование -> Загрузить информационную базу. Это очистит фрагментацию и удалит старые версии конфигураций из таблиц Config и ConfigSave.Администрирование -> Тестирование и исправление... с установленными флагами Реиндексация таблиц, Сжатие таблиц и Проверка логической и структурной целостности.Если конфигурация доработана и требует сложного ручного объединения с выбором объектов, рекомендуется применить двухэтапную схему:
Конфигурация -> Сохранить конфигурацию в файл... (получаем файл .cf).Конфигурация -> Загрузить конфигурацию из файла.... Данная операция не выполняет ресурсоемкое сравнение и заменяет структуру метаданных целиком с минимальным потреблением оперативной памяти.