Администрирование · 12 мин
Как отключить реструктуризацию в 1С: практическая инструкция
Разбираем, как отключить или отложить реструктуризацию базы 1С при обновлении конфигурации: фоновое обновление, параметры запуска, риски и проверка результата.
Реструктуризация в 1С — это процесс физического изменения таблиц базы данных при обновлении конфигурации, когда меняется состав или типы реквизитов, табличных частей, измерений регистров и других объектов. Платформа создаёт новые таблицы, переносит данные и удаляет старые структуры. На крупных базах этот процесс занимает часы и блокирует работу пользователей, поэтому вопрос его отключения или переноса возникает у администраторов регулярно.
Важно понимать принципиальное ограничение: если обновление затрагивает структуру метаданных, реструктуризация обязательна. Без неё база данных не будет соответствовать конфигурации, и платформа просто не даст запустить сеанс. Поэтому задача обычно формулируется иначе — не «отключить совсем», а «выполнить в удобное время, в фоне или без остановки работы пользователей».
Ниже разобраны рабочие способы: отложенное (фоновое) обновление, пакетный режим конфигуратора, параметры командной строки и приёмы, позволяющие сократить время реструктуризации. Отдельно описаны ситуации, когда реструктуризации удаётся избежать полностью, и типичные ошибки, приводящие к повреждению данных.
Когда реструктуризация запускается и можно ли её избежать
Реструктуризация запускается автоматически при выполнении команды «Обновить конфигурацию базы данных» в конфигураторе, если платформа обнаружила изменения, влияющие на структуру хранения. К таким изменениям относятся добавление или удаление реквизитов, изменение типа или длины поля, изменение состава измерений регистра, включение итогов, изменение индексов.
Если обновление конфигурации содержит только изменения модулей, форм, макетов и ролей — структура таблиц не меняется, и реструктуризация не выполняется. В этом случае обновление проходит быстро и без остановки работы. Поэтому первый способ «отключить» реструктуризацию — контролировать состав изменений: не принимать изменения структуры при обновлении через поддержку, отключив соответствующие объекты в окне сравнения и объединения.
На практике отказаться от структурных изменений удаётся редко: типовые релизы почти всегда содержат новые реквизиты и регистры. Поэтому основной инструментарий — управление моментом и режимом выполнения реструктуризации, а не её запрет.
Отложенное (фоновое) обновление конфигурации базы данных
Главный штатный способ не прерывать работу пользователей — динамическое обновление с последующим отложенным обновлением конфигурации базы данных. При динамическом обновлении платформа загружает новую конфигурацию без реструктуризации, пользователи продолжают работать, а обновление структуры базы выполняется позже в фоне или в удобное технологическое окно.
Порядок такой: в конфигураторе выполняется «Обновить конфигурацию базы данных», при появлении предупреждения о невозможности монопольного доступа выбирается динамическое обновление. После этого в меню «Конфигурация — Конфигурация базы данных» доступен пункт отложенного обновления, который запускает реструктуризацию отдельно — например, ночью или в выходные.
Ограничение существенное: динамическое обновление возможно только при небольших изменениях. Если изменения затрагивают критичные структуры (например, типы измерений регистров), платформа откажет в динамическом обновлении и потребует монопольный режим с немедленной реструктуризацией. Также до завершения отложенного обновления часть нового функционала может работать некорректно — код рассчитан уже на новую структуру данных.
- 1Сделайте резервную копию базы (выгрузку в dt или средствами СУБД).
- 2В конфигураторе запустите обновление конфигурации базы данных.
- 3При отсутствии монопольного доступа выберите динамическое обновление.
- 4После завершения откройте меню Конфигурация — Конфигурация базы данных и запустите отложенное обновление в нерабочее время.
- 5Дождитесь завершения реструктуризации и проверьте запуск сеанса.
Пакетный режим конфигуратора и параметры запуска
Для автоматизации обновлений на серверных базах используется пакетный режим конфигуратора. Реструктуризация при этом не отключается, но выполняется по расписанию без участия оператора — обычно ночью через планировщик задач. Ключевые параметры командной строки: /UpdateDBCfg запускает обновление конфигурации базы данных, дополнительные ключи управляют поведением при динамическом обновлении.
"C:\Program Files\1cv8\8.3.22.1750\bin\1cv8.exe" DESIGNER /S "server\base" /N "Администратор" /P "пароль" /UpdateDBCfg -Dynamic+ -Server /DisableStartupDialogs /DisableStartupMessages /Out "C:\logs\update.log"Ключ -Dynamic+ разрешает динамическое обновление, -Server указывает выполнять реструктуризацию в клиент-серверном режиме (если применимо), а /Out записывает ход процесса в журнал — по нему удобно контролировать завершение и диагностировать ошибки. Если динамическое обновление невозможно, скрипт завершится с ошибкой, что служит сигналом для запуска обновления в монопольном режиме.
Перед пакетным обновлением в монопольном режиме необходимо завершить сеансы пользователей. В клиент-серверном варианте это делается через консоль кластера или утилиту администрирования, в файловом — через удаление сеансовых блокировок и файл 1Cv8.1CD лучше не трогать напрямую. Также рекомендуется установить блокировку регламентных заданий, чтобы фоновые процессы не мешали реструктуризации.
Как сократить время реструктуризации
Если цель — уменьшить простой, а не отменить процедуру, есть несколько рабочих приёмов. Во-первых, обновляйтесь последовательно, без пропуска большого числа релизов: накопленные за год структурные изменения выполняются дольше, чем несколько небольших обновлений. Во-вторых, перед обновлением выполните тестирование и исправление базы — реструктуризация на базе с физическими ошибками может прерваться.
На клиент-серверных базах время существенно зависит от производительности СУБД: достаточный объём оперативной памяти, размещение tempdb и журналов транзакций на быстрых дисках, актуальные статистики и индексы сокращают длительность в разы. Для очень крупных баз практикуют предварительный прогон обновления на копии — это даёт точную оценку длительности и позволяет спланировать технологическое окно.
Ещё один приём — свёртка базы или удаление устаревших данных перед обновлением: реструктуризация копирует данные в новые таблицы, и чем меньше записей, тем быстрее перенос. Такой подход требует отдельного решения учётной службы, но на многолетних базах даёт максимальный эффект.
Прогон обновления на копии базы — самый надёжный способ узнать реальную длительность реструктуризации. Оценки «на глаз» на базах объёмом от нескольких десятков гигабайт регулярно ошибаются в разы, что приводит к срыву рабочего дня.
Чего делать нельзя: риски и типичные ошибки
Категорически недопустимо прерывать запущенную реструктуризацию — завершением процесса конфигуратора через диспетчер задач, перезагрузкой сервера или отключением питания. В момент реструктуризации таблицы находятся в промежуточном состоянии, и принудительное прерывание почти гарантированно приводит к повреждению базы. Восстановление тогда возможно только из резервной копии, а все данные, введённые после её создания, будут потеряны.
Если реструктуризация зависла визуально (окно не отвечает), это ещё не признак сбоя: на больших таблицах этапы копирования данных могут идти часами без видимого прогресса. Перед любыми действиями проверьте активность на стороне СУБД или дисковой подсистемы — если идёт нагрузка, процесс жив и его нужно дождаться.
Проверка результата после обновления
После завершения реструктуризации убедитесь, что обновление действительно применено. В конфигураторе откройте «Конфигурация — Конфигурация базы данных»: версии конфигурации и конфигурации базы данных должны совпадать. Если отложенное обновление не выполнено, платформа сообщит о необходимости обновления при попытке определённых действий или при следующем заходе в конфигуратор.
Дополнительно проверьте журнал, указанный в параметре /Out (при пакетном режиме), и технологический журнал на предмет ошибок. Затем запустите сеанс под тестовой учётной записью и откройте ключевые формы — документы, отчёты, регистры, затронутые обновлением. Признак проблемы — ошибки вида «поле не найдено» или «недопустимое имя колонки», указывающие на рассинхронизацию структуры.
Как проверить результат
Совпадает с версией основной конфигурации
Конфигурация базы данных старее — обновление не завершено
Файл /Out завершается без строк с ошибками
Есть сообщения об ошибках реструктуризации или отказе в монопольном доступе
Сеанс открывается, формы и отчёты работают
Ошибки вида «поле не найдено» или требование обновить конфигурацию БД
Выбор подхода под вашу ситуацию
Единого способа «отключить» реструктуризацию нет, поэтому действие выбирается по условиям: размер базы, допустимое окно простоя, характер изменений в релизе. Небольшая файловая база обновляется монопольно за минуты — там ничего отключать не нужно. Крупная клиент-серверная база требует планирования: динамическое обновление днём, реструктуризация ночью.
Как выбрать действие
Что важно запомнить
Отключить реструктуризацию при изменении структуры метаданных невозможно — её можно только отложить через динамическое и отложенное обновление или выполнить в пакетном режиме по расписанию. Перед обновлением всегда делайте резервную копию, никогда не прерывайте запущенную реструктуризацию и проверяйте совпадение версий конфигурации и конфигурации базы данных после завершения.
Частые вопросы
Можно ли запретить реструктуризацию настройкой платформы?
Нет, штатной настройки, отключающей реструктуризацию, не существует. Платформа обязана привести физическую структуру таблиц в соответствие с конфигурацией, иначе работа с данными невозможна. Управлять можно только моментом и режимом выполнения: динамическое обновление, отложенный запуск, пакетный режим по расписанию.
Что делать, если реструктуризация идёт уже много часов?
Сначала проверьте, что процесс действительно работает: нагрузка на процессор и диски сервера СУБД, рост временных таблиц. Если активность есть — дождитесь завершения. Если нагрузки нет длительное время и процесс не отвечает, завершение неизбежно приведёт к восстановлению из копии, поэтому перед запуском обновления всегда фиксируйте актуальный бэкап.
Опасно ли динамическое обновление?
Само по себе — нет, платформа разрешает его только для совместимых изменений. Риск в другом: пока не выполнено отложенное обновление, структура базы не соответствует новой конфигурации, и часть нового функционала может работать с ошибками. Поэтому отложенную реструктуризацию нужно запланировать на ближайшее нерабочее время, а не оставлять «на потом».
Можно ли обновить конфигурацию без монопольного режима вообще?
Только через динамическое обновление, если изменения это позволяют. При отказе платформы монопольный режим обязателен: потребуется завершить все сеансы пользователей и заблокировать регламентные задания. Пытаться обойти это требование сторонними средствами или правкой базы напрямую нельзя — это прямой путь к повреждению данных.
Как узнать заранее, будет ли реструктуризация при обновлении?
В конфигураторе после загрузки новой конфигурации откройте обновление конфигурации базы данных: если структура меняется, платформа покажет окно «Реорганизация информации» со списком изменяемых объектов. До этого момента оценить состав изменений можно через «Конфигурация — Сравнить и объединить с конфигурацией из файла», где видно, какие объекты метаданных затронуты.