Откат после неудачного обновления: возвращаем прежнюю платформу, релиз конфигурации и данные
Содержание
Понизить версию 1С проще всего так: старую платформу ставят рядом с новой и указывают её в свойствах базы, а прежний релиз конфигурации возвращают восстановлением резервной копии, сделанной до обновления. Штатной команды «обновить на релиз ниже» нет: файлы обновления .cfu работают только вперёд.
От того, что именно откатываете, зависит риск. Вернуть платформу — дело на 15 минут и без потери данных. Вернуть конфигурацию — значит откатить и данные: всё, что пользователи ввели после обновления, придётся переносить заново или вводить вручную.
Когда понижение версии 1С действительно нужно
Откат — крайняя мера. Чаще проблему нового релиза решают исправлением, а не возвратом. Но есть ситуации, где назад идти правильно:
- 🐞 после обновления платформы падают клиенты, не печатаются формы, тормозит сервер, а исправленной сборки ещё нет;
- 🧩 доработки или внешние обработки перестали работать на новом релизе конфигурации, а сдавать отчётность нужно сегодня;
- 🔌 сторонняя компонента (банк-клиент, торговое оборудование, внешний обмен) не поддерживает новую платформу;
- 🖥 сервер 1С обновили, а часть клиентов на старой версии не может подключиться;
- 🔁 обновили не ту базу или не тем релизом — например, «перепрыгнули» через обязательный промежуточный релиз.
Определите, что именно сломалось. Если ошибка в платформе — откатываете только платформу, данные не трогаете. Если в конфигурации — откатываете базу целиком.
| Что откатываем | Что теряем | Сложность |
|---|---|---|
| Только платформу | ничего | низкая |
Конфигурацию через загрузку .cf | часть данных новых реквизитов, непредсказуемость | высокая |
| Всю базу из резервной копии | данные, введённые после копии | средняя |
Подготовка: что сделать до отката
Прежде чем что-то менять, зафиксируйте текущее состояние. Даже неудачная версия — это версия, к которой может понадобиться вернуться.
- Запишите номер текущей платформы и релиза. В режиме 1С:Предприятие откройте меню (кнопка с тремя полосками или значок
?в правом верхнем углу) →О программе. Там видно и платформу, и версию конфигурации. - Сделайте свежую выгрузку текущей базы: Конфигуратор →
Администрирование→Выгрузить информационную базу. Получите файл.dt. - Сохраните текущую конфигурацию в файл:
Конфигурация→Сохранить конфигурацию в файл. Файл.cfпригодится, если в базе были доработки. - Найдите резервную копию, сделанную до обновления. Проверьте дату и размер файла. Копия «на всякий случай» без проверки — не копия.
- Выясните, есть ли у вас дистрибутив прежней платформы. Нужен именно номер сборки, например
8.3.22.1923, а не «какая-то 8.3.22». - Предупредите пользователей и выберите время. Загрузка
.dtи обновление конфигурации базы требуют монопольного доступа: все сеансы должны быть закрыты.
Выгрузка .dt из текущей базы делается до любых действий по откату. Если что-то пойдёт не так, вы сможете вернуться хотя бы к исходной точке.
Способ 1. Как понизить версию платформы 1С:Предприятие
Платформа 8.3 спокойно живёт в нескольких версиях на одном компьютере. Каждая ставится в свою папку, например C:\Program Files\1cv8\8.3.22.1923 и C:\Program Files\1cv8\8.3.24.1548. Удалять новую не обязательно.
Файловая база или клиент на рабочем месте
- Установите нужную старую версию из дистрибутива. Новую не трогайте.
- Откройте окно запуска 1С, выделите базу и нажмите
Изменить. - Пройдите мастер до последней страницы. Там есть поле
Версия 1С:Предприятия. - Впишите номер, например
8.3.22.1923. Можно указать и короткий вариант8.3.22— тогда запустится самая новая установленная сборка этой ветки. - Нажмите
Готовои запустите базу. Проверьте номер вО программе.
Если поле оставить пустым, окно запуска выбирает самую новую установленную платформу. Именно поэтому после установки свежей версии все базы «внезапно» переезжают на неё.
Когда баз много, удобнее править список напрямую. Он хранится в файле ibases.v8i в профиле пользователя (%APPDATA%\1C\1CEStart\). У нужной базы допишите строку:
Version=8.3.22.1923
💡 Чтобы откатить все базы сразу, задайте версию по умолчанию в 1cestart.cfg той же папки параметром DefaultVersion. Но точечная привязка базы надёжнее: одна база на старой платформе, остальные продолжают работать на новой.
Клиент-серверный вариант
Здесь платформа откатывается на сервере, а версии клиента и сервера 1С должны совпадать до последней цифры. Порядок:
- Установите старую версию сервера 1С на сервер (компонент «Сервер 1С:Предприятия»).
- Остановите службу «Агент сервера 1С:Предприятия».
Остановка службы обрывает сеансы всех пользователей на этом сервере. Делайте это в согласованное окно, после того как люди закрыли программу.
- Удалите службу новой версии и зарегистрируйте службу старой. В папке
binстарой версии это делается из командной строки администратора:
cd "C:\Program Files\1cv8\8.3.22.1923\bin"
ragent.exe -rmsrvc
ragent.exe -instsrvc -port 1540 -regport 1541 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -usr ".\USR1CV8" -pwd "пароль"
Порты и путь к srvinfo возьмите из текущей службы, чтобы кластер и список баз остались на месте. Имя учётной записи — та, под которой служба работала раньше.
- Запустите службу и откройте консоль администрирования старой версии. Консоль другой версии к агенту может не подключиться.
- На клиентах установите ту же старую версию или привяжите базы к ней, как описано выше.
Если служба после замены не стартует, посмотрите путь к исполняемому файлу в свойствах службы (services.msc). Он должен вести в папку bin нужной версии.
Ограничение: режим совместимости конфигурации
Старая платформа откроет базу, только если конфигурация не требует более новой. Проверить можно в Конфигураторе: Конфигурация → Открыть конфигурацию, затем свойства корня дерева, поле Режим совместимости.
Если там стоит, например, Версия 8.3.24, платформа с номером ниже 8.3.24 базу не запустит. Типовые конфигурации свежих релизов часто требуют минимальную версию платформы — она указана в описании релиза. В таком случае откат платформы возможен только вместе с откатом конфигурации.
Способ 2. Возврат прежнего релиза конфигурации через файл .cf
Этот способ выглядит соблазнительно: загрузил старую конфигурацию — и готово. На деле он самый рискованный.
Почему. Новый релиз при первом запуске выполняет обработчики обновления: переносит данные в новые регистры, заполняет новые реквизиты, меняет структуру. Старая конфигурация об этом ничего не знает. После загрузки .cf данные новых объектов при реструктуризации будут удалены, а уже преобразованные данные старая версия может читать неправильно.
Применять загрузку .cf можно, когда:
- обновление поставили, но в базе ещё никто не работал и первый запуск в режиме 1С:Предприятие не выполнялся;
- это тестовая или учебная копия;
- откат нужен ради изучения разницы между релизами, а не для работы.
Порядок:
- Возьмите
.cfнужного релиза. Его можно сохранить из резервной копии базы или взять из дистрибутива (файл1Cv8.cfв папке шаблона). - Если в базе есть доработки, сначала сравните конфигурации:
Конфигурация→Сравнить, объединить с конфигурацией из файла. Отметьте, что придётся переносить заново. - Выполните
Конфигурация→Загрузить конфигурацию из файла. Текущая основная конфигурация будет полностью заменена. - Обновите конфигурацию базы данных (
F7илиКонфигурация→Обновить конфигурацию базы данных). Внимательно прочитайте список изменений: объекты, которые будут удалены, удалятся вместе с данными.
Загрузка .cf в рабочую базу, где уже вели учёт на новом релизе, почти гарантированно портит данные. Для рабочей базы используйте способ 3.
Расширения конфигурации
живут отдельно от основной конфигурации. После отката проверьте их в Конфигурация → Расширения конфигурации: расширение, написанное под новый релиз, может не подключиться к
старому.
Способ 3. Как откатить версию 1С вместе с данными из резервной копии
Это единственный честный способ вернуть прежний релиз в рабочей базе. Вы получаете базу ровно в том состоянии, в каком она была до обновления.
Из выгрузки .dt
- Откройте базу в Конфигураторе на той версии платформы, на которой делали выгрузку.
Администрирование→Загрузить информационную базу, выберите файл.dt.- Подтвердите замену. Текущие данные и конфигурация будут полностью заменены содержимым файла.
- После загрузки откройте
О программеи убедитесь, что номер релиза прежний.
Загружать выгрузку лучше в ту же версию платформы, которой она была сделана. Файл из новой платформы старая может не принять.
Файловая база
Резервная копия файловой базы — это копия файла 1Cv8.1CD из каталога базы. Порядок простой: закрыть все сеансы, переименовать текущий 1Cv8.1CD (не удалять), положить на его место файл из копии.
База на MS SQL Server или PostgreSQL
Если копию делали средствами СУБД, восстановление выполняется там же: в SQL Server Management Studio — восстановлением бэкапа поверх базы, в PostgreSQL — через pg_restore или psql в зависимости от формата копии. Перед этим заблокируйте начало сеансов в консоли кластера (свойства базы, флажок блокировки сеансов) и сохраните текущую базу отдельным бэкапом.
💡 Надёжный приём: восстановите копию не поверх рабочей, а в новую базу, зарегистрируйте её в кластере и проверьте. Только убедившись, что всё открывается, переключайте пользователей.
Что делать с данными, введёнными после обновления
Всё, что внесли между обновлением и откатом, в восстановленной базе отсутствует. Варианты:
- за 1–2 дня работы проще ввести документы заново по списку из «неудачной» базы;
- если документов много, разверните выгрузку текущей базы (её вы сделали на шаге подготовки) отдельной базой и перенесите документы обработкой обмена через XML. Формат обмена должен поддерживаться обеими версиями — проверьте на копии;
- банковские выписки, документы ЭДО и онлайн-кассы обычно можно загрузить повторно из первоисточника.
Частые ошибки при откате и как их избежать
Ещё одна частая ловушка — откатили, но не выяснили причину. Через неделю кто-то снова нажимает «Обновить», и история повторяется. Пока проблема не решена, отключите автоматическое обновление в программе и предупредите коллег, на какой версии база должна оставаться.
Если откатиться нельзя: альтернативы
Бывает, что резервной копии до обновления нет, а с момента обновления прошёл месяц. Возвращать базу на старую версию в таком случае дороже, чем лечить новую.
- 🧪 Дождаться исправленной сборки платформы. Ошибки свежих платформ закрывают в следующих сборках той же ветки. Установите её рядом и переключите базу.
- 🔧 Обновить доработки, а не откатывать релиз. Через
Сравнить, объединитьперенесите свои изменения на новый релиз или вынесите их в расширение. - 🧰 Сделать обходную операцию. Если не работает одна печатная форма или одна обработка, временно используйте внешнюю версию из прошлого релиза, оставив базу на новом.
- 🆘 Обратиться к партнёру или в линию консультаций по договору сопровождения. Если ошибка в типовом релизе, о ней, скорее всего, уже знают и подскажут обход.
- 🗂 Развернуть старую копию рядом для справки. Нужны старые отчёты или формы — восстановите копию в отдельную базу только для чтения, а работу ведите в новой.
В облачных сервисах (1С:Фреш и аналогах) пользователь не управляет версией платформы и релизом. Откат там возможен только из резервной копии сервиса и через его поддержку.