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

· 11 мин

Содержание

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

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

Что сделать до отката: копия текущего состояния и диагностика

Откат — тоже изменение базы. Перед ним зафиксируйте то, что есть сейчас, даже если релиз «сломал всё».

  1. 📦 Сохраните текущую базу. Выгрузите .dt через Администрирование → Выгрузить информационную базу в конфигураторе или сделайте бэкап СУБД. Эта копия понадобится, если после отката придётся достать из неё документы, введённые уже на новом релизе.
  2. 🕒 Найдите копию «до». Проверьте дату и время резервной копии. Всё, что пользователи ввели после этого момента, после восстановления пропадёт.
  3. 🔢 Запишите версии. Номер релиза конфигурации виден в Справка → О программе (знак вопроса в правом верхнем углу), там же — версия платформы. Запишите обе цифры до обновления и после.
  4. 🧩 Проверьте расширения. Если в базе есть расширения, обновлённые под новый релиз, после отката они могут не подключиться.
  5. 🔍 Убедитесь, что проблема в релизе. Ошибку «после обновления» иногда даёт не конфигурация, а кэш клиента или новая платформа. Иногда хватает запуска с ключом /ClearCache или переключения на прежнюю версию платформы, и база остаётся на новом релизе.

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

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

Способ 1. Откатить обновление 1С из резервной копии

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

Загрузка выгрузки .dt

  1. Попросите всех выйти из базы. Для загрузки нужен монопольный доступ.
  2. Откройте базу в режиме Конфигуратор.
  3. Выберите Администрирование → Загрузить информационную базу.
  4. Укажите файл .dt, сделанный до обновления, и подтвердите замену данных.
  5. Дождитесь сообщения о завершении. На базе в 20–30 ГБ загрузка может идти час и дольше.
  6. Запустите базу в режиме 1С:Предприятие и проверьте номер релиза в Справка → О программе.

Загрузка .dt полностью стирает текущее содержимое базы. Поэтому копию текущего состояния делают до этого шага, а не после.

Замена файла 1Cv8.1CD в файловой базе

Если вы копировали папку файловой базы целиком, откат — это обратная замена файла.

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

Если 1С при открытии ругается на повреждение файла, копию, скорее всего, снимали при открытой базе. Тогда попробуйте .dt или более раннюю копию. Утилита chdbfl.exe из папки bin платформы проверяет файловую базу , но чинить ею копию «до обновления» имеет смысл, только если других копий нет.

Копия, сделанная помощником обновления

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

Способ 2. Откат обновления конфигурации в конфигураторе

Релиз загружен, но к базе не применён

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

Если второй шаг не выполнялся или прервался, откатитесь так:

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

Данные базы при этом не меняются, потому что их структура ещё старая.

Релиз уже применён к базе

Здесь конфигуратор не поможет. Можно загрузить старый релиз через Конфигурация → Загрузить конфигурацию из файла (файл .cf) и снова обновить конфигурацию базы данных. Но это не откат:

  • ❌ обработчики обновления нового релиза уже переписали часть данных под новую логику, обратно их никто не переведёт;
  • ❌ реквизиты и объекты, добавленные новым релизом, будут удалены вместе с данными в них;
  • ❌ загрузка .cf заменяет конфигурацию целиком, доработки и настройки поддержки придётся восстанавливать отдельно;
  • ❌ программа на БСП может при запуске сравнить версию конфигурации с версией, записанной в данных, и отказаться работать или повторно запустить обновление.

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

Способ 3. Откат обновления платформы 1С 8.3

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

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

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

Если прежней версии на компьютере уже нет, установите её дистрибутив заново. Новую версию удалять необязательно: удаление через Параметры Windows → Приложения или appwiz.cpl нужно, только если она мешает другим базам.

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

На сервере 1С:Предприятия

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

Остановка службы агента сервера обрывает сеансы всех пользователей всех баз кластера. Делайте это вечером или в согласованное окно.

  1. Остановите службу Агент сервера 1С:Предприятия 8.3 в services.msc.
  2. Запустите установщик прежней версии сервера и отметьте установку сервера как службы Windows. Если служба при этом не перерегистрировалась, удалите старую регистрацию и зарегистрируйте ragent.exe из папки прежней версии:
"C:\Program Files\1cv8\8.3.24.1548\bin\ragent.exe" -instsrvc -usr ".\USR1CV8" -pwd "пароль" -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -srvc -agent
  1. Укажите ту же папку srvinfo, что использовалась раньше: в ней хранится реестр кластера со списком баз.
  2. Запустите службу и подключитесь консолью администрирования.
  3. На клиентах переключите версию платформы, как описано выше.

Способ 4. Консоль администрирования серверов 1С при откате

Сама консоль ничего не откатывает. Она нужна, чтобы откат прошёл без пользователей в базе.

Блокировка сеансов перед восстановлением

  1. В консоли раскройте Кластеры → <ваш кластер> → Информационные базы, откройте свойства нужной базы.
  2. Включите Блокировка начала сеансов включена, задайте время и текст сообщения для пользователей.
  3. Отметьте Блокировка регламентных заданий включена, чтобы фоновые задания не держали соединения.
  4. В ветке Сеансы базы завершите оставшиеся сеансы. Предупредите людей заранее: несохранённые документы пропадут.

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

Консоль не открывается после смены версии

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

regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\radmin.dll"

Без этого консоль либо не видит сервер, либо ругается на несовпадение версий. Вместо консоли можно пользоваться утилитой rac; список кластеров выводит rac cluster list, остальные команды смотрите в rac help.

Откат клиент-серверной базы на MS SQL и PostgreSQL

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

Копия перед обновлением в MS SQL

BACKUP DATABASE [buh] TO DISK = N'D:\Backup\buh_do_obnovleniya.bak'
WITH COPY_ONLY, STATS = 10;

COPY_ONLY не ломает цепочку регулярных бэкапов. Сжатие COMPRESSION экономит место, но в SQL Server Express его нет.

Восстановление в MS SQL

ALTER DATABASE [buh] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
RESTORE DATABASE [buh] FROM DISK = N'D:\Backup\buh_do_obnovleniya.bak'
WITH REPLACE, STATS = 10;
ALTER DATABASE [buh] SET MULTI_USER;

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

PostgreSQL

Копию снимают pg_dump, восстанавливают pg_restore в пустую базу:

pg_dump -U postgres -Fc -f D:\Backup\buh_do_obnovleniya.dump buh
pg_restore -U postgres -d buh_restore D:\Backup\buh_do_obnovleniya.dump

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

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

Ошибки после отката обновления 1С и как их убрать

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

При чистке кэша закройте 1С у этого пользователя полностью. Папки с длинными именами из букв и цифр внутри %APPDATA%\1C\1cv8 — это кэш баз, их можно удалять; список баз хранится в файле ibases.v8i в %APPDATA%\1C\1CEStart, его не трогайте.

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

Откат почти всегда дороже, чем подготовка. Несколько привычек снимают большую часть проблем.

  • 🧪 Сначала копия базы . Разверните рабочую базу из .dt в отдельную тестовую, обновите её и проверьте ключевые операции: проведение документов, закрытие месяца , печать, обмены.
  • 📋 Читайте описание релиза. Смотрите требование к версии платформы и список изменённых объектов, особенно если у вас есть доработки или расширения.
  • 💾 Копия прямо перед обновлением. Не вчерашняя ночная, а снятая после выхода пользователей. Для файловой базы — .dt или копия папки при закрытой базе, для серверной — бэкап СУБД с COPY_ONLY.
  • ⏸️ Не перескакивайте через платформу и релиз одновременно. Обновили платформу — поработайте день, потом ставьте релиз. Так сразу видно, кто виноват.
  • 🖥️ Не удаляйте прежнюю платформу сразу. Пусть постоит неделю-две: переключение версии в окне запуска займёт минуту.
  • 🗓️ Обновляйте не в отчётный период. Последние дни перед сдачей отчётности и закрытием месяца — худшее время для нового релиза.

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

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