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

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

Как отменить реструктуризацию в 1С и не потерять данные

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

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

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

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

Что происходит при реструктуризации и почему её нельзя просто отменить

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

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

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

Сценарий 1: обновление ещё не запущено — как отказаться от реструктуризации заранее

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

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

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

Сценарий 2: реструктуризация идёт — отличить зависание от нормальной работы

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

Прежде чем что-либо предпринимать, проверьте признаки активности процесса. В файловой базе смотрите на размер файла 1Cv8.1CD и временных файлов в каталоге базы — если размер меняется, процесс работает. В клиент-серверном варианте проверьте активность на сервере СУБД: в MS SQL Server это активные запросы через Activity Monitor или представление sys.dm_exec_requests, в PostgreSQL — представление pg_stat_activity.

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

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

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

Активность на диске и процессоре
Норма

Процесс 1cv8 или СУБД нагружает CPU/диск, размеры файлов меняются

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

Нулевая активность CPU и диска в течение 30–60 минут

Состояние базы после завершения
Норма

База открывается, конфигуратор показывает обновлённую версию

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

Ошибки при открытии, сообщения о несоответствии структуры

Запросы на сервере СУБД
Норма

Выполняются INSERT/SELECT к таблицам базы

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

Нет ни одного активного запроса от сеанса 1С

Сценарий 3: процесс действительно завис — как корректно прервать и восстановить базу

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

Порядок действий при зависшей реструктуризации
  1. 1
    Убедитесь в отсутствии активности: CPU, диск, запросы СУБД — всё на нуле длительное время
  2. 2
    Скопируйте файл базы 1Cv8.1CD (файловый вариант) или сделайте бэкап средствами СУБД текущего состояния
  3. 3
    Завершите процесс 1cv8.exe через диспетчер задач (файловый вариант) или завершите сеанс в консоли кластера (серверный вариант)
  4. 4
    Удалите блокировочные файлы и проверьте, не осталось ли зависших сеансов
  5. 5
    Восстановите базу из резервной копии, сделанной до обновления
  6. 6
    Разберитесь в причине зависания и только потом запускайте обновление повторно

Для файловой базы завершение процесса делается через диспетчер задач Windows: найдите процесс 1cv8.exe и снимите задачу. После этого удалите файл 1Cv8.1CL и временные файлы в каталоге базы, если они остались. Для клиент-серверного варианта сеанс завершается через консоль администрирования кластера 1С: найдите зависший сеанс и удалите его — тогда транзакция на СУБД откатится штатно.

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

Как восстановить базу, если резервной копии не было

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

Далее запустите конфигуратор с параметром тестирования и исправления: «Администрирование → Тестирование и исправление». Отметьте проверку логической и ссылочной целостности, но будьте готовы, что утилита либо откажется работать из-за несоответствия структуры, либо удалит «лишние» данные. Для файловых баз также существует утилита chdbfl.exe из каталога установки платформы — она проверяет физическую целостность файла, но не восстанавливает логику прерванной реструктуризации.

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

Типичные ошибки
01
Прерывание процесса через 10–15 минут «без прогресса» — на больших таблицах это нормальная работа, а не зависание
02
Запуск обновления без резервной копии — единственный способ отмены реструктуризации теряется до её начала
03
Повторный запуск обновления сразу после сбоя без анализа причины — зависание с высокой вероятностью повторится
04
Тестирование и исправление с включённым удалением объектов на единственной копии поломанной базы — данные удаляются безвозвратно
05
Обновление в рабочее время на активной базе — зависшие сеансы пользователей мешают монопольному доступу и провоцируют сбои

Как подготовиться к обновлению, чтобы вопрос отмены не возник

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

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

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

Итог

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

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

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

Кнопка «Отмена» в окне реструктуризации не реагирует. Это нормально?

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

Сколько времени может идти реструктуризация и когда начинать беспокоиться?

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

Можно ли откатить обновление конфигурации после успешной реструктуризации?

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

Что делать, если после прерывания база открывается, но работает с ошибками?

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

Поможет ли тестирование и исправление отменить реструктуризацию?

Нет. Тестирование и исправление проверяет целостность уже существующей структуры, но не откатывает изменения метаданных и не возвращает старую структуру таблиц. Это инструмент диагностики последствий сбоя, а не средство отмены обновления.

Можно ли обновить конфигурацию поставщика, пропустив реструктуризацию отдельных объектов?

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