Вернуть базу 1С к состоянию до обновления: копии, СУБД и платформа

· 9 мин

Содержание

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

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

Что проверить перед откатом и что вы потеряете

Откат — это возврат во времени. Всё, что пользователи ввели после обновления, пропадёт вместе с ним.

Перед стартом ответьте на четыре вопроса:

  • 🕐 Когда сделана копия. Если между копией и текущим моментом прошло полдня работы, эти документы придётся вводить заново.
  • 🧩 Что именно сломалось. Ошибка в одной печатной форме или отчёте часто лечится расширением или исправлением от поставщика. Откат всей базы ради одного отчёта — плохой обмен.
  • 🔗 Есть ли обмены. Распределённая база (РИБ), обмен с УТ, сайтом, банком — после отката узлы рассинхронизируются по номерам сообщений.
  • 💾 Где будет текущая база. Перед откатом сделайте копию и сломанной версии. Она понадобится, чтобы достать введённые после обновления документы.

Не начинайте откат, пока не сохранили текущее состояние базы — даже неработающее.

Какой у вас случай?

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

Копия может лежать в нескольких местах, даже если вы её специально не делали. Проверьте по порядку.

ИсточникКак выглядитДля какой базы
Копия мастера обновленияархив в каталоге, указанном в настройках резервного копирования мастерафайловая
Ручная выгрузка из Конфигураторафайл .dtлюбая
Копия каталога базыфайл 1Cv8.1CDфайловая
Бэкап СУБД.bak (MS SQL), .backup или .sql (PostgreSQL)клиент-серверная
Регламентное копирование в программеархивы в каталоге из настроек резервного копированияфайловая

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

Распакуйте найденный архив в отдельную папку и посмотрите, что внутри: файл 1Cv8.1CD или выгрузка .dt. От этого зависит способ восстановления.

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

Как откатить обновление файловой базы 1С

У файловой базы два способа отката. Оба требуют, чтобы в базе не было ни одного пользователя.

Способ 1. Замена файла 1Cv8.1CD

Самый быстрый вариант, если у вас есть копия самого файла базы.

  1. Попросите всех выйти из программы. Проверьте, что в каталоге базы нет файла блокировки 1Cv8.1CL, или что его можно удалить — значит, сеансов нет.
  2. Переименуйте текущий 1Cv8.1CD, например в 1Cv8_posle_obnovleniya.1CD. Не удаляйте его.
  3. Скопируйте файл из резервной копии в каталог базы под именем 1Cv8.1CD.
  4. Запустите базу в режиме 1С:Предприятие и проверьте номер релиза: меню с тремя полосками → Справка → О программе.

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

Способ 2. Загрузка выгрузки .dt

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

  1. Откройте базу в режиме Конфигуратор под администратором.
  2. Выберите Администрирование → Загрузить информационную базу.
  3. Укажите файл .dt и подтвердите замену.
  4. Дождитесь сообщения о завершении. Конфигуратор предложит перезапуститься — согласитесь.

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

Если в Конфигуратор не пускает новая версия (например, база не открывается вовсе), создайте в стартовом окне новую пустую базу и загрузите .dt туда. Потом пропишите её путь вместо старой.

Откат клиент-серверной базы через восстановление в СУБД

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

Подготовка в консоли кластера

  1. Откройте консоль администрирования серверов 1С, найдите информационную базу.
  2. В свойствах базы включите Блокировка начала сеансов включена и Блокировка регламентных заданий включена. Задайте текст сообщения для пользователей.
  3. В узле «Сеансы» завершите оставшиеся сеансы этой базы.

Завершение сеансов обрывает работу пользователей без сохранения. Предупредите их заранее и делайте это вне рабочего времени.

MS SQL Server

Восстановление поверх существующей базы:

ALTER DATABASE [buh] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

RESTORE DATABASE [buh]
FROM DISK = N'D:\Backup\buh_before_update.bak'
WITH REPLACE, STATS = 10;

ALTER DATABASE [buh] SET MULTI_USER;

Если база в полной модели восстановления и есть бэкапы журнала, можно вернуться к точному моменту перед обновлением параметром STOPAT. Это делают в SQL Server Management Studio через мастер восстановления — он сам подберёт цепочку файлов.

PostgreSQL

Пример для бэкапа в формате custom (pg_dump -Fc):

dropdb -U postgres buh
createdb -U postgres -T template0 buh
pg_restore -U postgres -d buh -j 4 /backup/buh_before_update.backup

Параметр -j 4 запускает восстановление в четыре потока. Подберите его под число ядер сервера СУБД.

Надёжнее восстановить бэкап в базу с новым именем, проверить её, а уже потом переключить информационную базу в кластере на неё или переименовать базы. Так рабочая копия остаётся нетронутой до последней минуты.

После восстановления снимите блокировку начала сеансов и регламентных заданий в консоли кластера.

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

Формально Конфигуратор позволяет загрузить старую конфигурацию поверх новой: Конфигурация → Загрузить конфигурацию из файла и выбрать .cf прошлого релиза. Практически это опасно.

Почему так делать не стоит:

  • 🗑️ Реквизиты и регистры, которых не было в старом релизе, удалятся при обновлении конфигурации базы данных вместе с данными в них.
  • 🔄 Обработчики обновления уже перенесли данные в новые структуры. Старая конфигурация этих структур не знает.
  • 🏷️ В базе записан номер новой версии. Программа увидит несоответствие, и поведение при запуске непредсказуемо.

Если копии нет, а работать на новом релизе нельзя, рабочий путь другой:

  1. Создайте новую базу из шаблона нужного (прошлого) релиза.
  2. Перенесите туда справочники и документы обработкой «Выгрузка и загрузка данных XML» или настроенным обменом.
  3. Проверьте остатки и обороты по ключевым счетам в обеих базах.

Это долго и требует сверки, поэтому обычно проще дождаться исправления от поставщика конфигурации.

Как вернуть прежнюю версию платформы 1С:Предприятие

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

Файловая база и клиент

  1. Убедитесь, что прежняя версия платформы осталась установленной. Несколько версий живут рядом: каждая в своей папке вида C:\Program Files\1cv8\8.3.xx.xxxx.
  2. Если её удалили — установите заново из дистрибутива.
  3. В стартовом окне выберите базу → Изменить → на последней странице мастера заполните поле «Версия 1С:Предприятия», например 8.3.24.

Запуск через 1cestart возьмёт указанную версию, а не последнюю установленную.

Сервер 1С

  1. Остановите службу сервера 1С в окно обслуживания — сеансы всех баз кластера оборвутся.
  2. Сохраните копию каталога srvinfo с настройками кластера.
  3. Установите прежнюю версию сервера и зарегистрируйте её как службу. Новую службу отключите или удалите.
  4. Запустите службу и проверьте в консоли, что кластер и базы на месте.
  5. На всех клиентах выставьте ту же версию: номер клиента должен совпадать с номером сервера до последней цифры.

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

После смены версии у пользователей может остаться кэш новой версии. Очистите его запуском с параметром /ClearCache или удалите папки с длинными именами-GUID в %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8 при закрытой программе.

Ошибки при откате обновления и что с ними делать

Диагностика: выберите симптом

Отдельно про недостаток места. Выгрузка и загрузка .dt требует свободного места минимум в размер базы, плюс временные файлы. На диске с 5 ГБ свободными базу в 8 ГБ не восстановить.

Резервные копии, после которых откат занимает 15 минут

Откат проходит спокойно только там, где копия была сделана заранее и проверена. Простая схема для небольшой организации:

ЧтоКак частоСколько хранить
Копия перед каждым обновлениемвручную, обязательнодо следующего успешного обновления
Ежедневная копия базыночью, по расписанию7–14 дней
Еженедельная копияраз в неделю1–2 месяца
Копия вне серверараз в неделюна другом диске или в облаке

Для серверных баз копию делают средствами СУБД: план обслуживания в MS SQL или pg_dump по расписанию в PostgreSQL. Выгрузку .dt держите как дополнительную — она не зависит от СУБД и версии сервера.

Несколько привычек, которые снимают большинство проблем:

  • 🧪 Обновляйте сначала копию базы. Проверьте отчёты, печатные формы и обмены, и только потом обновляйте рабочую.
  • 📆 Не ставьте релиз в день выхода. Через несколько дней обычно понятно, есть ли в нём критичные ошибки.
  • 🔁 Раз в квартал разворачивайте бэкап в тестовую базу. Копия, которую ни разу не восстанавливали, может оказаться пустой.
  • 🪜 Не перескакивайте через несколько релизов без нужды. Если релиз обязательный для перехода, мастер обновления пройдёт его сам, но копию перед этим всё равно сделайте.
Перед обновлением базы
Выполнено: 0 / 5

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

Сколько времени занимает откат обновления?
Замена файла 1Cv8.1CD — минуты. Загрузка .dt на 5–10 ГБ — от получаса до нескольких часов. Восстановление бэкапа СУБД обычно быстрее загрузки .dt той же базы.
Пропадут ли пользователи и пароли после отката?
Список пользователей и пароли вернутся к состоянию на момент копии. Пользователи, созданные после обновления, исчезнут.
Можно ли откатить обновление в 1С:Фреш или облаке?
Не самостоятельно. В облачных сервисах восстановление из копии делает поддержка провайдера — напишите им с указанием даты и времени, к которому нужно вернуться.
Нужно ли откатывать расширения отдельно?
При загрузке .dt и восстановлении бэкапа СУБД расширения возвращаются вместе с базой. Если откатываете только платформу, расширения не меняются.
Что делать с документами, введёнными после обновления?
Восстановите копию в отдельную базу, сравните журналы документов и перенесите недостающие выгрузкой XML или вручную. Сломанную базу не удаляйте, пока не закончите перенос.