Откат обновления 1С 8.3: возвращаем прежний релиз без потери данных

· 9 мин

Содержание

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

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

Подготовка к откату: на каком этапе обновление и чем вы рискуете

Обновление конфигурации 1С 8.3 идёт в три этапа. От того, какой из них уже прошёл, зависит, что можно вернуть без потерь.

ЭтапЧто изменилосьЧем откатывать
Основная конфигурация обновлена, на вопрос «Обновить конфигурацию базы данных?» ответили «Нет»Только основная конфигурация в КонфигуратореВернуться к конфигурации БД — без потерь
Конфигурация БД обновлена, в режиме «Предприятие» базу ещё не открывалиСтруктура таблиц, данные не обрабатывалисьЗагрузка прежнего .cf или резервная копия
База открыта в «Предприятии», прошло обновление версии программы, пользователи работалиСтруктура и данные, в том числе отложенная обработка в фонеТолько резервная копия, данные после неё вводят заново

Перед любым действием сделайте три вещи:

  1. 🔒 Выгоните пользователей и закройте вход. В типовых конфигурациях на БСП это Администрирование → Обслуживание → Блокировка работы пользователей. Для клиент-серверной базы есть флажок «Блокировка начала сеансов включена» в свойствах информационной базы в консоли кластера.
  2. 💾 Выгрузите текущее состояние, даже неудачное: Администрирование → Выгрузить информационную базу в Конфигураторе. Если откат пойдёт не так, будет к чему вернуться.
  3. 📝 Запишите номер текущего релиза (Справка → О программе) и номер, к которому возвращаетесь.

Восстановление из копии стирает всё, что ввели после неё: документы, выписки, загруженные из ЭДО файлы. При этом отправленное наружу не отзовётся. Отчёты в ФНС и документы контрагентам останутся отправленными, и в базе их придётся отразить повторно.

Когда откатываться не нужно

Если после обновления сломался один отчёт или одна печатная форма, полный откат часто дороже самой проблемы. Сначала проверьте, не вышло ли исправление (патч) для вашего релиза: в типовых конфигурациях патчи ставятся через раздел Администрирование → Интернет-поддержка и сервисы и подключаются как расширения, без снятия базы с поддержки. Другой вариант — дождаться следующего релиза, где ошибку закрыли.

Откат до обновления структуры: возврат к конфигурации базы данных

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

Если мастер обновления дошёл до вопроса «Обновить конфигурацию базы данных?», а вы ответили «Нет» или закрыли Конфигуратор, данные ещё не тронуты. Откат здесь занимает минуту:

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

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

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

Способ 1. Загрузка прежней конфигурации из файла .cf

Этот способ подходит, когда структуру базы уже обновили, но базу ещё не открывали в режиме «Предприятие». Обработчики обновления не запускались, данные лежат в прежнем виде.

Где взять файл прежнего релиза

  • 📁 Собственная выгрузка .cf, сделанная перед обновлением. Лучший вариант: в ней есть все ваши доработки.
  • 📁 Каталог шаблонов. При установке каждого релиза типовой конфигурации туда кладётся файл поставки 1Cv8.cf. По умолчанию это %APPDATA%\1C\1cv8\tmplts\1c\<конфигурация>\<номер релиза>\. Путь меняется, если при установке выбрали другой каталог.
  • 📁 Конфигурация базы данных другой копии этой же базы (тестовой, архивной): сохраните её через Конфигурация → Конфигурация базы данных → Сохранить конфигурацию БД в файл.

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

Порядок загрузки

  1. Сделайте выгрузку .dt текущей базы (шаг из подготовки).
  2. В Конфигураторе выберите Конфигурация → Загрузить конфигурацию из файла и укажите прежний .cf.
  3. На вопрос об обновлении конфигурации базы данных ответьте «Да» или выполните Конфигурация → Обновить конфигурацию базы данных (F7).
  4. Прочитайте список изменений структуры. Если платформа предупреждает об удалении реквизитов или таблиц с данными, это данные, которые успели появиться в новых объектах. Отмените операцию, если не уверены, что они не нужны.
  5. Запустите «Предприятие», проверьте остатки по основным счетам и пару свежих документов.

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

Способ 2. Частичный откат через сравнение и объединение конфигураций

Иногда откатить нужно не весь релиз, а пару объектов. Типичный случай: обновление затёрло доработанную печатную форму или модуль, а остальное в новом релизе работает правильно.

Здесь помогает команда Конфигурация → Сравнить, объединить с конфигурацией из файла:

  1. Укажите .cf с прежней версией (свою выгрузку до обновления).
  2. Дождитесь окна сравнения. Объекты с отличиями будут отмечены.
  3. Снимите флажки со всего дерева, затем отметьте только объекты, которые нужно вернуть: форму, макет, общий модуль.
  4. Для модулей откройте сравнение и выберите конкретные процедуры, а не весь модуль целиком. Так вы не затрёте исправления фирмы 1С.
  5. Выполните объединение и обновите конфигурацию базы данных.
Что возвращаетеРиск
Макет печатной формыНизкий: на данные не влияет
Форма объектаСредний: новая форма может использовать реквизиты, которых нет в старой
Модуль менеджера или общий модульВысокий: новые процедуры из других объектов могут вызывать то, что вы откатили
Реквизиты, регистрыВысокий: обработчики обновления уже заполнили их по новой схеме

Если доработки регулярно теряются при обновлениях, переносите их в расширение конфигурации. Расширение подключается поверх типовой конфигурации и при обновлении остаётся на месте.

Способ 3. Восстановление базы из резервной копии

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

Выгрузка .dt

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

Загрузка .dt требует монопольного доступа. На базе в 20–30 ГБ она может идти больше часа, планируйте её на нерабочее время.

Копия каталога файловой базы

Если базу копировали целиком, достаточно подменить файл 1Cv8.1CD в каталоге базы файлом из копии. Перед этим закройте все сеансы. Текущий 1Cv8.1CD не удаляйте, а переименуйте: это ваша страховка.

Бэкап СУБД (MS SQL, PostgreSQL)

Для клиент-серверной базы восстановление делают средствами СУБД: в SQL Server Management Studio или утилитой pg_restore для PostgreSQL. Порядок такой:

  1. Включите блокировку начала сеансов в консоли кластера и завершите активные сеансы. Пользователи, которые ещё работают, потеряют несохранённые изменения, поэтому предупредите их заранее.
  2. Восстановите базу СУБД из копии поверх текущей.
  3. Снимите блокировку и зайдите в базу под администратором.

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

Сравнение методов отката

МетодКогда подходитЧто теряется
Вернуться к конфигурации БДСтруктуру ещё не обновлялиНичего
Загрузка .cfСтруктуру обновили, в «Предприятии» не работалиДанные новых реквизитов
Сравнение и объединениеНужно вернуть отдельные объектыИсправления фирмы 1С в этих объектах
Загрузка .dt / бэкапВсегда, если копия естьВсё, что ввели после копии

Хранилище конфигурации: откат в групповой разработке

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

Как достать версию до обновления:

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

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

Для рабочих баз удобна схема «разработка в хранилище, рабочая база без подключения». Обновление сначала проверяют в копии, а в рабочую базу переносят готовый .cf. Тогда откат рабочей базы сводится к загрузке прежнего файла.

Ошибки при откате обновления и что с ними делать

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

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

Большинство неудачных откатов случаются из-за того, что резервную копию не сделали или не проверили. Несколько правил закрывают эту проблему:

  • 🧪 Обновляйте сначала копию базы. Откройте в ней пару документов, сформируйте оборотно-сальдовую ведомость, запустите ваши доработки. Только потом рабочую базу.
  • 💾 Делайте две копии: .cf (для отката конфигурации и объединения) и .dt (для полного отката). Проверяйте, что .dt разворачивается в пустую базу.
  • 🔢 Не перескакивайте через релизы, если фирма 1С этого не допускает. В описании релиза указано, с каких версий на него можно обновиться.
  • 🧩 Держите доработки в расширениях, а не в основной конфигурации. Тогда обновление типовой части их не трогает.
  • 🗓️ Не обновляйтесь в последние дни сдачи отчётности. Если релиз окажется с ошибкой, на откат и повторный ввод данных не будет времени.
  • 📒 Записывайте в журнал: дату, номер релиза до и после, где лежат копии. Через полгода это сэкономит поиск.
Можно ли откатить обновление 1С без резервной копии?
Только если структура базы ещё не обновлялась: тогда помогает «Вернуться к конфигурации БД». Если пользователи уже работали на новом релизе, без копии данные к прежнему виду не вернуть.
Сохранятся ли документы, введённые после обновления?
При загрузке .dt или бэкапа — нет, их придётся ввести заново. Перед откатом выгрузите список этих документов или распечатайте журнал, чтобы ничего не пропустить.
Нужно ли откатывать платформу вместе с конфигурацией?
Обычно нет. Прежний релиз конфигурации работает на более новой платформе. Откат платформы нужен, только если ошибка именно в ней.
Снимается ли конфигурация с поддержки после загрузки старого .cf?
Загрузка вашей собственной выгрузки возвращает и настройки поддержки, сохранённые в этом файле. После загрузки откройте «Конфигурация → Поддержка → Настройка поддержки» и проверьте режим для основных объектов.
Как понять, прошли ли уже обработчики обновления?
Если после обновления кто-то заходил в базу в режиме «Предприятие» и видел окно обновления версии программы, обработчики запускались. В этом случае надёжен только откат из резервной копии.