Установка исправлений (патчей) в 1С 8.3: из программы, через Конфигуратор и хранилище
Содержание
Патч в 1С 8.3 — это расширение конфигурации
с назначением «Исправление», файл .cfe. Добавить его проще всего прямо в программе: Администрирование → Обслуживание → Обновление версии программы → Установленные исправления (патчи), затем установка из файла. Обновлять всю конфигурацию и снимать её с поддержки для этого не нужно.
Если у вас нет файла, а есть только сообщение об ошибке, начните с интернет-поддержки: программа сама найдёт исправления для своего релиза. Файл прислала линия консультации или франчайзи — ставьте его из формы списка исправлений или через Конфигуратор. В базах с хранилищем порядок другой, о нём отдельный раздел.
Что такое патч в 1С и чем он отличается от обновления
Фирма 1С и разработчики типовых решений выпускают исправления между релизами. Ошибка найдена в релизе 3.0.х, следующий релиз выйдет через месяц, а считать зарплату нужно сегодня. Патч закрывает конкретную ошибку в конкретном релизе.
Технически это расширение. Оно не меняет основную конфигурацию, а «перехватывает» нужные процедуры и модули поверх неё. Механизм расширений с назначением «Исправление» появился в платформе 8.3.12, поддержку патчей в типовых конфигурациях даёт Библиотека стандартных подсистем (БСП).
| Патч (исправление) | Обновление конфигурации | |
|---|---|---|
| Формат файла | .cfe (иногда в архиве .zip) | .cfu, .cf |
| Что меняет | Отдельные процедуры поверх конфигурации | Саму конфигурацию |
| Снятие с поддержки | Не нужно | Не нужно для типовой |
| К какому релизу | Строго к одному или нескольким указанным | Переход между релизами |
| Удаление | Отключить или удалить расширение | Только откатом из копии |
💡 Имена патчей от 1С обычно начинаются с EF_ и содержат номер ошибки, например EF_00_00123456. По номеру удобно искать описание проблемы в списке известных ошибок.
Подготовка: какой у вас релиз и подходит ли к нему патч
Патч к чужому релизу не применится. Поэтому сначала сверьте версию.
- Откройте программу и нажмите на значок меню (три полоски в верхнем левом углу) →
Справка → О программе. - Запишите две строки: версию конфигурации (например,
3.0.150.25) и версию платформы (например,8.3.25.1374). - В описании патча найдите список релизов, к которым он применим. Совпадать должна полная версия, вплоть до последней цифры.
Что ещё проверить до установки:
- 🔍 Режим совместимости. Расширения с назначением «Исправление» требуют платформу не ниже 8.3.12. Для актуальных релизов типовых это условие выполняется всегда, но в старых самописных базах встречается режим совместимости 8.3.10 и ниже.
- 👤 Права. Устанавливать исправления может пользователь с полными правами (роль «Администратор системы» или «Полные права» — зависит от конфигурации).
- 🧩 Чужие расширения. Если в базе есть доработки в расширениях, которые меняют те же объекты, что и патч, возможен конфликт. Список расширений смотрите в
Администрирование → Печатные формы, отчеты и обработки → Расширения. - 📦 Источник файла. Официальные патчи берите на портале поддержки пользователей 1С (раздел исправлений к вашему релизу), у линии консультации или у своего франчайзи. Патч с форума или из чата — это чужой код, который выполнится с правами пользователя базы.
- 💾 Резервная копия. Патч легко отключить, но если база доработана, сделайте выгрузку
.dtдо установки.
Способ 1. Автоматическая загрузка патчей через интернет-поддержку
Если программа подключена к Интернет-поддержке пользователей, официальные патчи можно получать без ручного скачивания. Программа сама проверит, какие исправления выпущены для вашего релиза, и поставит их.
Как включить
- Подключите интернет-поддержку:
Администрирование → Интернет-поддержка и сервисы → Подключить. Понадобятся логин и пароль от портала 1С, действует подписка ИТС. - Там же откройте настройку обновления версии программы.
- Включите загрузку и установку исправлений автоматически, задайте расписание.
Как поставить вручную, не дожидаясь расписания
- Откройте
Администрирование → Обслуживание → Обновление версии программы. - Запустите обновление. Если для текущего релиза есть исправления, программа предложит их установить отдельно от перехода на новый релиз.
- Дождитесь окончания и перезапустите сеанс.
💡 При последующем обновлении конфигурации на новый релиз программа сама удаляет патчи, которые к нему не относятся. Чистить список руками после обновления обычно не нужно.
Способ 2. Установка патча из файла в режиме «Предприятие»
Этот способ нужен, когда патч прислала поддержка, его скачали с портала вручную или база без доступа в интернет.
- Сохраните файл
.cfeна диск. Если пришёл архив, распакуйте. - Откройте
Администрирование → Обслуживание → Обновление версии программы. - Перейдите по ссылке Установленные исправления (патчи).
- В командной панели списка выберите установку исправления из файла и укажите
.cfe. - Программа проверит, подходит ли патч к релизу, и подключит его.
- Закройте программу у всех пользователей и откройте заново: новые сеансы стартуют уже с исправлением.
Работающие сеансы продолжают выполнять старый код до перезапуска. Если ошибка воспроизводится у бухгалтера, который не выходил из программы с утра, причина обычно в этом.
Если ссылки «Установленные исправления» нет
В самописных или сильно доработанных конфигурациях подсистемы патчей может не быть. Тогда расширение подключают стандартной обработкой платформы:
- Включите в настройках пользователя отображение команды
Все функции(меню →Сервис → Параметры). - Откройте
Все функции → Стандартные → Управление расширениями конфигурации. - Нажмите Добавить и выберите файл
.cfe. - Для патчей от 1С снимите флажки «Безопасный режим» и «Защита от опасных действий», если этого требует инструкция к патчу. Для патчей из неизвестных источников флажки не снимайте.
Способ 3. Как добавить патч через Конфигуратор
Конфигуратор удобен, когда нужно посмотреть содержимое исправления или поставить его сразу в несколько копий базы.
- Запустите базу в режиме
Конфигуратор. - Откройте меню
Конфигурация → Расширения конфигурации. - В окне расширений нажмите Добавить из файла (команда может быть в подменю
Конфигурацияэтого окна) и укажите.cfe. - Откройте свойства добавленного расширения и проверьте поле Назначение — должно стоять «Исправление».
- Нажмите
Обновить конфигурацию базы данных(F7) для расширения. Это отдельный шаг: загрузка файла сама по себе расширение в базу не применяет. - Перезапустите пользовательские сеансы.
Посмотреть, что именно исправляет патч, можно двойным щелчком по расширению: откроется его дерево объектов. Заимствованные модули с аннотациями &Вместо, &Перед, &После показывают, какие процедуры перехвачены.
Не редактируйте патч от 1С в Конфигураторе. Изменённый патч перестаёт быть официальным, и подсистема обновлений может его не опознать или удалить при следующем обновлении. Нужна своя доработка — делайте отдельное расширение.
Сравнение способов
| Способ | Когда подходит | Риски |
|---|---|---|
| Интернет-поддержка | Типовая конфигурация, есть ИТС и интернет | Почти нет; патч приходит проверенным |
| Из файла в «Предприятии» | Патч прислала поддержка, база без интернета | Ошибиться релизом — программа предупредит |
| Через Конфигуратор | Нужно изучить код, несколько копий базы | Забыть шаг «Обновить конфигурацию БД» |
| Через хранилище | Групповая разработка | Конфликт с захваченными объектами |
Как установить патч в базе с хранилищем конфигурации
В базах, где несколько разработчиков работают через хранилище, есть два варианта, и выбирают их по задаче.
Вариант А. Патч как расширение, отдельно от хранилища
Основная конфигурация хранится в хранилище, а патч ставится в каждую рабочую базу отдельно (способ 2 или 3). Хранилище при этом не трогают.
- ✅ Быстро, не мешает разработчикам.
- ❌ Патч нужно повторить в каждой копии: рабочей, тестовой, у каждого разработчика.
Вариант Б. Исправление переносится в основную конфигурацию
Подходит, если патч правит место, которое вы и так дорабатывали, или если исправление нужно зафиксировать в истории хранилища.
- Откройте патч в Конфигураторе и найдите перехваченные процедуры.
- В основной конфигурации захватите в хранилище соответствующие модули.
- Перенесите исправление вручную, сверив его с вашей доработкой.
- Поместите изменения в хранилище с комментарием, где указан номер ошибки из имени патча.
- Удалите расширение-патч из рабочих баз, чтобы исправление не выполнялось дважды.
Расширения тоже можно подключать к хранилищу — через Конфигурация → Хранилище конфигурации в окне конкретного расширения. Для официального патча это редко нужно, но удобно, если команда ведёт собственные исправления в виде расширений и хочет видеть их историю.
При следующем обновлении конфигурации из хранилища с новым релизом 1С проверьте, не вошло ли исправление в сам релиз. Если вошло, ручной перенос из варианта Б нужно убрать, иначе при сравнении-объединении получите лишние конфликты.
Как поставить один патч в десяток баз из командной строки
Когда баз много (филиалы, копии для разных юрлиц), ставить патч руками в каждую долго. Конфигуратор умеет загружать расширение в пакетном режиме. Нужны два ключа: загрузка файла расширения и обновление его в базе данных.
@echo off
set V8="C:\Program Files\1cv8\8.3.25.1374\bin\1cv8.exe"
set PATCH=D:\patches\EF_00_00123456.cfe
set EXT=EF_00_00123456
%V8% DESIGNER /S "srv1c\buh_filial1" /N "Администратор" /P "пароль" ^
/LoadCfg %PATCH% -Extension %EXT% ^
/UpdateDBCfg -Extension %EXT% ^
/Out D:\patches\log_filial1.txt /DisableStartupDialogs
Что здесь важно:
- 📌
/S— адрес базы на сервере в видесервер\имя_базы; для файловой базы вместо него/F "D:\Bases\Buh". - 📌 Имя после
-Extensionдолжно совпадать с именем расширения внутри файла. Его видно в Конфигураторе в окне расширений. - 📌
/Outпишет протокол. После прогона откройте файл: пустой или с сообщением об успешном обновлении — всё в порядке. - 📌 Пароль в bat-файле храните только на машине администратора и удаляйте файл после использования.
Для каждой базы копируйте строку запуска с другим /S и другим именем лога. Пользователи в базах могут продолжать работу, но исправление получат только после перезахода.
Как проверить, что патч применился, и где искать причину сбоя
После перезапуска сделайте три проверки:
- Список исправлений. В
Установленные исправления (патчи)патч должен быть в списке без пометки об ошибке. - Список расширений. В
Управление расширениями конфигурацииу патча стоит флажок «Активно». - Сама ошибка. Повторите действие, на котором программа падала. Это главная проверка.
Если ошибка проявлялась на конкретном документе, перепроведите именно его, а не создавайте новый для теста. Старый документ мог сохранить неверные движения, и только перепроведение покажет, исправлена ли логика.
Если что-то не так, смотрите журнал регистрации: Администрирование → Обслуживание → Журнал регистрации. Отберите события с уровнем «Ошибка» за время установки и время первого запуска после неё. Сообщения о неприменимом расширении, нехватке прав или конфликте имён появятся там с текстом, по которому видно, какой объект мешает.
Как убрать патч, если он навредил
Патч не трогает основную конфигурацию, поэтому откат простой:
- в
Установленные исправления (патчи)выделите патч и удалите его; - или в
Управление расширениями конфигурацииснимите флажок «Активно» — патч останется в базе, но выполняться не будет.
После этого перезапустите сеансы. Восстанавливать базу из копии не нужно.