Вернуть базу 1С к состоянию до обновления: копии, СУБД и платформа
Содержание
Откатить обновление
базы 1С можно только одним надёжным способом: восстановить копию, сделанную до обновления. Для файловой базы это файл 1Cv8.1CD или выгрузка .dt, для клиент-серверной — бэкап СУБД или тот же .dt. Кнопки «отменить обновление» в 1С нет: обработчики обновления уже переписали данные, и вернуть их можно только целиком.
Если копии нет, безопасно откатить уже не получится. Остаётся разбирать причину сбоя на новой версии или переносить данные в отдельную базу на старом релизе. Откат версии платформы — отдельная задача: он делается без восстановления данных и намного проще.
Что проверить перед откатом и что вы потеряете
Откат — это возврат во времени. Всё, что пользователи ввели после обновления, пропадёт вместе с ним.
Перед стартом ответьте на четыре вопроса:
- 🕐 Когда сделана копия. Если между копией и текущим моментом прошло полдня работы, эти документы придётся вводить заново.
- 🧩 Что именно сломалось. Ошибка в одной печатной форме или отчёте часто лечится расширением или исправлением от поставщика. Откат всей базы ради одного отчёта — плохой обмен.
- 🔗 Есть ли обмены. Распределённая база (РИБ), обмен с УТ, сайтом, банком — после отката узлы рассинхронизируются по номерам сообщений.
- 💾 Где будет текущая база. Перед откатом сделайте копию и сломанной версии. Она понадобится, чтобы достать введённые после обновления документы.
Не начинайте откат, пока не сохранили текущее состояние базы — даже неработающее.
Где искать резервную копию до обновления
Копия может лежать в нескольких местах, даже если вы её специально не делали. Проверьте по порядку.
| Источник | Как выглядит | Для какой базы |
|---|---|---|
| Копия мастера обновления | архив в каталоге, указанном в настройках резервного копирования мастера | файловая |
| Ручная выгрузка из Конфигуратора | файл .dt | любая |
| Копия каталога базы | файл 1Cv8.1CD | файловая |
| Бэкап СУБД | .bak (MS SQL), .backup или .sql (PostgreSQL) | клиент-серверная |
| Регламентное копирование в программе | архивы в каталоге из настроек резервного копирования | файловая |
Мастер «Обновление версии программы» в типовых конфигурациях перед обновлением файловой базы предлагает создать резервную копию. Если её не отключали, каталог хранения виден в настройках резервного копирования внутри самого мастера.
Распакуйте найденный архив в отдельную папку и посмотрите, что внутри: файл 1Cv8.1CD или выгрузка .dt. От этого зависит способ восстановления.
Для серверной базы спросите администратора СУБД: в MS SQL с полной моделью восстановления можно вернуться не только к ночному бэкапу, но и к минуте перед обновлением — за счёт журналов транзакций.
Как откатить обновление файловой базы 1С
У файловой базы два способа отката. Оба требуют, чтобы в базе не было ни одного пользователя.
Способ 1. Замена файла 1Cv8.1CD
Самый быстрый вариант, если у вас есть копия самого файла базы.
- Попросите всех выйти из программы. Проверьте, что в каталоге базы нет файла блокировки
1Cv8.1CL, или что его можно удалить — значит, сеансов нет. - Переименуйте текущий
1Cv8.1CD, например в1Cv8_posle_obnovleniya.1CD. Не удаляйте его. - Скопируйте файл из резервной копии в каталог базы под именем
1Cv8.1CD. - Запустите базу в режиме 1С:Предприятие и проверьте номер релиза: меню с тремя полосками →
Справка → О программе.
Удалять файл блокировки при работающих пользователях нельзя: их сеансы оборвутся, а несохранённые документы пропадут. Делайте это только когда все вышли.
Способ 2. Загрузка выгрузки .dt
Подходит, если копия сделана выгрузкой информационной базы.
- Откройте базу в режиме Конфигуратор под администратором.
- Выберите
Администрирование → Загрузить информационную базу. - Укажите файл
.dtи подтвердите замену. - Дождитесь сообщения о завершении. Конфигуратор предложит перезапуститься — согласитесь.
Загрузка заменяет всё: конфигурацию, данные, расширения и список пользователей. Пароли тоже вернутся к состоянию на момент выгрузки.
Если в Конфигуратор не пускает новая версия (например, база не открывается вовсе), создайте в стартовом окне новую пустую базу и загрузите .dt туда. Потом пропишите её путь вместо старой.
Откат клиент-серверной базы через восстановление в СУБД
Для серверной базы правильный путь — восстановление средствами СУБД. Выгрузка .dt тоже работает, но на базе в десятки гигабайт она идёт часами.
Подготовка в консоли кластера
- Откройте консоль администрирования серверов 1С, найдите информационную базу.
- В свойствах базы включите
Блокировка начала сеансов включенаиБлокировка регламентных заданий включена. Задайте текст сообщения для пользователей. - В узле «Сеансы» завершите оставшиеся сеансы этой базы.
Завершение сеансов обрывает работу пользователей без сохранения. Предупредите их заранее и делайте это вне рабочего времени.
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 прошлого релиза. Практически это опасно.
Почему так делать не стоит:
- 🗑️ Реквизиты и регистры, которых не было в старом релизе, удалятся при обновлении конфигурации базы данных вместе с данными в них.
- 🔄 Обработчики обновления уже перенесли данные в новые структуры. Старая конфигурация этих структур не знает.
- 🏷️ В базе записан номер новой версии. Программа увидит несоответствие, и поведение при запуске непредсказуемо.
Если копии нет, а работать на новом релизе нельзя, рабочий путь другой:
- Создайте новую базу из шаблона нужного (прошлого) релиза.
- Перенесите туда справочники и документы обработкой «Выгрузка и загрузка данных XML» или настроенным обменом.
- Проверьте остатки и обороты по ключевым счетам в обеих базах.
Это долго и требует сверки, поэтому обычно проще дождаться исправления от поставщика конфигурации.
Как вернуть прежнюю версию платформы 1С:Предприятие
Обновление платформы и обновление конфигурации — разные вещи. Если после установки новой платформы начались сбои, данные трогать не нужно: достаточно запускать базу на прежней версии.
Файловая база и клиент
- Убедитесь, что прежняя версия платформы осталась установленной. Несколько версий живут рядом: каждая в своей папке вида
C:\Program Files\1cv8\8.3.xx.xxxx. - Если её удалили — установите заново из дистрибутива.
- В стартовом окне выберите базу →
Изменить→ на последней странице мастера заполните поле «Версия 1С:Предприятия», например8.3.24.
Запуск через 1cestart возьмёт указанную версию, а не последнюю установленную.
Сервер 1С
- Остановите службу сервера 1С в окно обслуживания — сеансы всех баз кластера оборвутся.
- Сохраните копию каталога
srvinfoс настройками кластера. - Установите прежнюю версию сервера и зарегистрируйте её как службу. Новую службу отключите или удалите.
- Запустите службу и проверьте в консоли, что кластер и базы на месте.
- На всех клиентах выставьте ту же версию: номер клиента должен совпадать с номером сервера до последней цифры.
Если новый релиз конфигурации требует платформу не ниже определённой, откатить только платформу не выйдет. Конфигурация с таким режимом совместимости на более старой платформе не откроется. Сначала откатывают конфигурацию, потом платформу.
После смены версии у пользователей может остаться кэш новой версии. Очистите его запуском с параметром /ClearCache или удалите папки с длинными именами-GUID в %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8 при закрытой программе.
Ошибки при откате обновления и что с ними делать
Отдельно про недостаток места. Выгрузка и загрузка .dt требует свободного места минимум в размер базы, плюс временные файлы. На диске с 5 ГБ свободными базу в 8 ГБ не восстановить.
Резервные копии, после которых откат занимает 15 минут
Откат проходит спокойно только там, где копия была сделана заранее и проверена. Простая схема для небольшой организации:
| Что | Как часто | Сколько хранить |
|---|---|---|
| Копия перед каждым обновлением | вручную, обязательно | до следующего успешного обновления |
| Ежедневная копия базы | ночью, по расписанию | 7–14 дней |
| Еженедельная копия | раз в неделю | 1–2 месяца |
| Копия вне сервера | раз в неделю | на другом диске или в облаке |
Для серверных баз копию делают средствами СУБД: план обслуживания в MS SQL или pg_dump по расписанию в PostgreSQL. Выгрузку .dt держите как дополнительную — она не зависит от СУБД и версии сервера.
Несколько привычек, которые снимают большинство проблем:
- 🧪 Обновляйте сначала копию базы. Проверьте отчёты, печатные формы и обмены, и только потом обновляйте рабочую.
- 📆 Не ставьте релиз в день выхода. Через несколько дней обычно понятно, есть ли в нём критичные ошибки.
- 🔁 Раз в квартал разворачивайте бэкап в тестовую базу. Копия, которую ни разу не восстанавливали, может оказаться пустой.
- 🪜 Не перескакивайте через несколько релизов без нужды. Если релиз обязательный для перехода, мастер обновления пройдёт его сам, но копию перед этим всё равно сделайте.
Частые вопросы
Сколько времени занимает откат обновления?
1Cv8.1CD — минуты. Загрузка .dt на 5–10 ГБ — от получаса до нескольких часов. Восстановление бэкапа СУБД обычно быстрее загрузки .dt той же базы.Пропадут ли пользователи и пароли после отката?
Можно ли откатить обновление в 1С:Фреш или облаке?
Нужно ли откатывать расширения отдельно?
.dt и восстановлении бэкапа СУБД расширения возвращаются вместе с базой. Если откатываете только платформу, расширения не меняются.