← На главную
В процессе сопровождения и доработки информационных баз 1С разработчики и администраторы нередко сталкиваются с ситуацией, когда при нажатии клавиши F7 или выборе команды «Обновить конфигурацию базы данных» процесс бесконечно зависает. Чаще всего остановка происходит на этапе реструктуризации крупных таблиц — например, регистра бухгалтерии или регистров накопления. Разберем основные причины такого поведения платформы и пошагово рассмотрим проверенные методы решения данной проблемы.
Причины зависания при реструктуризации базы данных
Проанализируем технические факторы, которые приводят к сбою или многочасовой блокировке процесса обновления:
- Ограничение 32-разрядного адресного пространства: В файловом режиме Конфигуратор работает как 32-битное приложение, которому операционная система выделяет не более 2 ГБ виртуальной памяти. При реструктуризации больших массивов данных память быстро фрагментируется, происходит утечка, и процесс зацикливается или аварийно закрывается.
- Особенности формата 1CD: В файловой базе предельный объем внутренней таблицы ограничен 4 ГБ. В момент изменения структуры метаданных платформа создает временную копию исходной таблицы, что приводит к резкому росту файла
1Cv8.1CD и исчерпанию лимита.
- Блокировка базы сторонними процессами: Опубликованные веб-сервисы через веб-серверы (например, Apache или IIS) удерживают монопольные сеансы или файловые дескрипторы, мешая корректному захвату таблиц.
- Разрастание итогов регистра: Если итоги по регистру бухгалтерии рассчитаны далеко вперед или содержат технологический мусор за много лет, пересчет индексов и агрегатов требует колоссальных вычислительных ресурсов.
- Вмешательство антивируса: Сканирование огромных временных файлов антивирусным монитором в момент непрерывной дисковой записи вызывает аппаратные задержки и взаимоблокировки.
Способ 1. Временный перенос базы в клиент-серверный вариант (СУБД x64)
Это наиболее надежный и быстрый способ обновить файловую базу, переросшую допустимые объемы для локальной реструктуризации. 64-разрядный сервер 1С не имеет ограничений по выделяемой оперативной памяти и выполняет перестройку таблиц силами СУБД значительно быстрее.
Разберем алгоритм по шагам:
- В Конфигураторе файловой базы выполним выгрузку через меню «Администрирование» — «Выгрузить информационную базу» (получаем файл выгрузки
.dt).
- Создадим временную пустую базу на сервере 1С с 64-разрядной СУБД (например, Microsoft SQL Server или PostgreSQL).
- Загрузим полученный файл
.dt в серверную базу через меню «Администрирование» — «Загрузить информационную базу».
- Откроем Конфигуратор серверной базы, применим необходимые изменения и запустим обновление конфигурации базы данных. В клиент-серверном режиме реструктуризация завершится без нехватки памяти.
- После успешного обновления выгрузим базу обратно в файл
.dt и загрузим его в исходную рабочую файловую базу (если требуется продолжить работу именно в файловом формате).
Способ 2. Остановка веб-сервера и фоновых подключений
Если информационная база опубликована на веб-сервере для доступа через браузер или мобильные приложения, веб-сервер удерживает активные соединения с файлом 1Cv8.1CD, блокируя монопольную реструктуризацию.
Рассмотрим порядок действий:
- Откроем оснастку управления службами Windows (
services.msc).
- Найдем службу веб-сервера (например, Apache или World Wide Web Publishing Service для IIS) и остановим ее.
- Убедимся в Диспетчере задач, что все дочерние процессы завершены и не удерживают файлы базы.
- Повторно запустим Конфигуратор и выполним обновление конфигурации базы данных.
- После успешного завершения реструктуризации запустим службу веб-сервера обратно.
Способ 3. Оптимизация итогов и сжатие таблиц базы данных
Перед внесением изменений в метаданные рекомендуется разгрузить проблемный регистр, чтобы сократить объем обрабатываемых данных.
Выполним подготовительные операции:
- В режиме «1С:Предприятие» откроем стандартную обработку «Управление итогами» (или выберем соответствующий пункт в меню администрирования).
- Установим границу рассчитанных итогов на конец актуального расчетного периода (не далее текущего месяца).
- Временно отключим использование итогов для проблемного регистра бухгалтерии перед обновлением, если конфигурация позволяет это сделать.
- В меню Конфигуратора «Администрирование» — «Тестирование и исправление» установим флажок напротив пункта «Сжатие таблиц информационной базы» (остальные проверки можно снять для экономии времени) и нажмем «Выполнить». Это освободит место, удалив физические хвосты удаленных записей.
- Попробуем применить изменения конфигурации повторно. После реструктуризации вернем расчет итогов в актуальное состояние.
Способ 4. Настройка окружения и расширение адресного пространства
Если возможности перенести базу на SQL-сервер нет, оптимизируем рабочую станцию, на которой выполняется обновление:
- Расширение памяти: Для 32-битного исполняемого файла
1cv8.exe можно применить утилиту editbin с флагом /LARGEADDRESSAWARE. Это позволит Конфигуратору в 64-разрядной операционной системе использовать до 4 ГБ виртуальной памяти вместо 2 ГБ.
- Очистка кэша: Удалим каталоги временных файлов платформы в папках пользователя
AppData\Local\1C\1cv8 и AppData\Roaming\1C\1cv8.
- Исключения антивируса: Добавим папку с информационной базой и исполняемый файл платформы в список исключений антивирусного монитора, а также временно отключим службу индексации Windows Search для каталога базы.
- Обновление платформы: Если используется устаревший релиз технологической платформы, выполним обновление на актуальную версию, где оптимизированы внутренние алгоритмы работы с памятью при реструктуризации.