Администрирование · 13 мин
Как откатить базу данных 1С: пошаговая инструкция для файловой и серверной версии
Как откатить базу данных 1С: восстановление из копии dt и SQL-бэкапа, откат обновления конфигурации, проверка результата, типичные ошибки и меры безопасности.
Откат базы данных 1С — это возврат информационной базы в прежнее состояние: либо восстановление из резервной копии, либо отмена обновления конфигурации, либо возврат к точке сохранения до ошибочных действий пользователей. Конкретный способ зависит от того, какая у вас база — файловая или клиент-серверная, и от того, что именно нужно отменить.
Главное правило, которое нужно выполнить до любого отката: зафиксируйте текущее состояние базы, даже если оно «плохое». Сделайте выгрузку в файл .dt или снимите SQL-бэкап. Иначе, если восстановление из старой копии пойдёт не так, вы потеряете и текущие данные, и шанс на альтернативное восстановление.
Ниже разобраны все рабочие сценарии: восстановление файловой базы из копии, откат серверной базы через MS SQL или PostgreSQL, отмена обновления конфигурации, а также проверка результата и типичные ошибки, из-за которых откат превращается в потерю данных.
Определите, что именно нужно откатить
Под «откатом базы» администраторы обычно понимают три разные задачи, и у каждой — свой инструмент. Первая: вернуть базу к состоянию на определённую дату, например после массового ошибочного проведения документов или неудачной обработки данных. Здесь поможет только резервная копия, сделанная до проблемного события.
Вторая задача — откатить обновление конфигурации, когда после установки нового релиза программа работает с ошибками. Если обновление уже завершено и структура базы изменена, простого «отменить» не существует: нужно восстанавливать копию, снятую до обновления, либо загружать сохранённый файл конфигурации с последующей реструктуризацией.
Третья ситуация — откат отдельных данных без восстановления всей базы. Например, нужно отменить один документ или вернуть значения справочника. Для этого базу целиком трогать не обязательно: используют пометку удаления, отмену проведения, историю изменений (если включён версионирование) или выборочную загрузку данных из копии через обработку «Выгрузка и загрузка данных XML».
Как выбрать способ отката
Подготовка: что сделать до восстановления
Первый шаг — выгнать всех пользователей из базы. В файловом режиме активные сеансы заблокируют замену файла или загрузку .dt. В серверном режиме завершите сеансы через консоль кластера серверов 1С или попросите пользователей выйти, а затем установите блокировку сеансов, чтобы никто не вошёл во время восстановления.
Второй шаг — страховочная копия текущего состояния. Даже если база «сломана», выгрузите её в .dt (Конфигуратор → Администрирование → Выгрузить информационную базу) или сделайте бэкап средствами СУБД. Это займёт время, но сохранит данные, введённые после снятия основной копии, — их потом можно будет перенести в восстановленную базу.
Третий шаг — проверьте саму резервную копию. Убедитесь, что файл .dt или бэкап открывается, дата его создания соответствует нужной точке отката, а размер файла не равен нулю. Практика показывает, что битые копии чаще всего обнаруживаются именно в момент восстановления, поэтому полезно периодически тестировать копии на отдельной тестовой базе.
Откат файловой базы: два рабочих способа
Способ 1. Загрузка из файла .dt через конфигуратор
Это штатный и самый надёжный метод. Откройте конфигуратор нужной базы (войти придётся в текущую, «поломанную» базу — это нормально), перейдите в меню «Администрирование → Загрузить информационную базу» и укажите файл .dt с резервной копией. Программа предупредит, что текущие данные будут замещены, — соглашайтесь только после того, как страховочная копия снята.
После загрузки конфигуратор предложит перезапуститься. Проверьте версию конфигурации в разделе «Конфигурация → Информация» или через «О программе» в пользовательском режиме — она должна соответствовать версии на момент снятия копии. Если загрузка прерывается с ошибкой, чаще всего причина в повреждённом файле .dt или нехватке места на диске.
Способ 2. Замена файла базы напрямую
Файловая база 1С — это файл 1Cv8.1CD в каталоге базы. Если у вас есть копия всего каталога (а не выгрузка .dt), можно просто заменить файл: закройте все сеансы 1С, переименуйте текущий 1Cv8.1CD (например, в 1Cv8_old.1CD) и скопируйте на его место файл из архивной копии.
Этот способ быстрее загрузки .dt на больших базах, но требует аккуратности: копировать файл нужно только при полностью закрытых сеансах, иначе копия получится неконсистентной. После замены откройте базу в конфигураторе и при необходимости выполните тестирование и исправление (раздел «Администрирование»).
- 1Завершите работу всех пользователей с базой
- 2Сделайте страховочную выгрузку текущего состояния в .dt
- 3Откройте конфигуратор: Администрирование → Загрузить информационную базу
- 4Укажите файл резервной копии .dt и подтвердите замещение данных
- 5Дождитесь завершения и перезапустите конфигуратор
- 6Проверьте версию конфигурации и откройте базу в режиме предприятия
- 7Сверьте ключевые данные: остатки, последние документы, справочники
Откат серверной базы (MS SQL, PostgreSQL)
Для клиент-серверной архитектуры восстановление выполняется средствами СУБД, а не конфигуратора. В MS SQL Server откройте SQL Server Management Studio, найдите нужную базу, вызовите контекстное меню: «Задачи → Восстановить → База данных», укажите источник — файл бэкапа (.bak) — и запустите восстановление. Перед этим переведите базу в однопользовательский режим или завершите активные подключения, иначе восстановление не начнётся.
В PostgreSQL восстановление обычно выполняют через pgAdmin или командой pg_restore для копий формата custom, либо psql для SQL-дампов. Учтите: восстановление в существующую базу перезапишет её содержимое, поэтому безопаснее восстановить копию в новую базу, проверить её, и только потом переключить на неё пользователей.
После восстановления на уровне СУБД база 1С подхватит данные автоматически — имя базы в консоли кластера менять не нужно, если вы восстанавливали в ту же базу. Если восстановили в новую базу, зайдите в консоль серверов 1С и пропишите в свойствах информационной базы новое имя базы данных.
-- MS SQL: завершить подключения и восстановить базу
ALTER DATABASE [Base1C] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
RESTORE DATABASE [Base1C] FROM DISK = N'D:\Backups\Base1C_full.bak' WITH REPLACE;
ALTER DATABASE [Base1C] SET MULTI_USER;Откат обновления конфигурации
Если после обновления релиза база работает с ошибками, важно понимать: откатить обновление «кнопкой назад» нельзя. Обновление изменяет структуру таблиц базы данных, и обратное преобразование платформа не выполняет. Единственный надёжный путь — восстановить копию, снятую до обновления. Именно поэтому типовые конфигурации при обновлении настоятельно предлагают создать резервную копию.
Если копии до обновления нет, остаётся обходной путь: загрузить в базу старый файл конфигурации (.cf) той версии, на которой база работала раньше. Конфигуратор выполнит реструктуризацию «вниз». Этот метод рискованный: данные, добавленные новыми объектами нового релиза, будут потеряны, а сама реструктуризация на большой базе может завершиться ошибкой. Применяйте его только на копии базы и только если восстановить бэкап невозможно.
Если обновление прервалось в процессе (например, отключилось электричество во время реструктуризации), база может остаться в промежуточном состоянии. В этом случае сначала попробуйте зайти в конфигуратор и завершить обновление повторно. Если конфигуратор не открывается — восстанавливайте копию до обновления.
Проверка результата после восстановления
Просто открыть базу и увидеть, что она запускается, недостаточно. Проверьте версию конфигурации — она должна совпадать с версией на момент снятия копии. Затем откройте несколько ключевых отчётов (оборотно-сальдовую ведомость, остатки склада, взаиморасчёты) на дату копии и сравните с эталонными значениями, если они у вас зафиксированы.
Проверьте последние введённые документы: их набор и даты должны соответствовать ожидаемой точке отката. Если после восстановления база работает медленно или выдаёт ошибки при проведении, выполните в конфигураторе «Тестирование и исправление» с включёнными проверками логической и ссылочной целостности — предварительно, как всегда, с копией.
Не забудьте про внешние связи: обмены с другими базами, сайтом, банк-клиентом. После отката база «отматывается» назад, а внешние системы — нет. Это может привести к повторной выгрузке уже отправленных данных или к расхождениям. Зафиксируйте состояние обменов до отката и сверьте после.
Как проверить результат отката
Совпадает с версией на дату копии
Осталась версия после обновления — копия не та или не загрузилась
Даты и номера соответствуют точке отката
Видны документы позже даты копии — восстановление не выполнено
Остатки на дату копии сходятся с ожидаемыми
Пустые или искажённые значения — проверяйте целостность базы
База открывается, документы проводятся без ошибок
Ошибки при проведении — выполните тестирование и исправление
Типичные ошибки при откате базы
Самая частая и самая дорогая ошибка — восстановление старой копии без страховочной выгрузки текущего состояния. Все данные, введённые между датой копии и моментом отката, теряются безвозвратно: документы, оплаты, настройки. Всегда сначала фиксируйте текущее состояние, даже если оно кажется «битым».
Вторая ошибка — восстановление копии «не той свежести». Перед загрузкой проверьте дату файла и, если возможно, откройте копию в тестовой базе, чтобы убедиться, что это именно нужная точка. Третья типичная проблема — копирование файла 1Cv8.1CD при открытых сеансах: такая копия может быть физически повреждена, и вы обнаружите это только при восстановлении.
Четвёртая ошибка — забыть про пользователей и регламентные задания после отката. На серверной базе восстановление может вернуть старые настройки регламентных заданий, которые начнут выполняться с устаревшими параметрами. Проверьте список активных заданий и блокировки сразу после восстановления, до того как пустите пользователей.
FAQ: частые вопросы по откату базы 1С
Можно ли откатить базу 1С без резервной копии?
Полноценно — нет. Если речь об отдельных ошибочных данных, можно отменить проведение документов, использовать версионирование объектов (если оно было включено) или восстановить записи средствами СУБД из журналов транзакций. Но вернуть всю базу к прошлому состоянию без копии невозможно — поэтому регулярное резервное копирование обязательно.
Как откатить только один документ, а не всю базу?
Откройте документ и нажмите «Отменить проведение» — движения по регистрам будут удалены. Если документ уже в закрытом периоде, снимите запрет изменения данных (дату запрета) на время исправления. Для возврата старых значений справочников используйте историю изменений, если включено версионирование.
Чем отличается выгрузка .dt от копирования файла базы?
Файл .dt — это логическая выгрузка, которую штатно загружает конфигуратор; она надёжнее для переноса и восстановления. Копирование файла 1Cv8.1CD быстрее, но требует полного закрытия сеансов и не защищает от скрытых повреждений. Для регулярных бэкапов предпочтительнее выгрузка .dt или бэкап средствами СУБД.
После отката база требует обновление конфигурации — это нормально?
Это означает, что вы восстановили копию со старой версией конфигурации, а платформа или расширения ожидают новую. Если откат был целевым (отмена неудачного обновления), не запускайте обновление повторно, пока не разберётесь с причиной сбоя. Проверьте, какая версия указана в свойствах конфигурации.
Сколько времени занимает восстановление базы?
Зависит от размера базы и способа. Загрузка .dt небольшой файловой базы занимает минуты; большая база на десятки гигабайт может восстанавливаться часами, причём загрузка .dt обычно медленнее, чем восстановление SQL-бэкапа. Планируйте откат на нерабочее время и заранее предупреждайте пользователей.
Что делать, если файл резервной копии не открывается?
Проверьте, не обрезан ли файл (сравните размер с источником, убедитесь, что копирование завершилось полностью). Попробуйте загрузить его в пустую тестовую базу. Если копия повреждена, используйте более раннюю копию или бэкап другого типа (SQL-бэкап вместо .dt). Полностью битый файл .dt средствами 1С не восстанавливается.
Что важно запомнить
Откат базы 1С — это всегда восстановление из резервной копии: .dt для файловой базы, бэкап СУБД для серверной. Перед восстановлением завершите сеансы пользователей и снимите страховочную копию текущего состояния. Отдельной функции отмены обновления конфигурации нет — откатывается вся база. После восстановления проверьте версию конфигурации, остатки, обмены и регламентные задания, прежде чем пускать пользователей.