Откат неудачного обновления 1С: что делать, если база не стартует
Содержание
Штатной кнопки «Отменить обновление» в 1С нет. Откатить можно двумя способами: вернуть конфигурацию базы данных к основной (если изменения ещё не применены) или восстановить базу из резервной копии (если обновление уже прошло и сломало работу). Какой способ ваш, зависит от того, на каком шаге случился сбой.
Сначала определите стадию, потом выбирайте метод. Попытки «починить» базу наугад чаще всего превращают небольшую проблему в потерю данных.
Прежде чем что-то нажимать, убедитесь, что в базе никто не работает, и сделайте копию файлов базы. Любая правка при сбойном состоянии без копии необратима.
Сначала поймите, на какой стадии оборвалось обновление
Обновление конфигурации проходит в три этапа. От этапа зависит способ отката.
| Этап | Что произошло | Как выглядит сбой | Чем откатывать |
|---|---|---|---|
| 1. Загрузка нового релиза в основную конфигурацию | Файлы релиза объединены с вашей конфигурацией в Конфигураторе | Ошибка слияния, конфликт объектов, зависание окна сравнения | Вернуться к конфигурации базы данных |
| 2. Применение к базе данных (реструктуризация) | Конфигуратор перестраивает таблицы базы (обычно клавиша F7) | Сообщение о блокировке, нехватке места, обрыв связи | Копия базы; частичное применение недопустимо |
| 3. Первый запуск в режиме Предприятия | Выполняются обработчики обновления данных | Окно «Обновление информационной базы» с ошибкой | Копия базы или повторный запуск после исправления |
Если вы видите, что сбой случился на первом этапе, повезло: база ещё не тронута. Если на втором или третьем, без копии не обойтись.
Быстрая диагностика по симптому
Запишите точный текст ошибки. Он нужен и для поиска причины, и для переписки с сопровождением.
Администрирование → Активные пользователи или в консоли серверов, завершите сеансы и повторите.Резервная копия: сделайте её раньше, чем будете что-то менять
Без копии вы откатываете вслепую. Даже если копия была перед обновлением, сделайте ещё одну сейчас, в текущем (сбойном) состоянии. Она пригодится, если откат пойдёт не так.
Способы, от простого к надёжному:
- Файловая база. Закройте все сеансы и скопируйте папку базы целиком (там лежит файл
1Cv8.1CD). Просто копировать файл мало: берите папку со всем содержимым. - Выгрузка в
.dt. В Конфигураторе:Администрирование → Выгрузить информационную базу. Файл подходит для переноса и для восстановления. - Клиент-серверная база. Копия средствами СУБД (например, резервное копирование SQL-сервера). Выгрузка в
.dtтоже допустима, но на больших базах идёт долго.
Файловую папку лучше копировать на другой диск или сетевой ресурс. Копия в соседний каталог на том же диске не спасёт, если сбой связан с диском.
Откат из копии вернёт базу на момент копирования. Всё, что ввели после, придётся заносить заново, поэтому узнайте, сколько работы потеряется, до того как восстанавливать.
Отмена обновления в Конфигураторе: возврат к конфигурации базы данных
Этот способ работает, если новую конфигурацию загрузили, а изменения ещё не применили к базе данных (не нажимали F7 и не соглашались на «Обновить конфигурацию базы данных»).
Различайте два понятия. Основная конфигурация — та, что вы редактируете в Конфигураторе. Конфигурация базы данных — та, что реально работает в базе. Обновление сначала меняет первую, и только потом вы применяете её ко второй.
Порядок действий:
- Откройте базу в режиме
Конфигуратор. - Откройте меню
Конфигурация, затем разделКонфигурация базы данных. - Выберите пункт возврата к конфигурации базы данных. Программа предложит отказаться от изменений основной конфигурации и вернуть её к состоянию базы.
- Подтвердите. Дождитесь окончания операции и закройте Конфигуратор.
- Запустите базу в режиме
1С:Предприятиеи проверьте, что она открывается и данные на месте.
Если ваша конфигурация стоит на поддержке, после возврата проверьте состояние поддержки: Конфигурация → Поддержка → Настройка поддержки. Так видно, что флаги правил поддержки не поплыли.
Не нажимайте F7 «на всякий случай» перед проверкой. Нажатие применит сбойную конфигурацию к базе, и откат через возврат станет невозможен.
Если изменения уже применены: откат через режим Предприятия не получится
Частый вопрос: нельзя ли отменить обновление из самой программы, без Конфигуратора. Нельзя. В режиме Предприятия нет операции, которая вернула бы структуру базы к прошлому релизу. Там можно только посмотреть сведения о версии и о результатах обновления.
Что можно сделать в режиме Предприятия, если база всё-таки запускается:
- Открыть сведения о программе и проверить номер версии конфигурации. Если он новый, а ошибки идут при работе, значит, обновление применилось.
- Найти в журнале регистрации записи об ошибках, возникших во время обновления (фильтр по важности «Ошибка» и по времени запуска). Журнал открывается через
Администрированиеили раздел сервиса, в зависимости от конфигурации. - Исправить причину сбоя обработчика (чаще всего это некорректные данные) и повторить действие.
Если ошибка в обработчике обновления, база может быть частично преобразована. Продолжать работу в таком состоянии нельзя: часть данных уже в новом формате, часть в старом. Здесь выход один: копия.
Ручной откат конфигурации в Конфигураторе из файла
Бывает, что копии базы нет, но есть файл прошлого релиза (.cf) или прошлая поставка (.cfu). Тогда вернуть прежнюю версию кода можно загрузкой файла. Данные при этом не откатываются, только конфигурация.
Порядок:
- Откройте Конфигуратор и сохраните копию текущей конфигурации:
Конфигурация → Сохранить конфигурацию в файл. - Загрузите прежний релиз:
Конфигурация → Загрузить конфигурацию из файла(для.cf). - Примените к базе данных, подтвердив обновление структуры.
- Запустите Предприятие и проверьте работу.
Откат конфигурации без отката данных годится только в одном случае: релизы близки по структуре, а новые обработчики обновления ещё не успели изменить данные. Иначе старый код встретит новые данные и выдаст другие ошибки. Если сомневаетесь, не рискуйте и используйте копию.
Загрузка старой конфигурации поверх новой снимает конфигурацию с поддержки или меняет ее состояние. Потом придётся заново проверять правила обновления.
Очистка кэша и блокировок после сбоя
После обрыва обновления иногда остаются хвосты: кэш клиента ссылается на старую структуру, а в файловой базе висят следы незавершённого сеанса. Это даёт странные ошибки, хотя сама база цела.
Кэш клиента
Кэш лежит в профиле пользователя, в каталогах 1cv8 внутри %LOCALAPPDATA%\1C и %APPDATA%\1C. Очистить его можно двумя путями:
- Закрыть 1С и удалить содержимое папок с именами из длинных буквенно-цифровых идентификаторов (это кэш конкретных баз).
- Запустить клиент с параметром
/ClearCache, например из командной строки или ярлыка.
"C:\Program Files\1cv8\common\1cestart.exe" /ClearCache
Путь к программе у вас может отличаться в зависимости от установки и разрядности. Если не уверены, откройте свойства ярлыка запуска и посмотрите поле «Объект».
Кэш не содержит ваших данных. Удалять его безопасно: после очистки первый запуск будет чуть дольше.
Блокировки
Если сбой оборвал сеанс, в файловой базе может остаться запись об активном сеансе. Типичный признак: база считает, что кто-то в ней работает, хотя все вышли.
Что делать:
- Убедитесь, что никто действительно не работает. На сервере проверьте процессы
1cv8и1cv8c. - Завершите зависшие процессы пользователей через диспетчер задач.
- Если база по-прежнему занята, перезапустите сеанс на сервере или перезагрузите компьютер с файловой базой.
Не удаляйте служебные файлы из каталога базы вручную, если не уверены в их назначении. Особенно это касается самого файла 1Cv8.1CD: его удаление уничтожает базу.
В клиент-серверной базе блокировки видны в консоли кластера. Завершать сеансы там нужно осознанно: пользователи потеряют несохранённую работу, поэтому делайте это вне рабочего времени.
Восстановление базы из резервной копии
Это основной способ, когда обновление применилось и сломало работу. Выберите вариант по тому, как делалась копия.
| Копия | Как восстановить | Нюансы |
|---|---|---|
| Папка файловой базы | Закрыть 1С, заменить сбойную папку копией | Сначала переименуйте сбойную папку, не удаляйте |
Файл .dt | Создать пустую базу, в Конфигураторе Администрирование → Загрузить информационную базу | Требует монопольного доступа, на больших базах долго |
| Копия СУБД | Восстановить средствами СУБД | Делает администратор сервера |
Пошагово: загрузка из .dt
- Создайте новую пустую информационную базу в списке баз (или используйте старую, если можно потерять её содержимое).
- Откройте её в режиме
Конфигуратор. - Выберите
Администрирование → Загрузить информационную базуи укажите файл. - Дождитесь завершения. Не закрывайте окно и не выключайте компьютер.
- Запустите
1С:Предприятиеи проверьте последние документы и остатки.
После восстановления база вернётся к прежней версии конфигурации вместе с данными. Если нужно всё-таки обновиться, найдите причину сбоя и повторите обновление на копии базы.
Сбойную базу не удаляйте сразу. Оставьте её на неделю: из неё иногда удаётся достать документы, введённые после копии.
Почему обновление падает и как не повторить сбой
Причины повторяются. Проверьте их перед следующей попыткой.
- ⚡ Нехватка места. Реструктуризация требует запаса. Для крупной базы освободите диск заранее.
- 👥 Кто-то остался в базе. Обновление структуры требует монопольного доступа.
- 🧩 Доработки конфигурации. Изменённые объекты дают конфликты при слиянии. Смотрите окно сравнения и решайте по каждому объекту.
- 🔌 Нестабильная сеть. Обновление файловой базы по общей папке рвётся. Выполняйте его на машине, где лежит база.
- 📦 Версия платформы. Релиз конфигурации требует минимальную версию платформы. Сравнивайте по номеру: нужна платформа с номером не ниже указанного в описании релиза.
- 🛡️ Антивирус. Он блокирует файлы базы или временные файлы обновления. Добавьте каталоги в исключения.
Перед каждым обновлением:
Обновляйте сначала копию базы. Если на копии всё прошло, повторяйте на рабочей. Это занимает лишний час и полностью исключает риск потерять рабочую базу.
Частые вопросы
Можно ли откатить обновление, если копии нет?
.cf, но данные это не откатит. Полный откат без копии невозможен.