К статье
Практический материал

Администрирование · 12 мин

Как отключить реструктуризацию в 1С: практическая инструкция

Разбираем, как отключить или отложить реструктуризацию базы 1С при обновлении конфигурации: фоновое обновление, параметры запуска, риски и проверка результата.

Реструктуризация в 1С — это процесс физического изменения таблиц базы данных при обновлении конфигурации, когда меняется состав или типы реквизитов, табличных частей, измерений регистров и других объектов. Платформа создаёт новые таблицы, переносит данные и удаляет старые структуры. На крупных базах этот процесс занимает часы и блокирует работу пользователей, поэтому вопрос его отключения или переноса возникает у администраторов регулярно.

Важно понимать принципиальное ограничение: если обновление затрагивает структуру метаданных, реструктуризация обязательна. Без неё база данных не будет соответствовать конфигурации, и платформа просто не даст запустить сеанс. Поэтому задача обычно формулируется иначе — не «отключить совсем», а «выполнить в удобное время, в фоне или без остановки работы пользователей».

Ниже разобраны рабочие способы: отложенное (фоновое) обновление, пакетный режим конфигуратора, параметры командной строки и приёмы, позволяющие сократить время реструктуризации. Отдельно описаны ситуации, когда реструктуризации удаётся избежать полностью, и типичные ошибки, приводящие к повреждению данных.

Когда реструктуризация запускается и можно ли её избежать

Реструктуризация запускается автоматически при выполнении команды «Обновить конфигурацию базы данных» в конфигураторе, если платформа обнаружила изменения, влияющие на структуру хранения. К таким изменениям относятся добавление или удаление реквизитов, изменение типа или длины поля, изменение состава измерений регистра, включение итогов, изменение индексов.

Если обновление конфигурации содержит только изменения модулей, форм, макетов и ролей — структура таблиц не меняется, и реструктуризация не выполняется. В этом случае обновление проходит быстро и без остановки работы. Поэтому первый способ «отключить» реструктуризацию — контролировать состав изменений: не принимать изменения структуры при обновлении через поддержку, отключив соответствующие объекты в окне сравнения и объединения.

На практике отказаться от структурных изменений удаётся редко: типовые релизы почти всегда содержат новые реквизиты и регистры. Поэтому основной инструментарий — управление моментом и режимом выполнения реструктуризации, а не её запрет.

Отложенное (фоновое) обновление конфигурации базы данных

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

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

Ограничение существенное: динамическое обновление возможно только при небольших изменениях. Если изменения затрагивают критичные структуры (например, типы измерений регистров), платформа откажет в динамическом обновлении и потребует монопольный режим с немедленной реструктуризацией. Также до завершения отложенного обновления часть нового функционала может работать некорректно — код рассчитан уже на новую структуру данных.

Порядок отложенного обновления
  1. 1
    Сделайте резервную копию базы (выгрузку в dt или средствами СУБД).
  2. 2
    В конфигураторе запустите обновление конфигурации базы данных.
  3. 3
    При отсутствии монопольного доступа выберите динамическое обновление.
  4. 4
    После завершения откройте меню Конфигурация — Конфигурация базы данных и запустите отложенное обновление в нерабочее время.
  5. 5
    Дождитесь завершения реструктуризации и проверьте запуск сеанса.

Пакетный режим конфигуратора и параметры запуска

Для автоматизации обновлений на серверных базах используется пакетный режим конфигуратора. Реструктуризация при этом не отключается, но выполняется по расписанию без участия оператора — обычно ночью через планировщик задач. Ключевые параметры командной строки: /UpdateDBCfg запускает обновление конфигурации базы данных, дополнительные ключи управляют поведением при динамическом обновлении.

bash
"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 и журналов транзакций на быстрых дисках, актуальные статистики и индексы сокращают длительность в разы. Для очень крупных баз практикуют предварительный прогон обновления на копии — это даёт точную оценку длительности и позволяет спланировать технологическое окно.

Ещё один приём — свёртка базы или удаление устаревших данных перед обновлением: реструктуризация копирует данные в новые таблицы, и чем меньше записей, тем быстрее перенос. Такой подход требует отдельного решения учётной службы, но на многолетних базах даёт максимальный эффект.

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

Чего делать нельзя: риски и типичные ошибки

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

Если реструктуризация зависла визуально (окно не отвечает), это ещё не признак сбоя: на больших таблицах этапы копирования данных могут идти часами без видимого прогресса. Перед любыми действиями проверьте активность на стороне СУБД или дисковой подсистемы — если идёт нагрузка, процесс жив и его нужно дождаться.

Типичные ошибки
01
Обновление без резервной копии — при сбое реструктуризации данные теряются безвозвратно.
02
Запуск обновления в середине рабочего дня без оценки длительности — пользователи простаивают часами.
03
Прерывание «зависшего» процесса через диспетчер задач — база приходит в нерабочее состояние.
04
Динамическое обновление без последующего отложенного — конфигурация и структура базы расходятся, возможны ошибки в работе прикладного кода.
05
Пропуск множества релизов — накопленные изменения увеличивают время реструктуризации в разы.

Проверка результата после обновления

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

Дополнительно проверьте журнал, указанный в параметре /Out (при пакетном режиме), и технологический журнал на предмет ошибок. Затем запустите сеанс под тестовой учётной записью и откройте ключевые формы — документы, отчёты, регистры, затронутые обновлением. Признак проблемы — ошибки вида «поле не найдено» или «недопустимое имя колонки», указывающие на рассинхронизацию структуры.

Контрольные точки

Как проверить результат

Версия конфигурации базы данных
Норма

Совпадает с версией основной конфигурации

Тревожный признак

Конфигурация базы данных старее — обновление не завершено

Журнал пакетного обновления
Норма

Файл /Out завершается без строк с ошибками

Тревожный признак

Есть сообщения об ошибках реструктуризации или отказе в монопольном доступе

Запуск пользовательского сеанса
Норма

Сеанс открывается, формы и отчёты работают

Тревожный признак

Ошибки вида «поле не найдено» или требование обновить конфигурацию БД

Выбор подхода под вашу ситуацию

Единого способа «отключить» реструктуризацию нет, поэтому действие выбирается по условиям: размер базы, допустимое окно простоя, характер изменений в релизе. Небольшая файловая база обновляется монопольно за минуты — там ничего отключать не нужно. Крупная клиент-серверная база требует планирования: динамическое обновление днём, реструктуризация ночью.

Маршрут решения

Как выбрать действие

Обновление меняет только модули, формы и ролиОбновляйте штатно — реструктуризация не запустится
Изменения структуры небольшие и пользователи работаютИспользуйте динамическое обновление с отложенной реструктуризацией в нерабочее время
Платформа отказывает в динамическом обновленииПланируйте монопольное окно, предварительно прогнав обновление на копии базы
База очень большая, простой недопустимРассмотрите свёртку данных и настройку производительности СУБД перед обновлением
Итог

Что важно запомнить

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

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

Можно ли запретить реструктуризацию настройкой платформы?

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

Что делать, если реструктуризация идёт уже много часов?

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

Опасно ли динамическое обновление?

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

Можно ли обновить конфигурацию без монопольного режима вообще?

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

Как узнать заранее, будет ли реструктуризация при обновлении?

В конфигураторе после загрузки новой конфигурации откройте обновление конфигурации базы данных: если структура меняется, платформа покажет окно «Реорганизация информации» со списком изменяемых объектов. До этого момента оценить состав изменений можно через «Конфигурация — Сравнить и объединить с конфигурацией из файла», где видно, какие объекты метаданных затронуты.