Откат исправления в 1С 8.3: удаляем расширение-патч и чистим следы

· 9 мин

Содержание

Чтобы удалить патч 1С через конфигуратор, откройте Конфигурация → Расширения конфигурации, выделите расширение с назначением «Исправление» и нажмите «Удалить». После этого перезапустите сеансы пользователей: изменения подхватятся при новом входе.

Частое заблуждение — что патч «вшит» в типовую конфигурацию и убрать его можно только загрузкой резервной копии. В 1С 8.3 на современных релизах это не так: исправления от фирмы-разработчика ставятся отдельным расширением и снимаются за минуту, не трогая основную конфигурацию и данные. Сложности начинаются, только если патч когда-то вносили руками в саму конфигурацию — этот случай разобран ниже отдельно.

Как устроен патч в 1С 8.3 и что именно мы удаляем

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

Что отличает патч от обычного расширения:

  • 🔧 Назначение в свойствах расширения — «Исправление». У доработок под заказ обычно «Дополнение» или «Адаптация».
  • 🏷️ Имя — техническое, у исправлений от разработчика типовой конфигурации оно обычно начинается с EF_ и содержит номер.
  • 🎯 Привязка к релизу. Патч рассчитан на конкретные версии конфигурации. При обновлении на релиз, где ошибка уже исправлена, программа удаляет его сама.
  • 📦 Минимум объектов. Внутри — один-два заимствованных модуля с перехватом процедуры. Своих данных патч, как правило, не хранит.

Поэтому удаление патча — это удаление расширения. Основная конфигурация, конфигурация поставщика и данные базы не меняются.

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

Как ставили патчГде он виденКак убрать
Автоматически через интернет-поддержку или из файла .cfeСписок расширений, назначение «Исправление»Удалить расширение
Вручную как расширение в конфигуратореСписок расширенийУдалить расширение
Внесли код прямо в основную конфигурациюТолько при сравнении с конфигурацией поставщикаВернуть объекты из типового .cf или загрузить копию

Подготовка: копия базы и проверка, что виноват патч

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

  1. Зайдите в конфигуратор под пользователем с полными правами.
  2. Выгрузите базу: Администрирование → Выгрузить информационную базу, сохраните файл .dt. Для этого все пользователи должны выйти из базы.
  3. Если под рукой нет исходного файла патча, сохраните его: в окне расширений выделите патч и выберите Конфигурация → Сохранить конфигурацию в файл, пока открыто именно это расширение. Получится .cfe, который пригодится для повторной установки.

Затем убедитесь, что проблему действительно создаёт исправление:

  • 🔍 Сверьте время: ошибка появилась сразу после установки патча или обновления?
  • 🧪 Временно отключите расширение (см. следующий раздел) и повторите действие, на котором была ошибка.
  • 📄 Посмотрите, какие модули заимствует патч: откройте его дерево в конфигураторе. Если исправлен модуль документа «Реализация», а ошибка в зарплатном отчёте, связь сомнительна.
Что произошло после установки исправления?

Отключить вместо удалить: проверка без потери патча

Прежде чем удалять патч 1С окончательно, его можно просто выключить. В конфигураторе:

  1. Откройте Конфигурация → Расширения конфигурации.
  2. Найдите строку патча и снимите флажок «Активно».
  3. Перезапустите сеанс 1С:Предприятия и проверьте результат.

Неактивное расширение остаётся в базе, но не применяется. Если после отключения ничего не изменилось — включите флажок обратно: дело не в патче.

Тот же список доступен и без конфигуратора. В режиме 1С:Предприятия откройте Все функции → Стандартные → Управление расширениями конфигурации. Если пункта «Все функции» нет в главном меню, включите его в параметрах: Сервис и настройки → Параметры → Отображать команду «Все функции».

В типовых конфигурациях на БСП есть и пользовательский путь: Администрирование → Обслуживание → Обновление программы, там ссылка на установленные исправления. Из этого списка патч тоже можно удалить, а программа заодно запишет событие в журнал регистрации.

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

Удаление патча 1С через конфигуратор: пошаговый порядок

Основной способ — тот, ради которого чаще всего открывают конфигуратор.

Шаг 1. Откройте список расширений

Запустите базу в режиме «Конфигуратор». В главном меню выберите Конфигурация → Расширения конфигурации. Откроется окно со всеми расширениями базы.

Если пункт неактивен, проверьте права: работать с расширениями может пользователь с ролью «Администратор» или «Полные права».

Шаг 2. Найдите именно исправление

В списке бывают десятки строк: печатные формы, интеграции, доработки программиста. Отличить патч помогут:

  • имя вида EF_… и номер исправления;
  • синоним со словами «Исправление» или описанием ошибки;
  • свойство «Назначение» = «Исправление» — откройте расширение двойным щелчком, затем палитру свойств корня дерева.

Не удаляйте расширения с назначением «Дополнение» или «Адаптация», не выяснив, чьи они. В них может лежать доработка, на которой держится учёт, и собственные данные — справочники, реквизиты, регистры.

Шаг 3. Удалите расширение

  1. Закройте окно дерева этого расширения, если оно открыто.
  2. В списке расширений выделите строку патча.
  3. Нажмите кнопку «Удалить» в командной панели окна (или клавишу Delete) и подтвердите.

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

Шаг 4. Переподключите пользователей

Сеансы, открытые до удаления, продолжают работать со старым набором расширений. Попросите пользователей выйти и зайти заново. В клиент-серверной базе можно завершить «зависшие» сеансы через консоль кластера, но сначала предупредите людей: несохранённые документы будут потеряны.

Если в списке расширений есть ещё патчи с одинаковым номером ошибки, но для разных версий, удаляйте только тот, что относится к текущему релизу. Номер релиза конфигурации смотрите в Справка → О программе.

Удаление расширения-исправления из командной строки

Когда базу не удаётся открыть интерактивно или нужно обработать десяток баз, патч удаляют в пакетном режиме конфигуратора. Параметр /DeleteCfg с ключом -Extension удаляет расширение по имени.

Пример для файловой базы:

"C:\Program Files\1cv8\8.3.24.1342\bin\1cv8.exe" DESIGNER /F "D:\Bases\Buh" /N "Администратор" /P "пароль" /DeleteCfg -Extension EF_00_00123456 /Out "D:\Logs\delete_patch.log"

Для клиент-серверной базы вместо /F укажите /S "сервер\имябазы".

Что подставить:

  • путь к 1cv8.exe — для своей версии платформы;
  • имя пользователя и пароль администратора базы;
  • точное имя расширения (не синоним) — его видно в списке расширений.

Ключ -AllExtensions вместо -Extension удалит все расширения базы сразу. Этот вариант не подходит, если в базе есть доработки в расширениях — они уйдут вместе с патчами.

После выполнения откройте лог из /Out. Пустой файл или отсутствие ошибок — признак, что удаление прошло. Полный список параметров пакетного режима есть во встроенной справке платформы, раздел о параметрах командной строки.

Очистка кэша после удаления патча

Иногда после удаления 1С ведёт себя так, будто патч на месте: та же ошибка, те же формы. Обычно виноват кэш метаданных на клиенте.

Шаг 1 — клиентский кэш. Он безопасен, затрагивает только текущий компьютер.

  1. Закройте все окна 1С на этом компьютере.
  2. Запустите базу с параметром /ClearCache: в окне запуска выберите базу, «Изменить», на последней странице в поле дополнительных параметров впишите /ClearCache.
  3. Либо удалите вручную папки с GUID-именами в %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8. Папку tmplts с шаблонами конфигураций не трогайте.

Шаг 2 — серверный кэш. Нужен редко, только в клиент-серверном варианте, если очистка на клиентах не помогла.

Для очистки серверного кэша останавливают службу агента сервера 1С. Все сеансы во всех базах этого сервера оборвутся. Делайте это вне рабочего времени и после предупреждения пользователей.

Порядок: остановить службу агента сервера, в каталоге srvinfo\reg_1541 удалить папки, имя которых начинается с snccntx, запустить службу. Файлы реестра кластера и папки самих баз не удалять.

Служебные таблицы. Расширения хранятся в служебных таблицах информационной базы. Удалять оттуда записи средствами СУБД нельзя: платформа потеряет согласованность конфигурации, база может перестать открываться. Если после удаления патча есть сомнения в целостности, запустите Администрирование → Тестирование и исправление в конфигураторе с проверкой логической целостности. Режим требует монопольного доступа, поэтому все пользователи должны выйти.

Возврат к типовой конфигурации, если патч вносили в код

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

СпособКогда подходитРиски
Загрузить .dt, сделанный до установки патчаПатч ставили недавно, данные после этого не вводилиПотеря всех данных, введённых после копии
Сравнить с типовым .cf и вернуть изменённые объектыЕсть другие доработки, которые нужно сохранитьНужен навык работы с объединением конфигураций
Дождаться релиза и обновитьсяОшибка исправлена в следующей версииИзменённые объекты придётся снова сравнивать при обновлении

Порядок для второго способа:

  1. Найдите файл типовой конфигурации текущего релиза. Если шаблоны установлены, он лежит в %APPDATA%\1C\1cv8\tmplts в папке нужной конфигурации и версии.
  2. В конфигураторе выберите Конфигурация → Сравнить, объединить с конфигурацией из файла и укажите этот .cf.
  3. В дереве сравнения отметьте только объекты, которые менял патч. Для них установите режим объединения «Взять из файла».
  4. Выполните объединение, затем Конфигурация → Обновить конфигурацию базы данных (F7).

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

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

Частые ошибки при удалении патча

  • ❌ Удалили не то расширение. Ориентировались на синоним, а это была доработка. Проверяйте свойство «Назначение» и имя.
  • ❌ Патч вернулся через день. Включена автоматическая установка исправлений. Выключите её или обновитесь на релиз, где ошибка закрыта иначе.
  • ❌ Удалили, а ошибка осталась у части пользователей. Они не перезаходили в базу или у них старый кэш клиента.
  • ❌ Удалили все расширения ключом -AllExtensions. Восстанавливать из копии .dt или переустанавливать каждое расширение из файлов .cfe.
  • ❌ Пытались «откатить» обновление конфигурации, удаляя патчи. Удаление исправлений не возвращает предыдущий релиз. Вернуться на старую версию можно только из резервной копии.

Частые вопросы

Нужен ли монопольный режим, чтобы удалить патч?
Для удаления расширения из списка — нет. Монопольный доступ понадобится для выгрузки .dt, тестирования и исправления базы и обновления конфигурации БД.
Пропадут ли данные после удаления исправления?
Патчи от разработчика типовой конфигурации своих данных обычно не хранят, поэтому данные базы остаются. Доработки-расширения с собственными реквизитами и справочниками — другое дело: их данные удаляются вместе с ними.
Как вернуть удалённый патч?
Установите его снова из файла .cfe: в списке расширений конфигуратора кнопка «Добавить» или загрузка из файла. В БСП-конфигурациях — через форму установленных исправлений.
Можно ли удалить патч в базе 1С:Фреш или в облаке?
Нет, доступа к конфигуратору там нет. Исправлениями управляет провайдер сервиса — пишите в его поддержку.
Почему патч не удаляется: кнопка неактивна?
Обычно не хватает прав или расширение открыто в соседнем окне конфигуратора. Закройте его дерево и войдите под пользователем с полными правами.