Исправление для типовой конфигурации: загрузка .cfe, проверка и откат
Содержание
Патч в 1С 8.3 — это расширение конфигурации
с назначением «Исправление», файл с расширением .cfe. Чтобы установить его через конфигуратор, откройте Конфигурация → Расширения конфигурации, загрузите файл .cfe в новое расширение и выполните Обновить конфигурацию базы данных для этого расширения. Основная конфигурация при этом не меняется и с поддержки не снимается.
Типичная ситуация: после очередного обновления БП 3.0 перестал проводиться авансовый отчёт или «поехала» печатная форма. Фирма 1С выпускает исправление раньше следующего релиза, партнёр присылает архив с патчем, а интернет-поддержка в базе не подключена. Тогда патч ставят вручную — через конфигуратор. Порядок одинаков для БП, ЗУП, УТ и других типовых решений на платформе 8.3.
Что такое патч в 1С и когда без него не обойтись
Исправление закрывает конкретную ошибку конкретного релиза. Технически это маленькое расширение: оно перехватывает один или несколько методов типовой конфигурации и подменяет их исправленным кодом. Когда выходит следующий релиз, в нём ошибка уже исправлена в самой конфигурации, а патч становится не нужен.
Не путайте исправление с обновлением:
| Что | Файл | Что меняет | Как ставится |
|---|---|---|---|
| Исправление (патч) | .cfe, приходит в .zip | Отдельные процедуры через расширение | Через список расширений |
| Обновление релиза | .cfu | Всю конфигурацию | Конфигурация → Поддержка → Обновить конфигурацию |
| Полный дистрибутив | .cf | Всю конфигурацию | Загрузка или сравнение/объединение |
Когда патч ставить:
- 🐞 ошибка мешает работать прямо сейчас, а новый релиз ещё не вышел;
- 📄 в описании исправления указан ваш точный номер релиза;
- 🛠️ партнёр или линия консультаций 1С рекомендовали конкретный патч по вашему обращению.
Когда не ставить: если вы и так собираетесь обновиться на следующий релиз, где ошибка уже исправлена. И если патч выпущен для другого номера релиза — даже соседнего.
В архиве с патчем обычно лежит файл .cfe и описание. Распакуйте архив: конфигуратор загружает именно .cfe, а не .zip. Архив .zip целиком принимает только форма установки исправлений в пользовательском режиме.
Подготовка базы к установке исправления
На подготовку уходит 5–10 минут. Пропускать её не стоит: патч ставится в рабочую базу, и проверить его заранее можно только на копии.
Сверьте релиз
В конфигураторе откройте Справка → О программе. В строке конфигурации указан номер релиза, например 3.0.xxx.yy. Тот же номер должен стоять в описании патча. Не совпадает — патч не ставьте.
Сделайте резервную копию
Администрирование → Выгрузить информационную базу сохраняет файл .dt. Для файловой базы можно просто скопировать каталог с файлом 1Cv8.1CD при закрытой базе. Без свежей копии патч в рабочую базу не ставьте.
Проверьте права и пользователей
- 🔑 у вашей учётной записи должна быть роль полных прав (в типовых — «Администратор системы»);
- 👥 узнайте, кто сейчас в базе: в конфигураторе
Администрирование → Активные пользователи; - 🕐 выберите время, когда пользователи могут перезайти: исправление начинает работать у сеанса только после его перезапуска.
Посмотрите, какие расширения уже есть
Откройте Конфигурация → Расширения конфигурации и запишите список. Если там уже есть патч с тем же именем — это повторная установка или более новая версия того же исправления. Если есть самописные расширения, которые дорабатывают тот же объект, возможен конфликт (подробнее — в разделе про ошибки).
Установка патча через конфигуратор по шагам
Действия одинаковы для файловой и серверной базы.
Шаг 1. Откройте список расширений
Запустите базу в режиме «Конфигуратор» и выберите Конфигурация → Расширения конфигурации. Откроется окно со списком расширений и колонками свойств.
Шаг 2. Создайте строку под исправление
Нажмите Добавить. В списке появится новое пустое расширение с именем вида Расширение1. Имя можно не трогать: при загрузке файла оно заменится на имя из патча.
Шаг 3. Загрузите файл .cfe
Выделите новую строку и вызовите для неё команду Загрузить конфигурацию из файла… — она есть в меню действий окна расширений и в контекстном меню строки. Укажите распакованный .cfe. Конфигуратор спросит, обновить ли конфигурацию базы данных, — можно согласиться сразу.
Шаг 4. Проверьте свойства расширения
В строке патча проверьте флажки:
| Свойство | Значение для патча | Почему |
|---|---|---|
| Активно | включено | иначе исправление не применяется |
| Безопасный режим | выключено | исправлению нужен доступ к коду, который безопасный режим запрещает |
| Защита от опасных действий | как в описании патча | обычно оставляют по умолчанию |
Если вы поменяли флажки, конфигуратор снова попросит обновить конфигурацию базы данных.
Шаг 5. Обновите конфигурацию базы данных расширения
Если на шаге 3 вы отказались, откройте дерево расширения (двойной щелчок по строке) и выполните Конфигурация → Обновить конфигурацию базы данных или нажмите F7. Обновляется именно расширение — основная конфигурация не затрагивается.
Типичный патч меняет только модули, без новых реквизитов и таблиц. Такое обновление проходит быстро. Если пользователи в базе, конфигуратор может предложить динамическое обновление — оно сработает, но новые модули сеансы получат только после перезапуска.
Шаг 6. Перезапустите сеансы
Попросите пользователей выйти и зайти заново. Сеанс, открытый до установки, работает со старым кодом и ошибку не «увидит» исправленной.
Не редактируйте модули внутри патча. Исправление поставляется закрытым набором правок, и любая ручная правка превращает его в самописное расширение: при следующем обновлении релиза механизм автоудаления устаревших патчей может отработать неправильно.
Почему патч не встаёт: ошибки и что с ними делать
Отдельно о доработанных конфигурациях. Расширение-исправление цепляется к методам по имени. Если вы правили тот же модуль, что исправляет патч, результат непредсказуем: патч может применяться, но частично перекрывать вашу доработку. Такие патчи проверяйте на копии базы с прогоном того сценария, который они чинят.
Как убедиться, что исправление работает
Проверка в три приёма:
- В конфигураторе. В окне
Расширения конфигурациипатч есть в списке, флажок «Активно» включён, предупреждений рядом со строкой нет. - В пользовательском режиме. В типовых конфигурациях на БСП есть форма установленных исправлений. Её открывают из раздела
Администрирование, через настройки обновления программы. Патч должен быть в списке со статусом установленного. - По сценарию. Повторите ровно то действие, которое давало ошибку: проведите тот же документ, сформируйте тот же отчёт. Это главная проверка.
Если что-то пошло не так, загляните в журнал регистрации: Администрирование → Журнал регистрации в конфигураторе. Отфильтруйте события по времени установки — там будут записи об изменении расширений и ошибки применения.
Запишите имя патча и дату установки в любой общий файл или заметку. Через полгода, когда кто-то спросит «а почему тут расширение», ответ найдётся за минуту.
Установка патча в клиент-серверной базе
Исправление хранится в самой информационной базе, в SQL. Ставить его на каждый компьютер не нужно: достаточно один раз загрузить в конфигураторе с любого клиента, у которого есть доступ к серверу 1С.
Отличия серверного варианта:
- 🖥️ Резервная копия. Кроме
.dtможно сделать бэкап средствами СУБД. Для больших баз это быстрее и надёжнее. - 🔒 Блокировка сеансов. Если нужно, чтобы никто не зашёл во время установки, включите блокировку начала сеансов в консоли кластера (свойства информационной базы) и задайте код разрешения для себя.
- 🔄 Завершение сеансов. Перед тем как принудительно завершать сеансы в консоли кластера, предупредите пользователей: незаписанные документы пропадут. Делайте это в обед или после рабочего дня.
- 🧩 Кэш. После установки у отдельных пользователей иногда остаётся старое поведение. Обычно помогает перезапуск клиента; запуск с ключом
/ClearCache— следующий шаг.
Для распределённой базы (РИБ) патч ставят в центральном узле, если в описании не сказано иное. Расширения передаются в подчинённые узлы при обмене, когда это разрешено в их свойствах. Проверьте после ближайшей синхронизации, что патч появился в узлах.
Как удалить патч и вернуть прежнее поведение
Откатывать исправление приходится в двух случаях: патч сломал другой сценарий или вы обновились на релиз, где ошибка уже исправлена.
Временно отключить
В Конфигурация → Расширения конфигурации снимите флажок «Активно» и обновите конфигурацию базы данных. Патч останется в базе, но работать не будет. Удобно для проверки: включили — выключили — сравнили.
Удалить совсем
Выделите строку патча и нажмите Удалить. Подтвердите удаление и обновите конфигурацию базы данных. Типичный патч не хранит своих данных, поэтому удаление ничего в учёте не теряет.
Откатить базу целиком
Если после установки повреждены данные или вы не уверены, что именно изменилось, загрузите .dt через Администрирование → Загрузить информационную базу. Загрузка .dt полностью заменяет базу: всё, что пользователи ввели после выгрузки, пропадёт.
| Способ | Когда | Риски |
|---|---|---|
| Снять «Активно» | Проверить, виноват ли патч | Нет |
| Удалить расширение | Патч больше не нужен | Нет, если патч без своих данных |
| Загрузить .dt | Повреждены данные | Потеря всего, что ввели после копии |
При обновлении на новый релиз через механизм обновления типовой конфигурации неактуальные патчи удаляются автоматически. Если обновляете вручную через конфигуратор, проверьте список расширений после обновления и удалите исправления для старого релиза сами.
Автоматическая и пакетная установка исправлений
Ручная установка удобна для одной базы. Когда баз десять, лучше автоматизировать.
Через интернет-поддержку
В типовых конфигурациях с подключённой интернет-поддержкой программа сама проверяет наличие исправлений для вашего релиза и может загружать и устанавливать их без конфигуратора. Настройка находится в разделе Администрирование → Интернет-поддержка и сервисы, в блоке обновления программы. В той же форме исправление можно добавить из файла — подойдёт архив .zip целиком.
Через пакетный режим конфигуратора
Для серии баз пригодится командная строка. Пример для файловой базы:
"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" DESIGNER ^
/F "D:\Bases\Buh" /N "Администратор" /P "пароль" ^
/LoadCfg "D:\Patches\patch.cfe" -Extension "ИмяПатча" ^
/UpdateDBCfg -Extension "ИмяПатча" ^
/Out "D:\Patches\log.txt" /DisableStartupDialogs
Для серверной базы вместо /F укажите /S "сервер\имя_базы". Имя расширения в -Extension должно совпадать с именем патча — его видно в списке расширений после первой ручной установки или в описании исправления. Результат смотрите в файле, указанном в /Out.
Пароль в bat-файле открытым текстом — риск. Храните такие скрипты в каталоге с ограниченным доступом и удаляйте пароль после прогона.