Исправления (патчи) 1С 8.3: установка из программы, из файла и пакетно

· 9 мин

Содержание

Патч в 1С 8.3 — это расширение конфигурации с назначением «Исправление», файл .cfe. Проще всего ставить патчи из самой программы: Администрирование → Интернет-поддержка и сервисы → Обновление версии программы, там включают автоматическую установку исправлений или загружают их из файла вручную. Администратор без доступа к интерфейсу пользователя загружает тот же .cfe в Конфигураторе как расширение или командой 1cv8 DESIGNER ... /LoadCfg ... -Extension.

Выбор способа простой. Одна база с интернетом — автоматическая установка. Закрытый контур или десятки баз — ручная загрузка файла либо скрипт. Нужно поставить исправление прямо сейчас, не дожидаясь расписания, — загрузка из файла.

Что такое патч и чем он отличается от обновления релиза

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

Патч устроен иначе. Он не трогает основную конфигурацию, а подключается к ней поверх, как расширение. Внутри — исправленные процедуры с аннотацией &ИзменениеИКонтроль: расширение подменяет метод типовой конфигурации и при подключении проверяет, что исходный код метода совпадает с ожидаемым.

Отсюда практические следствия:

  • 🎯 Патч привязан к релизу. Исправление для 3.0.170 не подойдёт к 3.0.171, если метод в новом релизе изменился.
  • 🔁 Обновление релиза «съедает» патчи. Ошибку обычно исправляют в следующем релизе, и патч становится не нужен. Механизм обновления в типовых конфигурациях сам удаляет неприменимые исправления.
  • 🧩 Порядок применения. Расширения с назначением «Исправление» применяются раньше, чем «Адаптация» и «Дополнение». Ваши собственные расширения работают уже поверх исправленного кода.
  • 🏷️ Имя. Патчи фирмы 1С имеют имена с префиксом EF_ и номером, например EF_00_00123456. По имени их легко отличить от своих доработок в списке расширений.

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

Подготовка перед установкой исправлений

Патч не требует монопольного доступа и обычно не трогает данные. Но он меняет поведение программы, поэтому минимальная подготовка всё же нужна.

Перед установкой патча
Выполнено: 0 / 6

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

Отдельно проверьте, не снята ли конфигурация с поддержки. Если в типовой модуль вносили правки, патч на этот модуль может не подключиться: проверка &ИзменениеИКонтроль увидит, что код отличается от типового.

Способы установки патчей: автоматически или вручную

Есть три рабочих пути. Они ставят один и тот же .cfe, разница — кто запускает и где.

СпособКогда подходитЧто нужноОграничения
Автоматически из программыОдна-две базы, есть интернетПодключённая интернет-поддержкаСтавит по расписанию, не мгновенно
Из файла в режиме 1С:ПредприятиеЗакрытый контур, срочное исправлениеФайл .cfe, права администратораКаждую базу вручную
В Конфигураторе или командной строкойАдмин, много баз, серверДоступ к КонфигураторуНужна аккуратность с параметрами

Автоматическая установка через интернет-поддержку

  1. Откройте Администрирование → Интернет-поддержка и сервисы.
  2. Убедитесь, что интернет-поддержка подключена: в разделе виден логин, а не кнопка подключения.
  3. Перейдите в Обновление версии программы.
  4. Найдите настройку установки исправлений и включите автоматическую загрузку и установку.
  5. Нажмите ссылку со списком установленных исправлений, чтобы проверить, что уже стоит.

Дальше программа сама проверяет наличие патчей для текущего релиза и подключает их. Пользователям ничего делать не нужно, кроме как перезайти в программу.

Ручная установка из файла

  1. Скачайте файл исправления .cfe из личного кабинета на портале поддержки или получите его от партнёра.
  2. В программе откройте Администрирование → Интернет-поддержка и сервисы → Обновление версии программы.
  3. Откройте список установленных исправлений и выберите установку из файла.
  4. Укажите файл .cfe. Можно выбрать сразу несколько.
  5. Дождитесь сообщения об успешной установке и перезапустите сеанс.

Установка в Конфигураторе

Этот способ нужен, когда в программу пользователя не войти или в конфигурации нет подсистемы обновления.

  1. Откройте базу в Конфигураторе.
  2. Выберите Конфигурация → Расширения конфигурации.
  3. В окне списка расширений добавьте новое расширение и загрузите в него конфигурацию из файла .cfe.
  4. Проверьте в свойствах расширения: назначение «Исправление», флаг «Активно» включён.
  5. Обновите конфигурацию базы данных для этого расширения, иначе оно не применится.

Не загружайте патч в основную конфигурацию через Конфигурация → Загрузить конфигурацию из файла. Это заменит всю типовую конфигурацию содержимым патча. Загружайте .cfe только как расширение.

Типичные ошибки при установке патчей

Большинство отказов связаны с несовпадением релиза или с правками в типовом коде.

Диагностика: выберите симптом

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

Когда нужно обновлять платформу 1С, а не ставить патч

Патч чинит конфигурацию. Если ошибка в самой платформе — падения клиента, ошибки формата потока, проблемы с сервером — патч не поможет. Нужна другая сборка платформы.

Порядок обновления платформы:

  1. Узнайте, какую минимальную версию платформы требует новый релиз конфигурации. Номер платформы должен быть не ниже указанного.
  2. Скачайте дистрибутив нужной сборки с портала поддержки.
  3. Запустите setup.exe на каждом рабочем месте или разверните установку централизованно.
  4. Для клиент-серверного варианта установите ту же сборку на сервер 1С и перезапустите службу агента сервера.
  5. Проверьте, что запуск идёт новой версией: в окне «О программе» виден номер платформы.

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

В клиент-серверном варианте версии клиента и сервера должны совпадать до последней цифры сборки. Если на сервере 8.3.24.1586, а у клиента другая сборка, подключение не пройдёт. Поэтому платформу на сервере и рабочих местах меняют в одно окно.

Патчи в Бухгалтерии, ЗУП и УТ: есть ли разница

Механизм исправлений в Бухгалтерии 3.0, ЗУП 3.1 и Управлении торговлей 11 одинаковый: путь Администрирование → Интернет-поддержка и сервисы → Обновление версии программы и загрузка .cfe работают одинаково. Различаются частота и смысл исправлений.

  • 💼 Бухгалтерия. Патчи часто связаны с регламентированной отчётностью и закрытием месяца. Если исправление касается расчёта налога или проведения, после установки перепроведите затронутые документы за период и пересформируйте отчёт.
  • 👥 ЗУП. Исправления нередко касаются расчёта зарплаты, пособий и отчётности в СФР. После установки пересчитайте документы начисления, которые сформировали до патча, если ошибка влияла на суммы.
  • 📦 УТ. Патчи чаще правят обмены, печатные формы и работу с маркировкой. Пересчитывать обычно нечего, достаточно повторить операцию.

Для баз с доработками правило общее: ставьте патч сначала на копии. Если он не подключается из-за правок в коде, нужен разработчик.

Автоматизация: как ставить патчи на десятки баз

Ходить по каждой базе вручную долго. Пакетный режим Конфигуратора загружает расширение и обновляет его в базе одной командой.

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

"C:\Program Files\1cv8\8.3.24.1586\bin\1cv8.exe" DESIGNER ^
  /S "srv1c\buh" /N "Администратор" /P "пароль" ^
  /LoadCfg "D:\patches\EF_00_00123456.cfe" -Extension "EF_00_00123456" ^
  /UpdateDBCfg -Extension "EF_00_00123456" ^
  /DisableStartupDialogs /Out "D:\patches\log_buh.txt"

Для файловой базы вместо /S указывают путь к каталогу: /F "D:\Bases\Buh".

Что делает команда:

  • /LoadCfg ... -Extension — загружает .cfe в расширение с указанным именем;
  • /UpdateDBCfg -Extension — применяет расширение к базе;
  • /Out — пишет результат в лог, по которому видно, прошла ли загрузка;
  • /DisableStartupDialogs — убирает диалоги при запуске, чтобы скрипт не завис.

Для нескольких баз сделайте список строк подключения и пройдите по нему циклом в bat или PowerShell. После прогона просмотрите логи: пустой лог или строка об ошибке сразу показывают проблемную базу.

Пароль в открытом виде в скрипте — плохая идея. Заведите отдельного пользователя только для обслуживания, храните скрипт на защищённом ресурсе и ограничьте к нему доступ.

Перед массовым прогоном проверьте скрипт на одной тестовой базе. Если параметр -Extension пропустить, /LoadCfg загрузит файл в основную конфигурацию — ошибка дорогая.

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

Как проверить, что патч встал, и как его откатить

Проверка занимает минуту:

  1. Откройте список установленных исправлений в Обновление версии программы.
  2. Найдите патч по номеру. В описании указано, какую ошибку он исправляет.
  3. Повторите действие, на котором была ошибка. Если она ушла — патч работает.

Ещё один способ посмотреть все расширения, включая патчи, — Функции для технического специалиста → Стандартные → Управление расширениями конфигурации. Пункт «Функции для технического специалиста» включается в настройках программы.

Откат патча:

  • 🗑️ Удалить исправление. В списке установленных исправлений или в списке расширений выделите патч и удалите. После перезапуска сеансов программа работает по типовому коду.
  • ⏸️ Отключить временно. Снимите флаг «Активно» у расширения. Удобно, если нужно проверить, не патч ли вызвал новую ошибку.
  • 💾 Вернуть копию. Нужно, только если по патчу успели провести документы и результат оказался неверным.

Порядок действий при следующем обновлении релиза

Патчи и обновление релиза связаны, поэтому держите простой порядок:

  1. Перед обновлением выпишите номера установленных патчей.
  2. Обновите релиз штатным способом.
  3. Откройте список исправлений: часть патчей программа удалит, потому что ошибка закрыта в релизе.
  4. Проверьте, нет ли патчей уже для нового релиза, и поставьте их.
  5. Повторите проверку операций, ради которых ставили старые исправления.

Ручные патчи, загруженные в Конфигураторе, механизм обновления может не распознать как свои. Их после обновления релиза проверьте и при необходимости удалите вручную, иначе расширение повиснет с ошибкой подключения.

Если после удаления патча новая проблема пропала, сообщите об этом на линию поддержки с номером патча и релиза. Обычно выходит исправленная версия патча.

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

Нужно ли выгонять пользователей, чтобы поставить патч?
Нет. Исправление подключается без монопольного доступа. Пользователи увидят его после перезапуска своего сеанса.
Платный ли доступ к патчам?
Патчи распространяются через интернет-поддержку и портал. Для их загрузки нужна действующая поддержка конфигурации.
Конфликтует ли патч с нашим собственным расширением?
Может, если оба меняют один и тот же метод. Патч применяется первым, ваше расширение — поверх. Проверьте доработку на копии базы после установки исправления.
Сколько патчей можно держать одновременно?
Ограничения на количество нет. Каждый патч — отдельное расширение, они применяются по порядку.
Что делать, если патч нужен, а в базе нет интернета?
Скачайте .cfe на другом компьютере через личный кабинет и установите из файла или в Конфигураторе.