Откат 1С после неудачного обновления: что можно вернуть и какой ценой
Содержание
Удалить обновление конфигурации
1С одной кнопкой нельзя: в платформе 8.3 нет команды «отменить обновление». Если изменения ещё не записаны в базу данных, откат делается в Конфигураторе через Конфигурация → Конфигурация базы данных → Вернуться к конфигурации БД. Если обновление уже применено и программа запускалась, надёжный путь один: восстановить резервную копию, сделанную перед обновлением.
Типичная ситуация: вечером бухгалтер обновил БП, утром не формируется отчёт или «поехала» доработанная печатная форма. Первое желание — откатить версию назад. Ниже по шагам, как это сделать в каждом случае и что вы при этом теряете.
Как понять, в каком состоянии база после обновления
Способ отката зависит от трёх вещей: на какой версии база сейчас, применены ли изменения к базе данных и стоит ли конфигурация на поддержке. Проверка занимает пару минут.
Номер версии
- 🔢 В режиме 1С:Предприятие: откройте главное меню (кнопка с тремя полосками или стрелкой в заголовке окна) →
Справка → О программе. Там указаны версия конфигурации и платформы. - 🛠 В Конфигураторе: откройте конфигурацию, в дереве метаданных щёлкните правой кнопкой по корню →
Свойства. Номер — в поле «Версия».
Запишите номер до любых действий. Он понадобится, чтобы найти дистрибутив нужной версии.
Применено ли обновление к базе
В Конфигураторе у 1С две конфигурации: основная (та, что вы редактируете и обновляете) и конфигурация базы данных (по ней реально работают пользователи). Обновление проходит в два шага: сначала меняется основная, потом команда Конфигурация → Обновить конфигурацию базы данных (F7) переносит изменения в базу.
Признаки, что второй шаг не выполнен:
- ⚠️ при открытии Конфигуратора дерево метаданных помечено как изменённое;
- ⚠️ при запуске 1С:Предприятия из Конфигуратора появляется вопрос
Конфигурация базы данных не соответствует сохраненной конфигурации. Продолжить?; - ⚠️ версия в
О программеу пользователей прежняя, а в свойствах основной конфигурации — новая.
Состояние поддержки
Откройте Конфигурация → Поддержка → Настройка поддержки. В окне видны версия конфигурации поставщика и режим:
| Режим | Что значит для отката |
|---|---|
| На поддержке, изменения не разрешены | Типовая без доработок. Откат проще всего: копия или старый .cf |
| На поддержке, изменения разрешены | Есть доработки. При загрузке старого .cf они пропадут, если их нет в этом файле |
| Конфигурация снята с поддержки | Обновления шли через сравнение и объединение. Восстанавливать лучше только из копии |
Отмена обновления, которое ещё не записано в базу данных
Это самый безопасный случай. Данные пользователей не тронуты, обработчики обновления не запускались. Откатывается только основная конфигурация.
- Убедитесь, что пользователи работают: им этот откат не мешает, монопольный доступ здесь не нужен.
- В Конфигураторе выберите
Конфигурация → Конфигурация базы данных → Вернуться к конфигурации БД. - Подтвердите действие. Основная конфигурация заменится той, что сейчас записана в базе.
- Проверьте номер в свойствах конфигурации: он должен совпасть с тем, что видят пользователи.
Если обновление вы ставили на конфигурацию с доработками и успели поправить код в основной конфигурации, эти правки тоже пропадут. Перед возвратом сохраните основную конфигурацию в файл: Конфигурация → Сохранить конфигурацию в файл.
Сценарий частый: обновление прервалось на этапе сравнения, Конфигуратор закрыли, а наполовину обновлённая основная конфигурация осталась. Возврат к конфигурации БД приводит всё в исходное состояние.
Полный откат версии 1С из резервной копии
Если вы нажали F7, приняли изменения и тем более открыли базу в режиме 1С:Предприятие, программа выполнила обработчики обновления. Они переносят данные в новые реквизиты и регистры, заполняют новые настройки. Обратно такие изменения сами не откатываются.
Поэтому корректный откат — восстановить всю базу на момент до обновления: и конфигурацию, и данные.
Файловая база или любая база из .dt
- Попросите всех выйти из программы. Загрузка .dt требует монопольного доступа: работающие пользователи потеряют несохранённые данные.
- Сделайте копию текущего состояния:
Администрирование → Выгрузить информационную базу. Это страховка, если копия до обновления окажется битой. - Выберите
Администрирование → Загрузить информационную базуи укажите файл .dt, сделанный перед обновлением. - Дождитесь сообщения об успешной загрузке и перезапустите Конфигуратор.
- Запустите 1С:Предприятие и проверьте номер версии в
О программе.
Всё, что ввели в базу после обновления, исчезнет. Документы за этот период придётся перенести вручную или выгрузить заранее (например, в файл обмена или хотя бы распечатать реестры).
Клиент-серверная база
Для базы на MS SQL или PostgreSQL удобнее восстановить резервную копию средствами СУБД, если администратор её делал. Загрузка .dt тоже работает, но на большой базе идёт долго.
Восстановление на сервере выполняйте в нерабочее время. Перед этим заблокируйте начало сеансов в консоли кластера, иначе пользователи снова зайдут в базу посреди процедуры.
Где взять копию до обновления
- 📁 Мастер обновления в режиме 1С:Предприятие (
Администрирование → Обслуживание → Обновление версии программы) перед установкой предлагает создать резервную копию. Если вы соглашались, ищите файл в каталоге, который был указан в его настройках. - 📁 Регламентное резервное копирование
в файловом варианте настраивается в том же разделе
Обслуживание. Проверьте папку назначения: там лежат архивы по датам. - 📁 Ручная выгрузка .dt, сделанная вами или обслуживающей организацией.
Если копии нет вообще, полноценный откат невозможен. Остаются способы из следующих разделов, но они дают компромисс.
Возврат старой версии через загрузку файла .cf
Когда копии нет, а новая версия мешает работать, можно загрузить в базу конфигурацию прежней версии из файла .cf. Данные при этом остаются, меняется только структура.
Порядок действий
- Найдите дистрибутив прежней версии. Полные дистрибутивы (
1Cv8.cf) лежат в каталоге шаблонов, по умолчанию%APPDATA%\1C\1cv8\tmplts\1c\<конфигурация>\<версия>\. Если старую версию не удаляли, она там. - Сделайте выгрузку .dt текущей базы.
- В Конфигураторе выберите
Конфигурация → Загрузить конфигурацию из файлаи укажите старый1Cv8.cf. - Нажмите F7. Платформа покажет окно реорганизации со списком изменений структуры.
- Внимательно прочитайте список. Объекты, которых нет в старой версии, будут удалены вместе с данными.
- Примите изменения и запустите 1С:Предприятие.
Чем это рискованно
Типовые конфигурации не рассчитаны на понижение версии. Обработчики новой версии уже изменили данные под новую структуру. Старый код может не найти нужные настройки, неверно считать остатки или выдать ошибку при запуске.
| Способ | Когда подходит | Риски |
|---|---|---|
| Вернуться к конфигурации БД | Изменения не записаны в базу | Потеря несохранённых правок в основной конфигурации |
| Восстановление из .dt или копии СУБД | Есть копия до обновления | Пропадут данные, введённые после обновления |
| Загрузка старого .cf | Копии нет, нужна прежняя версия | Несогласованность данных, потеря новых реквизитов, сбои типового кода |
| Сравнение и объединение | Сломан один-два объекта | Требует навыков работы в Конфигураторе |
Загрузку старого .cf стоит рассматривать как временную меру: дождаться исправленного релиза, проверить его на копии и обновиться заново.
Частичный откат через механизм поддержки
Часто ломается не вся программа, а конкретная доработка: печатная форма, отчёт, обработка, которую обновление перезаписало. Откатывать ради неё всю версию незачем.
Восстановить доработанный объект
- Возьмите конфигурацию, где доработка была рабочей: копию .dt (разверните её в отдельную пустую базу и сохраните оттуда .cf) или ранее сохранённый файл конфигурации.
- В рабочей базе выберите
Конфигурация → Сравнить, объединить с конфигурацией из файлаи укажите этот .cf. - В окне сравнения снимите все флажки, затем отметьте только нужные объекты (например, макет печатной формы или модуль отчёта).
- Выполните объединение и обновите конфигурацию базы данных.
Если объект на поддержке без права изменения, Конфигуратор не даст его заменить. Сначала включите возможность изменения в Настройка поддержки для конфигурации и для этого объекта.
Доработка в расширении
Если обновление «сломало» расширение (.cfe), удалять конфигурацию не нужно. Отключите или удалите расширение: Администрирование → Печатные формы, отчеты и обработки → Расширения в БП 3.0 и ЗУП 3.1. Затем закажите у разработчика адаптацию под новый релиз.
База в хранилище конфигурации
Для баз, которые дорабатывает команда через хранилище, откройте Конфигурация → Хранилище конфигурации → История хранилища. Найдите версию до обновления и сохраните её в файл. Дальше работайте с этим .cf так же, как описано выше.
Очистка базы после отката и удаление файлов обновлений
После любого отката, кроме восстановления из копии, в базе остаются следы новой версии. Их стоит убрать.
Проверка и исправление базы
- Обеспечьте монопольный доступ: тестирование и исправление требуют, чтобы в базе никого не было.
- Сделайте выгрузку .dt.
- Выберите
Администрирование → Тестирование и исправление. - Отметьте «Проверка логической целостности» и «Проверка ссылочной целостности». Для ссылок на несуществующие объекты выберите «Не изменять» при первом проходе, чтобы сначала увидеть масштаб проблемы.
- Изучите отчёт. Если битых ссылок мало, повторите проверку с исправлением.
Помеченные объекты и кэш
- 🗑 В режиме 1С:Предприятие удалите помеченные на удаление объекты:
Администрирование → Обслуживание → Удаление помеченных объектов. Это уберёт черновики, созданные обработчиками. - 🧹 Если интерфейс показывает старые формы или ведёт себя странно, очистите кэш: запустите 1С с параметром
/ClearCacheили удалите папки с длинными именами из%APPDATA%\1C\1cv8и%LOCALAPPDATA%\1C\1cv8при закрытой программе.
Лишние шаблоны обновлений
Если под «удалить обновление» вы имеете в виду файлы на диске, они лежат в каталоге шаблонов (tmplts). Каждая версия занимает сотни мегабайт. Удалите папки ненужных версий вручную, но оставьте одну-две последние: они нужны для возможного отката и для обновления конфигураций с доработками.
Если откатить нужно платформу, а не конфигурацию
Новая платформа устанавливается рядом со старой. Чтобы база запускалась на прежней:
- В окне запуска выберите базу →
Изменить. - На последней странице мастера укажите номер в поле «Версия 1С:Предприятия», например
8.3.24. - Лишнюю версию удалите через «Программы и компоненты» Windows.
Учтите: новая версия конфигурации может требовать платформу с номером не ниже определённого. Тогда откат платформы без отката конфигурации не сработает.
Ошибки при откате и что с ними делать
Администрирование → Пользователи) или в консоли кластера. Предупредите людей и завершите их сеансы: несохранённые документы пропадут.Групповое перепроведение документов в разделе Администрирование → Обслуживание или аналогичная обработка) и сверьте итоги с оборотно-сальдовой ведомостью.Если ничего не помогло
Когда копии нет, старый .cf ломает данные, а новая версия не работает, правильнее идти вперёд, а не назад. Дождитесь исправленного релиза или поставьте следующий: ошибки свежих версий фирма-разработчик обычно закрывает в ближайших выпусках. На время можно обойти проблему внешней обработкой или расширением.
Как обновляться, чтобы потом не пришлось откатывать
Откат почти всегда болезненный. Дешевле подготовиться заранее.
Для баз с доработками держите расширения вместо правок основной конфигурации. Тогда обновление не перезаписывает ваш код, а при конфликте достаточно отключить одно расширение.
Частые вопросы
Можно ли перескочить через несколько версий назад?
Сохранятся ли документы, введённые после обновления, если загрузить старый .cf?
Можно ли откатить обновление в 1С:Фреш или облаке?
Как не дать программе обновиться автоматически?
Администрирование → Интернет-поддержка и сервисы и в разделе обновления версии программы, отключите автоматическую установку.