Вернуть прежнюю версию 1С 8.3 после неудачного обновления

· 10 мин

Содержание

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

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

Что меняет обновление и почему откат — это не «отмена»

В 1С есть три слоя, и обновляются они независимо:

  • 🧩 Конфигурация — прикладное решение: Бухгалтерия, ЗУП, УТ. Обновляется через Конфигуратор или помощник обновления.
  • 🗄️ Данные — справочники, документы, регистры. Меняются при первом запуске после обновления конфигурации.
  • ⚙️ Платформа — сама программа 1С:Предприятие 8.3 (1cv8.exe, сервер, клиенты). Ставится как обычное приложение Windows или Linux.

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

Отсюда главный вывод. Когда данные уже преобразованы под новую версию, вернуть старую конфигурацию «поверх» них нельзя. Новых реквизитов и регистров в старой версии нет, при реструктуризации платформа их удалит вместе с содержимым. Поэтому рабочий откат конфигурации — это всегда возврат всей базы целиком: конфигурации и данных вместе.

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

Резервная копия: без неё откатываться не на что

Если копии нет, отката в полном смысле тоже нет. Способ сделать копию зависит от варианта работы базы.

Файловая база

Самый быстрый вариант — копия каталога базы. Все пользователи выходят из программы, затем папка с файлом 1Cv8.1CD копируется целиком в другое место. Копировать файл при открытых сеансах нельзя: получится несогласованная копия.

Второй вариант — выгрузка в .dt: Конфигуратор → Администрирование → Выгрузить информационную базу. Файл .dt содержит конфигурацию и все данные. Он компактнее и переносится между файловым и клиент-серверным вариантами.

Типовые конфигурации в файловом режиме умеют делать копию сами. В Бухгалтерии 3.0 и ЗУП 3.1 настройка находится в Администрирование → Обслуживание → Резервное копирование и восстановление. Помощник обновления из раздела Администрирование → Обслуживание → Обновление версии программы перед установкой тоже предлагает создать резервную копию — эту галочку не снимайте.

Клиент-серверная база

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

MS SQL Server:

BACKUP DATABASE [buh_prod]
TO DISK = N'D:\Backup\buh_prod_before_update.bak'
WITH COPY_ONLY, INIT, CHECKSUM;

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

PostgreSQL:

pg_dump -U postgres -Fc -f /backup/buh_prod_before_update.dump buh_prod

Перед обновлением запишите номер текущего релиза конфигурации (окно «О программе» в главном меню) и версию платформы. При откате эти два числа понадобятся первыми.

Как откатить обновление конфигурации 1С 8.3

Выберите сценарий по тому, на каком этапе вы сейчас.

Сценарий 1. Конфигурация загружена, база ещё не обновлена

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

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

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

Это единственный откат без потерь и без резервной копии. Он помогает, когда при сравнении и объединении вы поняли, что обновление затрёт доработки, или выбрали не тот файл обновления.

Сценарий 2. База обновлена — восстановление из .dt

Подходит для файловых и клиент-серверных баз.

  1. Попросите всех выйти из программы. Для клиент-серверной базы включите блокировку начала сеансов в консоли кластера или через Администрирование → Обслуживание → Блокировка работы пользователей. Активные сеансы будут разорваны — делайте это вне рабочего времени или после предупреждения пользователей.
  2. Откройте Конфигуратор под администратором.
  3. Выберите Администрирование → Загрузить информационную базу и укажите .dt, сделанный перед обновлением.
  4. Дождитесь завершения и подтвердите перезапуск Конфигуратора.
  5. Проверьте релиз в окне «О программе»: он должен совпадать с записанным до обновления.

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

Сценарий 3. Файловая база — подмена файла

Если копировали папку базы:

  1. Все выходят из программы.
  2. Текущий 1Cv8.1CD переименуйте, например в 1Cv8_after_update.1CD. Не удаляйте.
  3. Положите на его место файл из копии.
  4. Запустите базу и проверьте релиз.

Сценарий 4. Клиент-серверная база — восстановление в СУБД

Перед восстановлением заблокируйте начало сеансов и завершите текущие, как в сценарии 2.

MS SQL Server:

ALTER DATABASE [buh_prod] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
RESTORE DATABASE [buh_prod]
FROM DISK = N'D:\Backup\buh_prod_before_update.bak'
WITH REPLACE;
ALTER DATABASE [buh_prod] SET MULTI_USER;

PostgreSQL:

pg_restore -U postgres -d buh_prod --clean --if-exists /backup/buh_prod_before_update.dump

После восстановления в СУБД у пользователей может остаться кэш новой конфигурации. Один раз запустите клиент с параметром /ClearCache или очистите кэш в окне выбора баз.

Почему не стоит загружать старый .cf поверх обновлённых данных

Технически это возможно: Конфигурация → Загрузить конфигурацию из файла, затем обновление базы данных. На практике получится база, в которой данные уже перестроены под новую версию, а код — от старой. Объекты, добавленные в новом релизе, удалятся вместе с данными. Обработчики, уже изменившие реквизиты, назад не откатятся.

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

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

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

На рабочем месте пользователя

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

  1. Если прежней версии нет, установите её дистрибутивом той же разрядности. Новую удалять не обязательно.
  2. В окне запуска выделите базу и нажмите «Изменить».
  3. На последнем шаге в поле «Версия 1С:Предприятия» укажите нужную версию, например 8.3.24.1691 или просто 8.3.24.
  4. Сохраните и запустите базу.

Та же настройка хранится в списке баз — файле %APPDATA%\1C\1CEStart\ibases.v8i, строкой вида:

Version=8.3.24

Через этот файл версию удобно прописать сразу на многих рабочих местах.

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

На сервере 1С

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

  1. Предупредите пользователей и выберите окно обслуживания: остановка службы агента сервера разрывает все сеансы во всех базах кластера.
  2. Сохраните копию каталога реестра кластера (srvinfo). Там хранятся список баз, настройки кластера и администраторы.
  3. Остановите службу агента сервера 1С новой версии.
  4. Установите сервер прежней версии с регистрацией службы. Проверьте, что служба запущена от того же пользователя и использует тот же каталог srvinfo.
  5. Убедитесь, что служба новой версии не стоит в автозапуске, иначе после перезагрузки на порту 1540 запустятся два агента.
  6. Подключитесь консолью администрирования прежней версии и проверьте, что все базы на месте.
  7. Переключите клиентов на ту же версию — по инструкции из предыдущего подраздела.

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

Неудачное обновление: что проверить, прежде чем откатываться

Откат — радикальная мера: теряются данные, введённые после копии. Часть проблем решается без него.

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

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

Как обновлять 1С 8.3, чтобы не пришлось откатывать назад

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

  • 🧪 Сначала на копии. Разверните .dt рабочей базы в тестовую, обновите её и проверьте ключевые операции: проведение типовых документов, формирование отчётности, обмены, печатные формы.
  • 🔢 Обновляйтесь по цепочке. Пропустить несколько релизов нельзя: у каждого файла обновления есть список версий, с которых он ставится. Если релизов накопилось много, проходите их последовательно.
  • 🧷 Совместимость платформы. Сверьте минимальную версию платформы для нового релиза и обновите её заранее, отдельным шагом.
  • 🧱 Доработки — в расширения. Изменения в расширениях почти не мешают обновлению. Доработки в основной конфигурации требуют ручного сравнения каждый раз.
  • 🕗 Окно обслуживания. Обновляйте вечером или в выходной, когда никто не работает и есть время на восстановление.
  • 📅 Не в дни отчётности. Обновление накануне сдачи деклараций — лишний риск. Новые формы обычно выходят заранее.
  • 🗂️ Хранить копии. Держите копию «до обновления» как минимум до закрытия ближайшего отчётного периода.
Перед обновлением рабочей базы
Выполнено: 0 / 5

Проверка копии — не формальность. Копия, которая не восстанавливается, равна её отсутствию. Хотя бы раз разверните .dt в пустую базу и откройте её.

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

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