Откат 1С после неудачного обновления: возвращаем прежний релиз без потери базы
Содержание
Кнопки «Отменить обновление» в 1С нет. Обновление конфигурации
откатывают одним из трёх способов: восстанавливают базу из резервной копии, сделанной до обновления (.dt, копия папки файловой базы или бэкап SQL), возвращаются к конфигурации базы данных, если изменения ещё не применили, или точечно возвращают нужные объекты через сравнение и объединение конфигураций.
Самый надёжный путь — резервная копия: она возвращает и конфигурацию, и данные в согласованное состояние. Загружать старый файл .cf поверх обновлённой базы рискованно. Ниже разобраны все варианты, от безопасного к радикальному, и что делать с документами, которые успели ввести после обновления.
Можно ли отменить обновление 1С: что проверить до отката
Откат нужен не всегда. Сначала поймите, что именно сломалось и на каком этапе остановилось обновление. От этого зависит способ.
Ответьте себе на четыре вопроса:
- 🕐 Когда обновляли и работали ли после этого пользователи. Если в базе уже есть новые документы, откат из копии их сотрёт.
- 🧩 Дошло ли дело до
Обновить конфигурацию базы данных. Если основная конфигурация изменена, а конфигурация БД — ещё нет, откат делается за минуту без копий. - 🗂 Есть ли копия, сделанная прямо перед обновлением. Проверьте дату файла
.dtили папки с копией. - 🔧 Была ли база доработана. Частая причина «сломанного» обновления — затёртые доработки, а не ошибка релиза. Тогда откатывать всю базу не нужно, достаточно вернуть свои изменения.
Типичные причины, по которым хотят отменить обновление:
- ❌ после обновления не запускается обработчик обновления и база не открывается в режиме Предприятия;
- 🖨 пропали доработанные печатные формы или реквизиты;
- 🔌 перестали работать внешние обработки, расширения или обмен с другой базой;
- 🐞 в новом релизе ошибка, которая мешает работать (неверный расчёт, падение формы).
Если причина — расширение или внешняя обработка, откат конфигурации не нужен. Обычно достаточно отключить расширение
в Администрирование → Печатные формы, отчеты и обработки → Расширения или обновить его под новый релиз.
Перед любым вариантом отката сделайте ещё одну выгрузку текущего, «сломанного» состояния в .dt. Если откат пойдёт не так, вы сможете вернуться хотя бы сюда.
Способ 1. Откат обновления конфигурации из резервной копии
Это основной способ. Копия хранит конфигурацию и данные одного момента, поэтому база возвращается в рабочее состояние целиком.
Восстановление полностью заменяет текущую базу. Всё, что ввели после копии, пропадёт.
Восстановление из файла .dt
- Попросите всех пользователей выйти из базы. Загрузка
.dtтребует монопольного доступа, активные сеансы будут мешать. - Запустите 1С в режиме Конфигуратора под администратором.
- Откройте
Администрирование → Загрузить информационную базу…. - Выберите файл
.dt, сделанный до обновления, и подтвердите замену. - После загрузки Конфигуратор предложит перезапуститься. Затем запустите базу в режиме Предприятия и проверьте номер релиза в окне «О программе» (открывается из главного меню в заголовке окна).
То же можно сделать из командной строки, например при работе по расписанию:
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F"D:\Bases\Buh" /N"Администратор" /P"пароль" /RestoreIB "D:\Backup\buh_before_update.dt" /Out"D:\Backup\restore.log"
Путь к платформе и номер версии подставьте свои. Для серверной базы вместо /F используется /S"сервер\имя_базы".
Файловая база: копия папки
Если вы копировали папку с файлом 1Cv8.1CD до обновления, восстановление — это обратное копирование:
- Закройте все сеансы. Пока база открыта хотя бы у одного пользователя, файл заблокирован.
- Переименуйте текущий
1Cv8.1CDв1Cv8_broken.1CD— не удаляйте. - Скопируйте файл из резервной копии на его место.
- Запустите базу и проверьте релиз.
Клиент-серверная база: бэкап СУБД
Для баз на MS SQL Server или PostgreSQL обычно есть резервные копии средствами СУБД. Восстанавливает их администратор СУБД: в SQL Server — через Management Studio, в PostgreSQL — через pg_restore или psql.
Перед восстановлением бэкапа СУБД заблокируйте начало сеансов в консоли кластера и завершите текущие. Работающие сеансы будут оборваны, поэтому делайте это вне рабочего времени и с предупреждением пользователей.
После восстановления на уровне СУБД перезапуск сервера 1С обычно не нужен, но кэш клиентов может показывать старое. Если интерфейс ведёт себя странно, запустите клиент с параметром /ClearCache.
Способ 2. Отмена обновления до применения к базе данных
У конфигурации 1С два состояния: основная конфигурация (то, что редактируют в Конфигураторе) и конфигурация базы данных (то, по чему работает Предприятие). Обновление из файла .cfu или .cf сначала меняет основную конфигурацию. В базу изменения попадают только после команды Конфигурация → Обновить конфигурацию базы данных (F7).
Если вы загрузили обновление, но ещё не применили его, отменить всё просто:
- В Конфигураторе откройте
Конфигурация → Конфигурация базы данных → Вернуться к конфигурации БД. - Подтвердите действие.
- Основная конфигурация станет такой же, как конфигурация базы данных, то есть прежней.
Данные при этом не трогаются, резервная копия не нужна.
Этот способ не сработает, если обновление уже применено, или если после применения запускался обработчик обновления в режиме Предприятия.
Способ 3. Откат через выгрузку и загрузку конфигурации .cf
Если копии базы нет, но есть файл .cf прежнего релиза, можно загрузить его через Конфигурация → Загрузить конфигурацию из файла…. Где взять такой файл:
- сохранённый вами перед обновлением через
Конфигурация → Сохранить конфигурацию в файл…; - выгруженный из другой базы того же релиза;
- из каталога шаблонов, если в нём остался дистрибутив прежнего релиза (файл
1Cv8.cfв папке релиза).
Это рискованный способ, и вот почему. При обновлении типовой конфигурации запускаются обработчики обновления. Они переносят данные в новые реквизиты и регистры, перезаполняют справочники, меняют структуру. Загрузка старого .cf возвращает структуру, но не возвращает данные назад. Реквизиты, которых не было в старом релизе, будут удалены вместе с данными.
Типовые конфигурации на БСП дополнительно хранят номер версии, до которой обновлена база. Если загрузить релиз с меньшим номером, при запуске программа может отказаться работать с данными или попытаться запустить обновление заново.
| Способ | Когда подходит | Риски |
|---|---|---|
Восстановление из .dt / копии | Копия сделана прямо перед обновлением | Потеря данных, введённых после копии |
| Вернуться к конфигурации БД | Обновление загружено, но не применено | Практически нет |
Загрузка старого .cf | Копии нет, нужна срочная работа | Расхождение данных и структуры, потеря новых реквизитов |
| Сравнение и объединение | Пропали доработки, сам релиз устраивает | Ошибки при ручном выборе объектов |
| История хранилища | Групповая разработка | Нужно правильно выбрать версию |
Загрузку старого .cf в рабочую базу делайте только на копии и только после проверки. Если на копии программа запустилась, документы проводятся и отчёты сходятся — тогда повторяйте на рабочей.
Если конфигурация стояла на поддержке, загрузка .cf заменит и настройки поддержки. Доработки, которые были внесены поверх типового релиза, пропадут, если их нет в загружаемом файле.
Способ 4. Точечный откат: сравнение и объединение конфигураций
Часто релиз в целом рабочий, а проблема в нескольких объектах: затёрлась доработанная печатная форма, вернулся типовой модуль, пропал свой реквизит. Откатывать всю базу ради этого незачем.
Нужен файл .cf состояния до обновления. Порядок такой:
- Сделайте копию текущей базы.
- В Конфигураторе откройте
Конфигурация → Сравнить, объединить с конфигурацией из файла…. - Укажите старый
.cf. Откроется окно сравнения: слева текущая конфигурация, справа — из файла. - Включите отбор «Показывать только отличия», чтобы список не был огромным.
- Снимите все флажки и отметьте только те объекты, которые нужно вернуть. Для модулей можно открыть сравнение и выбрать отдельные процедуры.
- Нажмите «Выполнить» и подтвердите объединение.
- Выполните
Обновить конфигурацию базы данных(F7) и проверьте работу в Предприятии.
Этот же приём помогает, если обновление поставили «загрузкой» вместо «объединения» и доработки исчезли целиком.
Перед объединением посмотрите отчёт о сравнении: в окне сравнения есть команда формирования отчёта. Сохраните его — по нему потом удобно проверить, что вернули всё нужное.
Не возвращайте типовые объекты старого релиза вперемешку с новыми без разбора. Модуль из старого релиза может вызывать процедуры, которых в новом уже нет, и наоборот. Проверяйте синтаксис командой Конфигурация → Проверить конфигурацию.
Способ 5. Отмена изменений в хранилище конфигурации
Если база подключена к хранилищу конфигурации, у вас есть история всех помещённых версий. Это удобный способ отката, особенно когда обновление делали через хранилище.
- Откройте
Конфигурация → Хранилище конфигурации → История хранилища…. - Найдите версию, помещённую до обновления. Ориентируйтесь на дату и комментарий.
- Выделите её и выберите получение этой версии в конфигурацию. Можно также сохранить версию в файл
.cf, чтобы сначала проверить её на копии. - Захватите в хранилище все объекты, которые нужно откатить.
- Поместите конфигурацию в хранилище как новую версию с понятным комментарием, например «Откат обновления до релиза …».
- Обновите конфигурацию базы данных в рабочих базах, подключённых к хранилищу.
Историю хранилища не «переписывают» назад. Откат — это новая версия, равная старой. Так история остаётся честной, а коллеги видят, что произошло.
Данные хранилище не хранит. Если обработчики обновления уже изменили данные в рабочей базе, возврат версии из хранилища решает только проблему конфигурации. Данные придётся восстанавливать из копии базы.
Что делать с документами, введёнными после обновления
Самая неприятная ситуация: обновление прошло, бухгалтеры два дня работали, и только потом нашли ошибку. Откат из копии сотрёт эти два дня.
Варианты по нарастанию трудоёмкости:
- Не откатывать, а исправить. Если ошибка в одной форме или отчёте, часто дешевле дождаться исправительного релиза, временно отключить проблемную функцию или поправить объект через расширение.
- Ввести заново вручную. Если документов десятки, проще восстановить копию и перебить их по распечаткам или выпискам.
- Перенести обменом. Восстановите копию в отдельную базу и перенесите новые документы обработкой обмена через формат EnterpriseData или универсальным обменом XML. Перенос между разными релизами требует проверки правил.
Чтобы определить, какие документы появились после обновления, используйте журнал регистрации: Администрирование → Обслуживание → Журнал регистрации с отбором по дате и событию записи данных.
Ошибки при откате обновления 1С и как их обойти
Не удаётся загрузить .dt: «Ошибка установки монопольного режима». В базе остались сеансы, в том числе фоновые задания. В клиент-серверном варианте заблокируйте начало сеансов в консоли кластера и завершите текущие. В файловом — проверьте, не открыта ли база на другом компьютере или в фоновом процессе.
После загрузки старого .cf программа сразу запускает обновление. Значит, номер версии данных в базе выше, чем у загруженной конфигурации. Это сигнал, что такой откат некорректен. Остановитесь и восстановите базу из полной копии.
После отката пропали реквизиты и данные в них. Это ожидаемый результат загрузки .cf старого релиза: реквизиты, добавленные обновлением, удалены вместе с содержимым. Вернуть их можно только из копии базы.
В копии файловой базы «Файл базы данных повреждён». Копию делали, когда база была открыта, и файл скопировался не целиком. Попробуйте утилиту chdbfl.exe из папки bin платформы — она проверяет и исправляет файловую базу
. Работайте с копией файла, не с оригиналом.
Программа снова обновилась сама. В типовых конфигурациях включено автоматическое обновление через интернет
-поддержку. Отключите его в Администрирование → Интернет-поддержка и сервисы до тех пор, пока не разберётесь с ошибкой релиза.
Частые вопросы
Можно ли откатить только платформу, а конфигурацию оставить?
Хранит ли 1С копию базы перед обновлением автоматически?
Сколько хранить копию, сделанную перед обновлением?
Можно ли откатить обновление в 1С:Фреш или облаке?
Обновление прервалось на середине — это нужно откатывать?
Обновить конфигурацию базы данных или запуск обработчиков в Предприятии. Если база не открывается и повтор не помогает, восстанавливайте копию.