Неудачное исправление или релиз: возвращаем базу 1С в рабочее состояние
Содержание
Патч в 1С 8.3 — это расширение конфигурации
с назначением «Исправление» и именем на EF_. Удалить его через Конфигуратор можно так: Конфигурация → Расширения конфигурации, выделить строку с патчем и нажать «Удалить». А вот обновление релиза «удалить» нельзя: его откатывают загрузкой резервной копии .dt, сделанной до обновления.
Обычно за эту инструкцию берутся, когда после установки исправлений или нового релиза база перестала открываться, документы не проводятся или поехала печатная форма. Ниже — порядок действий от самого щадящего способа к самому радикальному.
Подготовка перед удалением исправлений и откатом
Сначала определите, что именно сломало базу. От этого зависит способ отката.
- 🧩 Патч — маленькое исправление ошибки конкретного релиза. Ставится поверх конфигурации как расширение и не меняет основную конфигурацию.
- 📦 Обновление конфигурации — новый релиз (например, переход БП 3.0 с одного релиза на следующий). Меняет структуру базы и запускает обработчики обновления данных.
- ⚙️ Обновление платформы — новая версия 1С:Предприятия 8.3 на компьютере или сервере. С конфигурацией и патчами не связано.
Посмотреть, что у вас стоит, можно так:
- Версию конфигурации и платформы — в окне «О программе» (значок
?или меню с тремя полосками в правом верхнем углу). - Список патчей в режиме предприятия —
Администрирование → Интернет-поддержка и сервисы → Обновление версии программы, ссылка на установленные исправления. - Все расширения, включая патчи, в Конфигураторе —
Конфигурация → Расширения конфигурации.
Перед любыми действиями выполните три подготовительных шага:
- Выгрузите текущую базу. Конфигуратор →
Администрирование → Выгрузить информационную базу. Даже сломанное состояние лучше сохранить: если откат пойдёт не так, будет куда вернуться. - Выгоните пользователей. Для удаления расширения и загрузки
.dtв базе не должно быть других сеансов. Предупредите людей заранее: незаписанные документы пропадут. - Отключите автоустановку исправлений. Если в настройках интернет-поддержки включена автоматическая загрузка и установка патчей
, программа может поставить удалённый патч обратно при следующей проверке. Флажок находится на той же странице
Обновление версии программы.
Не начинайте откат без свежей выгрузки .dt. Загрузка старой копии и удаление расширений необратимы: вернуть промежуточное состояние базы будет не из чего.
Удаление патча через Конфигуратор
Это основной способ и самый надёжный: Конфигуратор показывает все расширения без фильтров, даже если база в пользовательском режиме не запускается.
Пошагово
- Запустите 1С, выберите базу и нажмите «Конфигуратор».
- Откройте
Конфигурация → Расширения конфигурации. - В списке найдите строки с именами вида
EF_.... Это и есть исправления. У каждого видны версия и назначение. - Выделите нужный патч и нажмите кнопку удаления на панели окна (красный крестик).
- Подтвердите удаление.
- Закройте Конфигуратор и запустите базу в режиме 1С:Предприятие.
Если патчей несколько и непонятно, какой виноват, не удаляйте все подряд. Сначала сопоставьте дату установки каждого патча с днём, когда появилась ошибка, и начните проверку с самого свежего. Снимите флажок «Активно» у подозрительного расширения: оно останется в базе, но перестанет подключаться при запуске. Проверьте работу. Помогло — удаляйте, не помогло — верните флажок и переходите к следующему.
Отключение через «Активно» — самый быстрый способ проверить гипотезу. Повторно скачивать патч не придётся.
Удаление в пакетном режиме
Если Конфигуратор не открывается в интерфейсе (например, падает на старте), расширение можно удалить из командной строки. Закройте все сеансы базы и выполните:
"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" DESIGNER /F "D:\Bases\Buh" /N "Администратор" /P "пароль" /DeleteCfg -Extension EF_00_00123456 /Out "D:\log.txt"
Для серверной базы вместо /F укажите /S "сервер\имя_базы". Имя расширения скопируйте из списка в Конфигураторе: оно должно совпадать посимвольно. Ключ -AllExtensions вместо -Extension удалит все расширения базы — включая ваши собственные доработки, поэтому пользоваться им стоит только осознанно.
Удаление расширения стирает и его данные. У патчей собственных данных обычно нет. Но если вы удаляете не патч, а доработку (своё расширение с реквизитами), значения этих реквизитов пропадут.
Как убрать исправление из режима предприятия
Если база запускается, патч удобнее удалить без Конфигуратора. Это доступно пользователю с полными правами.
- Откройте
Администрирование → Интернет-поддержка и сервисы → Обновление версии программы. - Перейдите по ссылке со списком установленных исправлений.
- Выделите патч и выберите удаление в командной панели списка.
- Перезапустите программу, чтобы изменения применились у всех пользователей.
Чем это лучше Конфигуратора: программа сама показывает, к какому релизу относится исправление и какую ошибку оно закрывает. Бухгалтеру проще понять, что удаляет.
Запуск с параметром очистки кэша
Иногда патч уже удалён, а программа ведёт себя так, будто он на месте. Причина — закэшированные метаданные на компьютере пользователя. Запустите базу с параметром /ClearCache:
- В окне запуска выделите базу и нажмите «Изменить».
- Пройдите до последней страницы мастера.
- В поле «Дополнительные параметры запуска» впишите
/ClearCache. - Нажмите «Готово» и войдите в базу.
После успешного входа параметр уберите, иначе кэш будет сбрасываться при каждом запуске и вход станет заметно дольше.
Откат обновления конфигурации из резервной копии
Новый релиз меняет не только программный код. При первом запуске после обновления выполняются обработчики, которые переносят и пересчитывают данные. Поэтому «загрузить старый .cf» мало: данные уже приведены к новой версии.
Если обновление ещё не применено к базе
Вы загрузили файл обновления в Конфигураторе, но команду «Обновить конфигурацию базы данных» (F7) не выполняли или отказались от неё. Тогда база ещё на старой версии.
- В Конфигураторе откройте
Конфигурация → Конфигурация базы данных → Вернуться к конфигурации БД. - Подтвердите действие.
Основная конфигурация станет такой же, как конфигурация базы данных. Данные не затрагиваются.
Если обновление уже прошло
Единственный корректный путь — загрузить выгрузку .dt, сделанную до обновления:
- Выгоните всех пользователей из базы.
- Сохраните текущее состояние:
Администрирование → Выгрузить информационную базу(это та самая подстраховка из подготовки). - Выполните
Администрирование → Загрузить информационную базуи выберите старый.dt. - Дождитесь окончания загрузки и запустите режим предприятия.
Где искать старую копию:
- 💾 Если обновление делали встроенным помощником, обычно он предлагает создать резервную копию — проверьте папку, указанную в его настройках.
- 🗂 Регламентная резервная копия, которую настраивали в программе или на сервере.
- 🛢 Для клиент-серверной базы — бэкап СУБД (MS SQL или PostgreSQL), восстанавливает администратор сервера.
Всё, что вводили после обновления, пропадёт. Перед загрузкой копии составьте список документов за этот период. Иногда проще дождаться патча от фирмы 1С, чем перебивать неделю работы.
Сравнение способов отката
| Способ | Когда подходит | Что теряется |
|---|---|---|
| Флажок «Активно» у патча | Подозрение на один патч | Ничего, обратимо |
| Удаление патча | Патч точно виноват | Ничего, патч можно поставить снова |
| «Вернуться к конфигурации БД» | Релиз загружен, но не применён | Загруженное обновление |
Загрузка .dt | Релиз применён и база сломана | Данные после даты копии |
Загрузка .cf без данных | Не подходит для отката релиза | Риск рассогласования данных |
Ручное удаление объектов обновлений в Конфигураторе
Иногда советуют «просто удалить новые объекты» из конфигурации. Для типовой конфигурации на поддержке это плохая идея.
- 🔒 Типовая конфигурация на полной поддержке не даёт редактировать объекты. Чтобы что-то удалить, придётся включить возможность изменения, а это усложнит все будущие обновления.
- 🔗 Новые объекты релиза связаны с другими: общими модулями, подписками на события, обработчиками обновления. Удалив один, получите ошибки при проверке конфигурации или в работе.
- 🧮 Обработчики обновления уже изменили данные. Удаление объекта не вернёт их назад.
Ручное удаление уместно только в ваших собственных доработках. Например, программист внёс правку в конфигурацию вместе с обновлением, и она конфликтует. Тогда правку находят через сравнение конфигураций: Конфигурация → Сравнить конфигурации, выбирают основную конфигурацию и конфигурацию поставщика или файл .cf до изменений. Отличия видны по объектам, и их возвращают по одному.
После любых ручных правок выполните Конфигурация → Проверка конфигурации и только затем «Обновить конфигурацию базы данных».
Свои изменения выгоднее держать в расширениях, а не в основной конфигурации. Тогда неудачную доработку снимают так же, как патч, — одной кнопкой.
Чистка кэша и временных файлов после отката
После удаления патча или загрузки старой копии у пользователей может остаться кэш метаданных от новой версии. Симптомы: старые формы, странные ошибки при открытии документов, долгий первый запуск.
Кэш на компьютере пользователя
- Закройте все окна 1С на этом компьютере.
- Откройте папки
%APPDATA%\1C\1cv8и%LOCALAPPDATA%\1C\1cv8(вставьте путь в адресную строку проводника). - Удалите внутри папки с длинными именами вида
0a1b2c3d-.... Это кэш баз. - Файлы и папки с понятными именами (например,
1cv8strt.pfl,1cestart) не трогайте — там настройки и список баз.
Тот же результат даёт разовый запуск с параметром /ClearCache, описанный выше. Его удобнее разослать пользователям, чем объяснять, какие папки удалять.
Сеансовые данные на сервере 1С
Для клиент-серверной базы иногда нужно очистить и серверный кэш. Делает это администратор: останавливает службу «Агент сервера 1С:Предприятия 8.3», удаляет в каталоге кластера (обычно srvinfo\reg_1541) папки snccntx... и запускает службу снова.
Остановка службы обрывает сеансы всех пользователей всех баз на этом сервере. Делайте это вне рабочего времени или после предупреждения.
Типичные ошибки при откате
- ❌ Удалили патч, а он вернулся. Включена автоматическая установка исправлений. Снимите флажок в настройках обновления и удалите патч повторно.
- ❌ Загрузили старый .cf поверх обновлённой базы. Структура откатилась, а данные остались в новом формате. Итог — ошибки обработчиков и некорректные остатки. Выход — загрузка
.dtдо обновления. - ❌ Не совпадает версия платформы. Старая выгрузка
.dtзагружается в платформу с номером не ниже той, где её делали. Если релиз требовал новую платформу, а вы откатили и её, база может не открыться. - ❌ Удалили все расширения ключом
-AllExtensions. Вместе с патчами пропали собственные доработки: печатные формы, реквизиты, отчёты. Восстанавливаются только из выгрузки. - ❌ Кэш остался у одного пользователя. У всех всё работает, у одного — старая ошибка. Очистите кэш именно на его компьютере.
Частые вопросы
Опасно ли удалять патч?
EF_. Оно не хранит данных, и после удаления конфигурация работает как до его установки. Вернётся только ошибка, которую патч закрывал.