Администрирование · 10 мин
Как сделать копию базы 1С 8.3 перед обновлением
Как сделать резервную копию базы 1С 8.3 перед обновлением: выгрузка DT, копирование файловой базы, бэкап SQL-сервера, проверка восстановления и типичные ошибки.
Обновление конфигурации 1С — операция, которая изменяет структуру базы данных: добавляются реквизиты, пересчитываются итоги, конвертируются данные. Если в процессе произойдёт сбой (отключение питания, ошибка скрипта обновления, конфликт доработок), без резервной копии база может остаться в неработоспособном состоянии. Копия перед обновлением — это обязательный шаг, а не рекомендация.
Способ создания копии зависит от режима работы базы. Файловую базу достаточно скопировать как каталог или выгрузить в файл DT через конфигуратор. Клиент-серверную базу (MS SQL, PostgreSQL) корректнее резервировать средствами СУБД. Выгрузка DT подходит для обоих вариантов, но у неё есть ограничения по размеру и скорости.
Ниже разобраны все рабочие способы, порядок проверки копии и действия, если обновление пошло не по плану.
Что учесть перед созданием копии
Первое правило: на момент копирования в базе не должно быть активных сеансов. Если пользователи работают, файл 1Cv8.1CD может скопироваться в несогласованном состоянии, и такая копия окажется повреждённой. Попросите всех выйти, а в конфигураторе проверьте список активных пользователей: Администрирование → Активные пользователи.
Второй момент — свободное место на диске. Файл выгрузки DT обычно занимает меньше самой базы, но для крупных баз это всё равно десятки гигабайт. Убедитесь, что на целевом диске есть запас минимум в полтора размера базы. Копию лучше сохранять на другой физический диск или сетевой ресурс, а не рядом с рабочей базой.
Третий момент — время. Выгрузка большой базы может занять от нескольких минут до нескольких часов. Планируйте обновление на нерабочее время: вечер, ночь или выходной.
Администрирование → Активные пользователи — список должен быть пуст
Должно быть не меньше 1,5 размера базы
Смотрите строку подключения в списке баз: File=... или Srvr=...
Способ 1. Выгрузка базы в файл DT через конфигуратор
Универсальный способ, работающий и для файловых, и для клиент-серверных баз. Откройте конфигуратор под пользователем с полными правами, перейдите в меню Администрирование → Выгрузить информационную базу. Укажите путь и имя файла с расширением .dt, дождитесь окончания выгрузки.
Файл DT содержит всю базу целиком: данные, конфигурацию, пользователей, настройки. Из него базу можно полностью восстановить через Администрирование → Загрузить информационную базу. Это делает DT надёжным форматом для отката после неудачного обновления.
Ограничения способа: на больших базах (десятки гигабайт) выгрузка идёт долго, а загрузка — ещё дольше. Кроме того, выгрузка в DT не подходит для переноса базы между разными СУБД без дополнительных действий, но для целей «копия перед обновлением» это неважно.
- 1Завершите все сеансы пользователей и фоновые задания
- 2Откройте конфигуратор под администратором
- 3Меню Администрирование → Выгрузить информационную базу
- 4Укажите путь и имя файла .dt на отдельном диске
- 5Дождитесь сообщения об успешном завершении
- 6Проверьте, что файл существует и его размер не нулевой
Способ 2. Копирование каталога файловой базы
Если база файловая, самый быстрый способ — скопировать весь каталог базы средствами операционной системы. Путь к каталогу виден в списке информационных баз при запуске 1С: выделите базу, и внизу окна отобразится строка вида File="D:\Bases\Trade".
Главный файл базы — 1Cv8.1CD, но копировать нужно каталог целиком, вместе со вложенными папками. Перед копированием убедитесь, что никто не работает в базе, включая фоновые процессы и запущенный конфигуратор. При активных сеансах файл может быть заблокирован или скопируется в противоречивом состоянии.
Для восстановления достаточно вернуть каталог на место или подключить скопированный каталог как новую базу в списке. Это быстрее, чем загрузка DT, поэтому для файловых баз копирование каталога часто удобнее.
Способ 3. Резервная копия клиент-серверной базы средствами СУБД
Если база работает на MS SQL Server или PostgreSQL, копирование файлов напрямую не используют — данные хранятся внутри СУБД. Правильный способ — штатный бэкап средствами сервера баз данных. Для MS SQL это команда BACKUP DATABASE или задача в SQL Server Management Studio, для PostgreSQL — утилита pg_dump.
Пример для MS SQL Server:
BACKUP DATABASE [TradeBase] TO DISK = N'D:\Backups\TradeBase_before_update.bak' WITH INIT, COMPRESSION;Пример для PostgreSQL:
pg_dump -U postgres -Fc -f /backups/trade_before_update.dump trade_baseПеред бэкапом завершите сеансы: либо через консоль кластера серверов 1С, либо установив для базы режим блокировки сеансов. Бэкап СУБД для больших баз выполняется заметно быстрее выгрузки DT, а восстановление — надёжнее. Идеальная практика для серверной базы — сделать и бэкап СУБД, и (если размер позволяет) выгрузку DT как второй, независимый слой защиты.
Сравнение способов копирования
Универсально, переносимо, но медленно на больших базах; подходит для любых режимов
Только файловые базы; самый быстрый вариант, восстановление мгновенное
Только клиент-серверные базы; быстро и надёжно, требует доступа к серверу БД
Как проверить, что копия рабочая
Копия, которая не проверена, — это отсутствие копии. Минимальная проверка: файл существует, имеет ненулевой размер и дату создания, соответствующую моменту копирования. Но этого недостаточно, чтобы гарантировать восстановление.
Надёжная проверка для файловой базы: скопируйте каталог в отдельное место, добавьте его в список баз под именем «Тест копии» и откройте в режиме предприятия. Если база запускается и данные на месте — копия рабочая. Для DT можно аналогично загрузить его в пустую базу на тестовом компьютере, если позволяет время.
Для бэкапа СУБД проверка — восстановление в базу с другим именем на том же или тестовом сервере. Полный тест восстановления занимает время, но именно он гарантирует, что при неудачном обновлении вы реально сможете откатиться, а не обнаружите битый архив.
Как проверить результат
Размер сопоставим с базой, дата свежая
Нулевой размер или старая дата
База запускается, документы на месте
Ошибка открытия, сообщение о повреждении
Количество документов за последний день совпадает
Пропали свежие документы или справочники
Типичные ошибки при создании копии
Самая частая ошибка — копирование при открытых сеансах. Второе место занимает копирование только файла 1Cv8.1CD без учёта того, что база фактически повреждена: перед обновлением полезно прогнать тестирование и исправление, чтобы не архивировать базу с ошибками.
Ещё одна ошибка — хранение копии на том же диске, что и рабочая база. При отказе диска теряется и база, и копия. Также администраторы нередко путают выгрузку конфигурации (файл CF) с выгрузкой информационной базы (DT): CF содержит только конфигурацию без данных и для отката не подходит.
Как откатиться, если обновление не удалось
Если обновление завершилось ошибкой или база после него работает некорректно, не пытайтесь «дожать» обновление повторными запусками — остановитесь и восстановите копию. Порядок зависит от способа копирования.
Для файловой базы: переименуйте текущий каталог базы (например, добавьте «_broken»), верните на его место каталог-копию и откройте базу. Для DT: создайте пустую базу или откройте текущую в конфигураторе и выполните Администрирование → Загрузить информационную базу, указав файл DT — загрузка полностью заменит содержимое базы. Для СУБД: восстановите бэкап штатными средствами сервера (RESTORE DATABASE для MS SQL, pg_restore для PostgreSQL).
После отката разберитесь с причиной сбоя на копии базы: изучите журнал регистрации, сообщения об ошибках обновления, проверьте, хватает ли места на диске и совместима ли версия платформы с новым релизом конфигурации. Повторное обновление запускайте только после устранения причины.
Как выбрать действие при сбое
Ответы на частые вопросы
Можно ли обновлять 1С без копии, если база маленькая?
Технически можно, но риск не оправдан даже для маленькой базы: сбой питания или ошибка конвертации данных способны оставить базу неработоспособной. Копирование небольшой файловой базы занимает пару минут — это минимальная цена за возможность отката.
Чем выгрузка DT отличается от сохранения конфигурации CF?
Файл CF содержит только конфигурацию — описание структуры метаданных, без данных. Файл DT содержит и конфигурацию, и все данные, и пользователей. Для резервной копии перед обновлением нужен именно DT, CF для отката не подходит.
Нужно ли завершать сеансы при бэкапе средствами SQL Server?
Штатный бэкап MS SQL технически выполняется при активных подключениях и остаётся согласованным. Однако перед обновлением сеансы всё равно нужно завершить — это требование уже самого обновления, а не бэкапа. Делать бэкап при работающих пользователях допустимо, но чище сделать его после их выхода.
Сколько хранить копию, сделанную перед обновлением?
Минимум — до тех пор, пока не убедитесь, что обновлённая база работает корректно: обычно это несколько дней реальной работы пользователей. Разумная практика — хранить копию до следующего успешного обновления. Место на диске дешевле, чем восстановление данных.
Можно ли сначала проверить обновление на копии?
Да, и это рекомендуемый порядок для доработанных конфигураций. Поднимите копию как отдельную базу, выполните на ней обновление, проверьте ключевые операции. Если всё прошло чисто — повторяйте на рабочей базе, имея свежую копию.
Что делать, если файл DT не загружается обратно?
Проверьте, что версия платформы при загрузке не ниже той, на которой делалась выгрузка, и что хватает места на диске. Если ошибка повторяется, не удаляйте файл и не экспериментируйте с рабочей базой — привлеките специалиста, возможно, потребуется восстановление из второй копии (каталога или бэкапа СУБД).
Что важно запомнить
Перед обновлением 1С 8.3 завершите все сеансы и сделайте копию: выгрузку DT, копию каталога файловой базы или бэкап СУБД для клиент-серверного режима. Храните копию на отдельном диске, проверьте, что она открывается, и только после этого запускайте обновление. При сбое восстановите копию, а не пытайтесь повторно обновить повреждённую базу.