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

· 9 мин

Содержание

Патч в 1С 8.3 — это расширение конфигурации с назначением «Исправление», файл .cfe. Добавить его проще всего прямо в программе: Администрирование → Обслуживание → Обновление версии программы → Установленные исправления (патчи), затем установка из файла. Обновлять всю конфигурацию и снимать её с поддержки для этого не нужно.

Если у вас нет файла, а есть только сообщение об ошибке, начните с интернет-поддержки: программа сама найдёт исправления для своего релиза. Файл прислала линия консультации или франчайзи — ставьте его из формы списка исправлений или через Конфигуратор. В базах с хранилищем порядок другой, о нём отдельный раздел.

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

Фирма 1С и разработчики типовых решений выпускают исправления между релизами. Ошибка найдена в релизе 3.0.х, следующий релиз выйдет через месяц, а считать зарплату нужно сегодня. Патч закрывает конкретную ошибку в конкретном релизе.

Технически это расширение. Оно не меняет основную конфигурацию, а «перехватывает» нужные процедуры и модули поверх неё. Механизм расширений с назначением «Исправление» появился в платформе 8.3.12, поддержку патчей в типовых конфигурациях даёт Библиотека стандартных подсистем (БСП).

Патч (исправление)Обновление конфигурации
Формат файла.cfe (иногда в архиве .zip).cfu, .cf
Что меняетОтдельные процедуры поверх конфигурацииСаму конфигурацию
Снятие с поддержкиНе нужноНе нужно для типовой
К какому релизуСтрого к одному или нескольким указаннымПереход между релизами
УдалениеОтключить или удалить расширениеТолько откатом из копии

💡 Имена патчей от 1С обычно начинаются с EF_ и содержат номер ошибки, например EF_00_00123456. По номеру удобно искать описание проблемы в списке известных ошибок.

Подготовка: какой у вас релиз и подходит ли к нему патч

Патч к чужому релизу не применится. Поэтому сначала сверьте версию.

  1. Откройте программу и нажмите на значок меню (три полоски в верхнем левом углу) → Справка → О программе.
  2. Запишите две строки: версию конфигурации (например, 3.0.150.25) и версию платформы (например, 8.3.25.1374).
  3. В описании патча найдите список релизов, к которым он применим. Совпадать должна полная версия, вплоть до последней цифры.

Что ещё проверить до установки:

  • 🔍 Режим совместимости. Расширения с назначением «Исправление» требуют платформу не ниже 8.3.12. Для актуальных релизов типовых это условие выполняется всегда, но в старых самописных базах встречается режим совместимости 8.3.10 и ниже.
  • 👤 Права. Устанавливать исправления может пользователь с полными правами (роль «Администратор системы» или «Полные права» — зависит от конфигурации).
  • 🧩 Чужие расширения. Если в базе есть доработки в расширениях, которые меняют те же объекты, что и патч, возможен конфликт. Список расширений смотрите в Администрирование → Печатные формы, отчеты и обработки → Расширения.
  • 📦 Источник файла. Официальные патчи берите на портале поддержки пользователей 1С (раздел исправлений к вашему релизу), у линии консультации или у своего франчайзи. Патч с форума или из чата — это чужой код, который выполнится с правами пользователя базы.
  • 💾 Резервная копия. Патч легко отключить, но если база доработана, сделайте выгрузку .dt до установки.

Способ 1. Автоматическая загрузка патчей через интернет-поддержку

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

Как включить

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

Как поставить вручную, не дожидаясь расписания

  1. Откройте Администрирование → Обслуживание → Обновление версии программы.
  2. Запустите обновление. Если для текущего релиза есть исправления, программа предложит их установить отдельно от перехода на новый релиз.
  3. Дождитесь окончания и перезапустите сеанс.

💡 При последующем обновлении конфигурации на новый релиз программа сама удаляет патчи, которые к нему не относятся. Чистить список руками после обновления обычно не нужно.

Способ 2. Установка патча из файла в режиме «Предприятие»

Этот способ нужен, когда патч прислала поддержка, его скачали с портала вручную или база без доступа в интернет.

  1. Сохраните файл .cfe на диск. Если пришёл архив, распакуйте.
  2. Откройте Администрирование → Обслуживание → Обновление версии программы.
  3. Перейдите по ссылке Установленные исправления (патчи).
  4. В командной панели списка выберите установку исправления из файла и укажите .cfe.
  5. Программа проверит, подходит ли патч к релизу, и подключит его.
  6. Закройте программу у всех пользователей и откройте заново: новые сеансы стартуют уже с исправлением.

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

Если ссылки «Установленные исправления» нет

В самописных или сильно доработанных конфигурациях подсистемы патчей может не быть. Тогда расширение подключают стандартной обработкой платформы:

  1. Включите в настройках пользователя отображение команды Все функции (меню → Сервис → Параметры).
  2. Откройте Все функции → Стандартные → Управление расширениями конфигурации.
  3. Нажмите Добавить и выберите файл .cfe.
  4. Для патчей от 1С снимите флажки «Безопасный режим» и «Защита от опасных действий», если этого требует инструкция к патчу. Для патчей из неизвестных источников флажки не снимайте.

Способ 3. Как добавить патч через Конфигуратор

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

  1. Запустите базу в режиме Конфигуратор.
  2. Откройте меню Конфигурация → Расширения конфигурации.
  3. В окне расширений нажмите Добавить из файла (команда может быть в подменю Конфигурация этого окна) и укажите .cfe.
  4. Откройте свойства добавленного расширения и проверьте поле Назначение — должно стоять «Исправление».
  5. Нажмите Обновить конфигурацию базы данных (F7) для расширения. Это отдельный шаг: загрузка файла сама по себе расширение в базу не применяет.
  6. Перезапустите пользовательские сеансы.

Посмотреть, что именно исправляет патч, можно двойным щелчком по расширению: откроется его дерево объектов. Заимствованные модули с аннотациями &Вместо, &Перед, &После показывают, какие процедуры перехвачены.

Не редактируйте патч от 1С в Конфигураторе. Изменённый патч перестаёт быть официальным, и подсистема обновлений может его не опознать или удалить при следующем обновлении. Нужна своя доработка — делайте отдельное расширение.

Сравнение способов

СпособКогда подходитРиски
Интернет-поддержкаТиповая конфигурация, есть ИТС и интернетПочти нет; патч приходит проверенным
Из файла в «Предприятии»Патч прислала поддержка, база без интернетаОшибиться релизом — программа предупредит
Через КонфигураторНужно изучить код, несколько копий базыЗабыть шаг «Обновить конфигурацию БД»
Через хранилищеГрупповая разработкаКонфликт с захваченными объектами

Как установить патч в базе с хранилищем конфигурации

В базах, где несколько разработчиков работают через хранилище, есть два варианта, и выбирают их по задаче.

Вариант А. Патч как расширение, отдельно от хранилища

Основная конфигурация хранится в хранилище, а патч ставится в каждую рабочую базу отдельно (способ 2 или 3). Хранилище при этом не трогают.

  • ✅ Быстро, не мешает разработчикам.
  • ❌ Патч нужно повторить в каждой копии: рабочей, тестовой, у каждого разработчика.

Вариант Б. Исправление переносится в основную конфигурацию

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

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

Расширения тоже можно подключать к хранилищу — через Конфигурация → Хранилище конфигурации в окне конкретного расширения. Для официального патча это редко нужно, но удобно, если команда ведёт собственные исправления в виде расширений и хочет видеть их историю.

При следующем обновлении конфигурации из хранилища с новым релизом 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 и другим именем лога. Пользователи в базах могут продолжать работу, но исправление получат только после перезахода.

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

После перезапуска сделайте три проверки:

  1. Список исправлений. В Установленные исправления (патчи) патч должен быть в списке без пометки об ошибке.
  2. Список расширений. В Управление расширениями конфигурации у патча стоит флажок «Активно».
  3. Сама ошибка. Повторите действие, на котором программа падала. Это главная проверка.

Если ошибка проявлялась на конкретном документе, перепроведите именно его, а не создавайте новый для теста. Старый документ мог сохранить неверные движения, и только перепроведение покажет, исправлена ли логика.

Если что-то не так, смотрите журнал регистрации: Администрирование → Обслуживание → Журнал регистрации. Отберите события с уровнем «Ошибка» за время установки и время первого запуска после неё. Сообщения о неприменимом расширении, нехватке прав или конфликте имён появятся там с текстом, по которому видно, какой объект мешает.

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

Как убрать патч, если он навредил

Патч не трогает основную конфигурацию, поэтому откат простой:

  • в Установленные исправления (патчи) выделите патч и удалите его;
  • или в Управление расширениями конфигурации снимите флажок «Активно» — патч останется в базе, но выполняться не будет.

После этого перезапустите сеансы. Восстанавливать базу из копии не нужно.

Частые вопросы о патчах в 1С

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