Вернуть 1С к состоянию до обновления: копия, конфигурация, платформа
Содержание
Откатить обновление
1С назад надёжно можно одним способом: восстановить базу из резервной копии, сделанной до обновления. В файловой базе это загрузка .dt через Конфигуратор → Администрирование → Загрузить информационную базу или замена файла 1Cv8.1CD. В клиент-серверной — восстановление копии из СУБД. Кнопки «Отменить обновление» в 1С:Предприятии 8.3 нет.
Есть и мягкие варианты. Если новую конфигурацию загрузили, но базу данных ещё не обновили, хватит команды Вернуть конфигурацию БД. Если сломалась только платформа, достаточно запустить базу
на прежней версии. Ниже — какой путь подходит к вашему случаю и как пройти его без потери данных.
Когда откат действительно нужен, а когда нет
Откат — крайняя мера. Он возвращает базу в прошлое, и всё, что пользователи ввели после копии, придётся вводить заново.
Причины, ради которых откат оправдан:
- 🔴 база не запускается после обновления, ошибка воспроизводится у всех пользователей;
- 🔴 обработчики обновления данных прервались с ошибкой и не проходят повторно;
- 🟠 перестала работать критичная доработка: обмен с сайтом, складом, банком, а исправить её быстро нельзя;
- 🟠 новый релиз требует версию платформы, которую нельзя поставить на сервер прямо сейчас;
- 🟡 сломалась печатная форма или отчёт, без которого нельзя закрыть период сегодня.
Когда откатывать не стоит:
- ошибка в одном документе или отчёте, а остальное работает — чаще быстрее дождаться исправления от разработчика или следующего релиза;
- после обновления прошло несколько дней, и в базе много новых документов — откат обойдётся дороже, чем точечное исправление;
- проблема в расширении или внешней обработке — их можно отключить, не трогая саму конфигурацию.
Перед решением зафиксируйте ошибку: текст, скриншот, на каком действии возникает. Это пригодится и для обращения на линию поддержки, и для проверки после отката.
Что сделать до отката обновления 1С
Подготовка занимает 10–15 минут и защищает от второй аварии поверх первой.
- Сделайте копию текущего, «сломанного» состояния. Звучит странно, но это обязательный шаг. Если откат пойдёт не так, вы вернётесь хотя бы сюда, а не к пустому месту.
- Найдите копию до обновления и проверьте её. Посмотрите дату и размер файла. Копия размером в несколько килобайт или датой месячной давности — повод остановиться.
- Выясните, какие релизы стояли до и после. В пользовательском режиме это видно в окне «О программе» (значок ⓘ в правом верхнем углу). Номер платформы показан там же.
- Предупредите пользователей и назначьте время: при загрузке
.dtи обновлении структуры база нужна монопольно. - Отключите регламентные задания и обмены, чтобы они не записали данные в базу в момент восстановления.
- Перепишите, что ввели после обновления. Документы, созданные после копии, пропадут — список поможет быстро ввести их заново.
Не начинайте откат, пока не убедились, что копия до обновления существует и открывается. Проверить её проще всего, развернув в отдельную тестовую базу.
Восстановление базы из резервной копии
Это главный способ откатить обновление 1С. Он возвращает и конфигурацию, и данные к моменту копии. Способ восстановления зависит от того, как копию делали.
Копия в формате .dt
Файл .dt — выгрузка информационной базы через Конфигуратор. Восстановление:
- Запустите базу в режиме «Конфигуратор» под администратором.
- Откройте
Администрирование → Загрузить информационную базу. - Выберите файл
.dt, сделанный до обновления. - Подтвердите замену данных и дождитесь окончания загрузки.
- Закройте Конфигуратор и запустите базу в режиме «1С:Предприятие».
Если нужно сделать то же из командной строки, например на сервере без интерфейса, используйте ключ /RestoreIB:
"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" DESIGNER /F"D:\Bases\Buh" /N"Администратор" /P"пароль" /RestoreIB"D:\Backup\buh_before_update.dt" /Out"D:\Backup\restore.log"
Загружайте .dt той же или более новой версией платформы, чем та, в которой его выгружали. Обратная загрузка в старую платформу может завершиться ошибкой.
Копия папки файловой базы
Файловая база — это каталог с файлом 1Cv8.1CD. Если перед обновлением вы скопировали каталог целиком:
- Убедитесь, что в базе нет ни одного сеанса: все пользователи вышли, фоновые задания остановлены.
- Переименуйте текущий каталог, например в
Buh_broken. - Скопируйте на его место каталог из копии под прежним именем.
- Запустите базу и проверьте номер релиза.
Копировать файл при открытых сеансах нельзя: копия получится несогласованной.
Копия, которую сделал помощник обновления
В типовых конфигурациях на базе БСП (БП 3.0, ЗУП 3.1, УТ 11) помощник обновления в Администрирование → Обслуживание → Обновление версии программы для файловой базы предлагает создать резервную копию перед установкой. Если вы согласились, копия лежит в каталоге, указанном в настройках резервного копирования.
Восстановить её можно в разделе Администрирование → Обслуживание → Резервное копирование и восстановление: там есть команда восстановления из копии. Программа сама завершит сеансы и загрузит данные.
Откат конфигурации без возврата данных
Иногда копии нет или жалко потерять документы, введённые после обновления. Тогда откатывают только конфигурацию. Здесь важно, на каком этапе остановилось обновление.
Конфигурация загружена, база ещё не обновлена
Если обновление прервали до шага «Обновить конфигурацию базы данных», изменения живут только в основной конфигурации. Пользователи всё ещё работают на старой.
Откат в Конфигураторе: Конфигурация → Конфигурация базы данных → Вернуть конфигурацию БД. Основная конфигурация станет такой же, как конфигурация базы данных. Данные не затрагиваются.
База уже обновлена
Здесь откатиться без копии можно только загрузкой старого файла конфигурации .cf:
- Сохраните текущую конфигурацию:
Конфигурация → Сохранить конфигурацию в файл. - Откройте
Конфигурация → Загрузить конфигурацию из файлаи выберите.cfпрежнего релиза. - Выполните
Конфигурация → Обновить конфигурацию базы данных(F7). - Прочитайте список изменений структуры перед принятием.
Риски у этого способа серьёзные:
- 🔻 при обновлении структуры удаляются реквизиты и регистры, которых не было в старом релизе, — вместе с данными в них;
- 🔻 обработчики обновления нового релиза уже переложили данные по-новому, старая конфигурация может их не понять;
- 🔻 типовая конфигурация хранит номер версии, до которой обновлялись данные, и при запуске может сообщить о несоответствии версий.
Загрузка старого .cf в обновлённую базу — операция для тестовой копии. В рабочей базе делайте её, только если после обновления в ней почти ничего не вводили и вы заранее проверили результат на копии.
Если исходную конфигурацию вообще не сохраняли, файл прежнего релиза можно взять из каталога шаблонов конфигураций (по умолчанию в профиле пользователя, папка tmplts) или скачать с портала поддержки по договору ИТС.
Точечный откат: отдельные объекты и расширения
Часто сломано не всё обновление, а одна обработка, печатная форма или модуль с доработкой. Тогда откатывать всю базу не нужно.
Вернуть отдельные объекты
- Сохраните в файл старую конфигурацию или возьмите
.cfпрежнего релиза. - Откройте
Конфигурация → Сравнить, объединить с конфигурацией из файла. - В окне сравнения снимите все флажки и отметьте только нужные объекты: модуль, макет, форму.
- Выполните объединение и обновите конфигурацию базы данных.
Так можно вернуть свою доработку, которую обновление перезаписало. Но объект старого релиза может вызывать процедуры, которых в новом уже нет, — проверяйте на копии.
Отключить расширение
Если после обновления ошибка возникает в коде расширения, отключите его, а не откатывайте конфигурацию. В БП 3.0 и УТ 11 список расширений открывается в Администрирование → Печатные формы, отчеты и обработки → Расширения. Снимите флажок активности у проблемного расширения и перезапустите сеанс.
Сравнение вариантов отката:
| Способ | Когда подходит | Что теряется | Риск |
|---|---|---|---|
Загрузка .dt или копии СУБД | база сломана, есть копия до обновления | данные после копии | низкий |
Вернуть конфигурацию БД | конфигурацию загрузили, базу не обновили | ничего | минимальный |
Загрузка старого .cf | копии нет, новых данных почти нет | данные в удалённых реквизитах | высокий |
| Объединение отдельных объектов | сломан один модуль или форма | ничего | средний |
| Отключение расширения | ошибка в коде расширения | функции расширения | низкий |
Как вернуть предыдущую версию платформы 1С
Платформы 8.3 ставятся рядом друг с другом: каждая версия лежит в своём каталоге, например C:\Program Files\1cv8\8.3.xx.xxxx. Новая версия старую не удаляет, если не снять это в установщике.
Чтобы запустить базу на прежней платформе:
- В окне запуска выделите базу и нажмите «Изменить».
- Пройдите до последней страницы с параметрами запуска.
- В поле «Версия 1С:Предприятия» укажите номер нужной версии, например
8.3.24или полный номер сборки. - Нажмите «Готово» и запустите базу.
Если старую версию удалили, установите её заново из дистрибутива. Удалять новую при этом не обязательно.
Платформу нельзя откатить ниже версии, которую требует конфигурация. Новые релизы БП, ЗУП и УТ указывают минимальный номер платформы, и на более старой база не запустится. Тогда откатывать нужно и конфигурацию — через копию.
Откат обновления на сервере 1С и СУБД
В клиент-серверном варианте откат идёт в два слоя: база в СУБД и сервер 1С. Это разные действия, и их можно делать по отдельности.
Восстановление базы из копии СУБД
Для больших баз копия средствами СУБД быстрее и надёжнее .dt. Перед восстановлением в консоли администрирования серверов откройте свойства информационной базы и включите «Блокировка начала сеансов» и «Блокировка регламентных заданий». Затем завершите активные сеансы.
Завершение сеансов оборвёт работу пользователей без сохранения — делайте это в согласованное окно.
Восстановление в MS SQL Server:
-- копия перед обновлением (выполнять до обновления)
BACKUP DATABASE [buh] TO DISK = N'D:\Backup\buh_before_update.bak' WITH COPY_ONLY, INIT;
-- откат: восстановление поверх текущей базы
RESTORE DATABASE [buh] FROM DISK = N'D:\Backup\buh_before_update.bak' WITH REPLACE;
Восстановление в PostgreSQL:
pg_dump -U postgres -Fc -f D:\Backup\buh_before_update.backup buh
pg_restore -U postgres -d buh --clean D:\Backup\buh_before_update.backup
После восстановления снимите блокировки в свойствах базы и проверьте релиз в «О программе».
Откат версии сервера 1С
Если проблема в новой сборке сервера, верните прежнюю:
- Установите старую версию сервера из дистрибутива, если её уже нет на машине.
- Остановите службу агента сервера 1С. Все сеансы на этом сервере оборвутся — согласуйте время.
- Переключите службу на исполняемый файл
ragent.exeпрежней версии. Проще всего — переустановить старую версию с отметкой установки сервера как службы Windows. - Запустите службу и откройте консоль администрирования той же версии.
Настройки кластера и список баз хранятся в каталоге данных сервера (по умолчанию srvinfo) и при смене версии сохраняются.
Версия клиента должна совпадать с версией сервера. После отката сервера проверьте, что на рабочих местах и терминальных серверах стоит та же сборка, иначе пользователи не подключатся.
Как обновлять 1С дальше, чтобы не откатываться
Откат почти всегда — следствие пропущенной подготовки. Несколько правил снимают большую часть проблем.
- 📦 Копия перед каждым обновлением. Для файловой базы —
.dtили копия каталога, для серверной — копия СУБД. Хранить её стоит до закрытия следующего периода. - 🧪 Сначала тестовая база. Разверните копию, обновите её, проведите пару типовых операций: документ, отчёт, обмен. Только потом обновляйте рабочую.
- 🗂 Сохраняйте
.cfперед загрузкой нового. Файл весит десятки мегабайт и даёт возможность точечного отката. - ⏳ Не ставьте релиз в день выхода. Первые сборки иногда получают исправления через несколько дней.
- 🔢 Не перескакивайте через релизы вручную. Обновление
.cfuставится только на определённые предыдущие релизы; помощник обновления сам строит цепочку. - 🧩 Проверяйте расширения и доработки после каждого обновления на тестовой копии.
Автоматизировать копию перед обновлением можно командой Конфигуратора в пакетном режиме:
"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" DESIGNER /F"D:\Bases\Buh" /N"Администратор" /P"пароль" /DumpIB"D:\Backup\buh_%DATE:~-4%%DATE:~3,2%%DATE:~0,2%.dt" /Out"D:\Backup\dump.log"