Обновление 1С пошло не так: возвращаем базу и платформу к прежней версии

· 10 мин

Содержание

Кнопки «отменить обновление» в 1С нет. Откатить обновление можно тремя путями: вернуть основную конфигурацию к конфигурации базы данных (если изменения ещё не применены), восстановить базу из резервной копии, сделанной до обновления, или переключиться на прежнюю версию платформы. Какой путь выбрать, решает один вопрос: успела ли программа изменить структуру и данные базы.

Если обновление уже применено и в базе отработали обработчики, единственный надёжный откат — восстановление копии. Всё, что пользователи ввели после неё, придётся внести заново. Поэтому чем раньше вы решаете откатываться, тем меньше потерь.

Что проверить до отката: какая копия есть и что потеряется

Сначала оцените ситуацию, а уже потом трогайте базу. Ошибка на этом этапе превращает неудачное обновление в потерю данных.

СитуацияЧем откатыватьсяЧто потеряете
Обновление загружено в Конфигураторе, но Обновить конфигурацию базы данных не выполнялосьВозврат к конфигурации БДНичего
Обновление применено, есть копия .dt или файла базыЗагрузка копииДанные после момента копии
Клиент-серверная база, есть бэкап СУБДВосстановление бэкапа в СУБДДанные после момента бэкапа
Проблема только после смены платформы, конфигурация не обновляласьЗапуск на прежней версии платформыНичего
Копии нетОткат невозможен, только исправление ошибок—

Ответьте себе на четыре вопроса:

  1. 📦 Где копия и когда она сделана? Посмотрите дату файла .dt, архива с 1Cv8.1CD или бэкапа в СУБД. Копия, снятая после начала обновления, бесполезна.
  2. 👥 Работали ли пользователи после обновления? Если да — выгрузите список документов, созданных и изменённых после времени копии. Их придётся ввести повторно.
  3. 🔁 Шла ли отложенная обработка данных? В типовых конфигурациях часть преобразований выполняется в фоне уже после запуска. Базу с наполовину обработанными данными «чинить» вручную нельзя — только целиком вернуть копию.
  4. 🔗 Были ли обмены? Если после обновления прошёл обмен с другой базой или сайтом, после отката номера сообщений разойдутся. Обмен потом придётся сверить.

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

Пока готовитесь, закройте базе вход. В типовых конфигурациях на БСП это делается в разделе Администрирование → Обслуживание → Блокировка работы пользователей. Предупредите людей заранее: их сеансы завершатся, несохранённые документы пропадут.

Отмена загруженного, но не применённого обновления

Это самый безопасный случай. Обновление в Конфигураторе идёт в два шага: сначала новая версия загружается в основную конфигурацию, затем вы применяете её к базе командой Конфигурация → Обновить конфигурацию базы данных (F7). Пока второй шаг не сделан, данные не тронуты.

Как вернуться:

  1. Откройте базу в Конфигураторе.
  2. Выберите Конфигурация → Конфигурация базы данных → Вернуться к конфигурации БД.
  3. Подтвердите действие. Основная конфигурация станет такой же, как конфигурация базы данных.

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

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

Если окно «Реорганизация информации» уже принято и прошло до конца — этот способ не поможет, переходите к восстановлению копии.

Откат обновления файловой базы

У файловой базы два вида копий: выгрузка .dt и копия каталога с файлом 1Cv8.1CD. Копия каталога надёжнее и быстрее восстанавливается, .dt компактнее и переносится между версиями.

Способ 1. Подмена файла базы

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

  1. Убедитесь, что в базе никто не работает : закройте все сеансы, включая Конфигуратор.
  2. Переименуйте текущий 1Cv8.1CD, например в 1Cv8_broken.1CD. Не удаляйте его.
  3. Скопируйте из резервной копии файл 1Cv8.1CD в каталог базы.
  4. Если в каталоге лежит файл блокировки 1Cv8.cdn от прерванного сеанса, удалите его только после того, как убедились, что все пользователи вышли.
  5. Запустите базу и проверьте версию конфигурации в окне О программе.

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

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

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

Загрузка .dt требует монопольного доступа. Если программа сообщает, что база занята, ищите сеанс через блокировку пользователей или перезапуском компьютера, где база открыта.

Способ 3. Встроенное восстановление в режиме предприятия

В типовых файловых базах на БСП есть раздел Администрирование → Обслуживание → Резервное копирование и восстановление. Если копии делались по расписанию из этого раздела, оттуда же их можно восстановить: программа закроет сеансы, загрузит копию и перезапустится.

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

Восстановление клиент-серверной базы

На сервере 1С база хранится в СУБД: MS SQL Server или PostgreSQL. Откатываться можно двумя путями: средствами СУБД или через .dt. Средства СУБД быстрее на больших базах, .dt проще, если есть только он.

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

  1. В консоли кластера откройте свойства информационной базы.
  2. Включите блокировку начала сеансов и блокировку регламентных заданий. Укажите сообщение для пользователей и время.
  3. Завершите оставшиеся сеансы. Предупредите людей заранее: незаписанные документы пропадут.

Регламентные задания отключайте обязательно. Иначе они запустятся на ещё не восстановленной базе или сразу после восстановления, до вашей проверки.

Восстановление из бэкапа MS SQL Server

Через SQL Server Management Studio: правой кнопкой по базе → Tasks → Restore → Database, выбрать файл бэкапа, на странице параметров отметить перезапись существующей базы. Тот же шаг скриптом:

-- закрыть подключения к базе
ALTER DATABASE [buh] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

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

ALTER DATABASE [buh] SET MULTI_USER;

ROLLBACK IMMEDIATE обрывает все текущие подключения, включая рабочие процессы 1С. Выполняйте это только после блокировки сеансов в кластере.

Восстановление из бэкапа PostgreSQL

Если копия сделана pg_dump в формате custom, восстанавливают через pg_restore в пустую базу:

# базу-приёмник создать заранее, например через createdb
pg_restore -U postgres -d buh_restored --no-owner /backup/buh_before_update.dump

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

Если есть только .dt

Порядок тот же, что для файловой базы: Конфигуратор → Администрирование → Загрузить информационную базу. На базе в десятки гигабайт загрузка займёт часы, поэтому для серверных баз держите регулярный бэкап средствами СУБД, а не только .dt.

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

Как вернуть прежнюю версию платформы

Часто «сломала» не новая конфигурация, а новая платформа: перестали печататься формы, отвалилось оборудование, база стала медленнее. Здесь данные не меняются, и откат проще.

На рабочем месте

Новый дистрибутив платформы ставится рядом со старым: каждая версия живёт в своём каталоге C:\Program Files\1cv8\8.3.xx.xxxx. Удалять новую версию не обязательно.

  1. В окне запуска выделите базу и нажмите Изменить.
  2. Дойдите до последней страницы мастера.
  3. В поле Версия 1С:Предприятия укажите прежнюю версию, например 8.3.24, или полный номер.
  4. Сохраните и запустите базу.

Если старую версию уже удалили, установите её заново из дистрибутива.

На сервере

Для клиент-серверной базы версия клиента должна совпадать с версией сервера 1С. Поэтому откат платформы делают сразу на сервере и на всех клиентах.

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

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

Ищем причину сбоя: журналы и логи

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

Куда смотреть:

  • 📜 Журнал регистрации. В режиме предприятия — Администрирование → Обслуживание → Журнал регистрации, в Конфигураторе — Администрирование → Журнал регистрации. Отберите события с уровнем «Ошибка» за время обновления. Ищите записи, связанные с обновлением информационной базы: там видно, на каком обработчике остановился процесс.
  • 🔄 Результаты обновления. В типовых конфигурациях на БСП ссылка на результаты и дополнительную обработку данных есть в разделе Администрирование → Обслуживание. Там видно, какие фоновые обработчики завершились с ошибкой.
  • 🛠️ Технологический журнал. Включается файлом logcfg.xml в каталоге conf платформы. Нужен, когда журнал регистрации молчит: падения рабочих процессов, долгие запросы, ошибки СУБД.
  • 🖥️ Журнал Windows. События приложений и системы покажут падения процесса rphost.exe или нехватку памяти на сервере.
  • 💾 Свободное место. Частая причина обрыва — закончился диск под базу, временные файлы или журнал транзакций СУБД.
Диагностика: выберите симптом

Как не попасть на откат в следующий раз

Хорошее обновление — то, которое можно отменить за 15 минут. Для этого нужен порядок.

  • 🧪 Тест на копии. Разверните копию рабочей базы и обновите сначала её. Проверьте закрытие месяца , печать, обмены. Только потом обновляйте рабочую.
  • 💾 Две копии перед обновлением. Файл базы или бэкап СУБД плюс .dt. Проверьте, что копия открывается, а не просто лежит на диске.
  • 🔢 Не прыгайте через релизы. Типовые конфигурации обновляются по цепочке. Пропуск обязательного промежуточного релиза — частая причина ошибок обработчиков.
  • 🧩 Сверьте доработки. Изменённую конфигурацию обновляют через сравнение и объединение, а доработки по возможности выносят в расширения. Расширения после обновления проверяют отдельно.
  • 📅 Выберите время. Не обновляйте базу перед сдачей отчётности или закрытием месяца. Оставьте запас на откат.
  • 🖥️ Платформу и конфигурацию — по отдельности. Сменили платформу, поработали день, потом обновили конфигурацию. Так понятно, что именно сломалось.
  • 📝 Записывайте. Версия до и после, время копии, кто обновлял. В момент сбоя это сэкономит час на выяснения.
Перед обновлением рабочей базы
Выполнено: 0 / 6

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

Можно ли откатить обновление, если копию не сделали?
Нет. Без копии вернуть прежнюю версию конфигурации с данными нельзя. Остаётся исправлять ошибки в текущей версии или искать копию у хостинга, в облачном сервисе или в архивах автоматического резервного копирования.
Как перенести документы, введённые после копии?
Если документов мало, их вводят вручную. Если много — переносят выгрузкой из неудачной базы в восстановленную, но только когда обе базы на одном релизе. Иначе сначала снова обновляют восстановленную копию.
Можно ли загрузить .dt от новой версии в старую платформу?
Не всегда. Выгрузка, сделанная на более новой платформе, может не загрузиться на старой. Поэтому для отката берут копию, снятую до обновления.
Откатится ли облачная база в 1С:Фреш?
Вы сами не меняете там релиз. Восстановление из резервной копии делается через личный кабинет сервиса или по запросу в поддержку провайдера.
Нужно ли после отката заново проверять обмены?
Да. Проверьте, что обмены с другими базами и сайтом проходят без ошибок нумерации сообщений. При расхождении потребуется повторная синхронизация.