К статье
Практический материал

Администрирование · 10 мин

Как откатить изменения в конфигурации 1С

Как откатить изменения в конфигурации 1С: откат через сравнение с копией, хранилище, загрузку cf и отмену обновления. Риски, проверки и типичные ошибки.

Откат изменений конфигурации в 1С требуется в нескольких типичных ситуациях: обновление типового релиза прошло с ошибками, доработка сломала рабочие механизмы, поставщик прислал некорректный cf-файл или изменения внесли случайно. Способ отката зависит от того, как именно вносились изменения и какие средства контроля версий использовались до этого момента.

Главное правило: вернуть конфигурацию в прежнее состояние можно только тогда, когда существует источник «правильной» версии — резервная копия информационной базы, выгруженный cf-файл, хранилище конфигурации или предыдущий релиз поставщика. Если ни одного из этих источников нет, полноценный откат невозможен, остаётся только вручную исправлять изменённые объекты.

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

Оцените ситуацию перед откатом

Прежде чем что-либо откатывать, ответьте на три вопроса. Первый: есть ли у вас копия конфигурации в состоянии «до изменений» — dt-выгрузка, cf-файл или доступ к хранилищу. Второй: выполнялись ли обработчики обновления данных — если да, простая загрузка старой конфигурации может привести к несоответствию структуры метаданных и фактических данных. Третий: работали ли пользователи в базе после изменений — введённые ими документы могут потеряться при восстановлении из старой копии.

Полезно зафиксировать текущее состояние: выгрузите cf текущей конфигурации и сделайте резервную копию базы (dt-выгрузку или средствами СУБД). Даже если текущее состояние «плохое», оно может понадобиться для сравнения и переноса отдельных доработок после отката.

Есть cf или dt до измененийПолный откат возможен

Загрузка конфигурации из файла или восстановление базы

Использовалось хранилищеОткат через версии хранилища

Номер версии до изменений известен или виден в истории

Обновлялся типовой релизОткат через копию или повторную установку

Выполнялись ли обработчики обновления данных

Копий нет совсемПолный откат невозможен

Только ручное исправление объектов или запрос релиза у поставщика

Откат через резервную копию базы

Самый надёжный способ — восстановить информационную базу из резервной копии, сделанной до изменений. Для файловой базы это загрузка dt-файла через конфигуратор («Администрирование → Загрузить информационную базу») либо копирование файла 1Cv8.1CD на место рабочего при остановленной работе пользователей. Для клиент-серверной базы — восстановление средствами СУБД (MS SQL, PostgreSQL) из бэкапа.

Этот метод возвращает и конфигурацию, и данные на момент копии. Обратная сторона — все данные, введённые после создания копии, будут потеряны. Если пользователи успели поработать, заранее выгрузите критичные документы (например, через обработку выгрузки-загрузки данных или в XML), чтобы перенести их после восстановления.

Откат через загрузку конфигурации из cf-файла

Если данные должны остаться текущими, а откатить нужно только метаданные, используйте загрузку конфигурации из файла. Порядок действий в конфигураторе: «Конфигурация → Загрузить конфигурацию из файла», выбрать cf-файл прежней версии, подтвердить загрузку, затем выполнить «Обновить конфигурацию базы данных».

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

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

Откат через хранилище конфигурации

Если разработка велась через хранилище конфигурации, откат выполняется точечно и без потери данных. Откройте историю хранилища («Конфигурация → Хранилище конфигурации → История хранилища»), найдите версию, соответствующую состоянию до нежелательных изменений. Для отката отдельных объектов захватите их в хранилище и выполните «Получить из хранилища» нужной версии либо сравните объект с версией хранилища и перенесите старое содержимое.

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

Откат после обновления типового релиза

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

Критичный момент — обработчики обновления данных. Если после обновления они уже отработали (например, перенесли данные между регистрами), загрузка старой конфигурации без восстановления данных приведёт к ошибкам в работе. В этом случае единственный корректный путь — восстановление базы из копии целиком.

Сравнение способов отката

Восстановление из резервной копии

Самый надёжный, возвращает и конфигурацию, и данные. Минус — теряются данные, введённые после копии

Загрузка cf прежней версии

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

Откат через хранилище

Точечный и управляемый, подходит для доработок. Не подходит для отката типового обновления с конвертацией данных

Установка следующего релиза

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

Частичный откат отдельных объектов

Не всегда нужно откатывать всё. Если проблема локализована — например, сломан один отчёт или модуль документа — используйте «Конфигурация → Сравнить, объединить с конфигурацией из файла» с cf прежней версии. В окне сравнения отметьте только проблемные объекты и перенесите их старое содержимое. Так вы сохраните остальные рабочие изменения.

Для типовых конфигураций на поддержке удобно сравнение с конфигурацией поставщика: «Конфигурация → Поддержка → Настройка поддержки → Сравнить, объединить». Это покажет, какие объекты изменены относительно типовой поставки, и позволит вернуть отдельные объекты к типовому состоянию.

Типичные ошибки
01
Загрузка старой конфигурации после отработки обработчиков обновления — данные и метаданные расходятся, база работает с ошибками
02
Откат без свежей резервной копии — невозможно вернуться к текущему состоянию при ошибке выбора файла
03
Слепое подтверждение реструктуризации — удаляются реквизиты и данные, добавленные новой версией
04
Восстановление старой копии без выгрузки документов — теряются данные, введённые пользователями после копии
05
Откат конфигурации в хранилище без обновления конфигурации базы данных — рабочая база продолжает работать на старом коде

Проверка результата после отката

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

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

Контрольные точки

Как проверить результат

Открытие базы в режиме предприятия
Норма

База открывается без ошибок обновления и исключений

Тревожный признак

Ошибки несоответствия метаданных, требование обновления

Проведение типового документа
Норма

Документ проводится, движения формируются корректно

Тревожный признак

Ошибки обращения к реквизитам или регистрам

Версия в настройке поддержки
Норма

Отображается ожидаемый релиз, состояние поддержки корректное

Тревожный признак

Версия не та, конфигурация неожиданно снята с поддержки

Работа ранее сломанного механизма
Норма

Функция выполняется как до неудачного изменения

Тревожный признак

Ошибка воспроизводится — откат выполнен не полностью

FAQ: частые вопросы об откате конфигурации

Можно ли откатить конфигурацию без резервной копии?

Полноценно — нет. Без cf-файла прежней версии, копии базы или хранилища источника «правильного» состояния не существует. Для типовой конфигурации можно получить cf прежнего релиза с портала поставщика, но собственные доработки без копии восстановить не удастся.

Что будет с данными при загрузке старой конфигурации из cf?

Данные сохранятся, если структура объектов не менялась. Если в новой версии добавлялись реквизиты или табличные части, при реструктуризации они будут удалены вместе с данными — платформа покажет список изменений перед применением, и его нужно внимательно прочитать.

Как откатить только один модуль или отчёт?

Используйте «Конфигурация → Сравнить, объединить с конфигурацией из файла» с cf прежней версии и отметьте только нужный объект. Если ведётся хранилище — получите из него старую версию конкретного объекта через историю версий.

Обновление типового релиза прошло с ошибкой, база не открывается. Что делать?

Не пытайтесь повторно обновлять. Восстановите базу из резервной копии, сделанной перед обновлением, затем разберитесь с причиной ошибки (нехватка места, прерванный сеанс, несовместимость платформы) и только после этого повторите обновление на копии.

Снимется ли конфигурация с поддержки при загрузке cf?

При полной загрузке конфигурации из файла конфигурация может перейти в состояние «на поддержке с изменениями» или потерять привязку к поставщику. После отката проверьте состояние в «Настройке поддержки» и при необходимости восстановите поддержку через сравнение с конфигурацией поставщика.

Как защититься от необходимости отката в будущем?

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

Итог

Что важно запомнить

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