Как применить исправления (патчи) к конфигурации 1С 8.3 и проверить, что они работают

· 9 мин

Содержание

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

Главное правило: патч выпускают под конкретный релиз конфигурации. Исправление для релиза 3.0.150 на базе 3.0.148 не нужно и может не подключиться. Поэтому всё начинается со сверки версий.

Что проверить до установки исправлений

Патч не меняет структуру данных и ставится за пару минут. Но если поставить его «вслепую», легко получить ошибку при запуске или исправление, которое молча не работает .

Перед установкой проверьте четыре вещи:

  • 🔢 Релиз конфигурации. Откройте Справка → О программе (кнопка с буквой «i» или знаком вопроса в правом верхнем углу). Номер релиза должен совпадать с тем, для которого выпущен патч.
  • 🧩 Режим поддержки. Если конфигурация снята с поддержки или в ней правили типовые модули, патч может перехватывать метод, который у вас переписан. Тогда он либо не подключится, либо изменит не то, что ожидалось.
  • 📦 Установленные расширения. Посмотрите список в Администрирование → Печатные формы, отчёты и обработки → Расширения. Ваше собственное расширение может менять тот же объект, что и патч.
  • 💾 Резервная копия. Для файловой базы — копия каталога или выгрузка .dt, для клиент-серверной — бэкап средствами СУБД.

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

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

Нужен ли монопольный режим

Для подключения патча в режиме 1С:Предприятие выгонять пользователей не требуется. Исправление вступает в силу у каждого пользователя после перезапуска его сеанса. Если патч всё же меняет состав данных расширения (так бывает редко), программа сама предупредит, что нужно обновление конфигурации базы данных.

Тестовая копия за пять минут

Для доработанной конфигурации патч сначала ставят в копию. Самый быстрый способ — выгрузить рабочую базу в .dt через Конфигуратор (Администрирование → Выгрузить информационную базу) и загрузить файл в новую пустую базу. Выгрузка требует монопольного режима, поэтому делайте её вне рабочего времени.

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

Где взять файлы патчей и как их подготовить

Исправления распространяют двумя путями.

  1. Через Интернет -поддержку пользователей. Если в базе подключена Интернет-поддержка (Администрирование → Интернет-поддержка и сервисы), программа сама находит патчи для текущего релиза. В форме обновления есть флаг автоматической загрузки и установки исправлений — с ним патчи ставятся без участия администратора.
  2. Вручную, файлом. Патчи скачивают вместе с релизом на портале обновлений 1С по договору ИТС. Обычно это архив .zip, внутри — один или несколько файлов .cfe и описание.

Как подготовить файлы:

  1. Распакуйте архив в отдельную папку без кириллицы и пробелов в пути, например C:\1C_patches\3_0_150\.
  2. Прочитайте описание: для какого релиза патч и какую ошибку он закрывает.
  3. Если патчей несколько, ставьте все, относящиеся к вашему релизу. Порядок не важен — каждый патч независимое расширение.
  4. Не переименовывайте файлы и не меняйте имя расширения внутри. По имени программа отличает исправление от обычного расширения и при следующем обновлении удаляет его, когда оно станет неактуальным.

Не берите .cfe с форумов и из чужих сборок. Исправление выполняется внутри вашей базы и имеет доступ к её данным, как и типовой код. Файл неизвестного происхождения — прямой путь к утечке данных.

Установка патча из режима 1С:Предприятие

Это основной способ для типовых конфигураций на поддержке: БП 3.0, ЗУП 3.1, УТ 11 и других, построенных на БСП. Конфигуратор не нужен.

Пошагово

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

Если в форме обновления включена автоматическая установка исправлений, шаги 3–5 программа выполняет сама при проверке обновлений.

Как отличить патч от обычного расширения в списке

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

Подключение исправления через Конфигуратор

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

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

Если конфигурация на хранилище

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

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

СпособКогда выбиратьРиски
Из режима 1С:ПредприятиеТиповая конфигурация на поддержке, одна-две базыМинимальные, программа сама проверит релиз
Через КонфигураторНетиповая конфигурация, нужно изучить перехватыМожно забыть обновить конфигурацию БД
Пакетная командаМного баз на одном сервереОшибка в скрипте ставит патч не в ту базу

Массовая установка исправлений на сервере 1С

На сервере 1С патч живёт в каждой информационной базе отдельно. Нет кнопки «поставить исправление на весь кластер»: если на сервере 40 баз одной конфигурации, патч нужно подключить в 40 базах.

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

"C:\Program Files\1cv8\8.3.25.1374\bin\1cv8.exe" DESIGNER ^
  /S "srv1c\buh_main" /N "Администратор" /P "пароль" ^
  /LoadCfg "C:\1C_patches\3_0_150\patch.cfe" -Extension "ИмяРасширения" ^
  /UpdateDBCfg -Extension "ИмяРасширения" ^
  /Out "C:\1C_patches\log_buh_main.txt" /DisableStartupDialogs

Что здесь важно:

  • 🖥️ /S — сервер и имя базы в кластере; для файловой базы вместо него /F "путь к каталогу".
  • 🏷️ -Extension — имя расширения. Берите его из описания патча или посмотрите, установив патч в тестовую базу вручную.
  • 📄 /Out — лог. Без него не понять, в какой базе команда упала.
  • 🔢 Путь к 1cv8.exe укажите для той версии платформы, на которой работает кластер.

Для 40 баз команду оборачивают в цикл по списку. Список баз кластера можно получить командой rac infobase summary list --cluster=<id>, а идентификатор кластера — через rac cluster list. Остальные параметры rac смотрите в справке rac help.

Не храните пароль администратора базы в скрипте на общем диске. Запускайте пакет от служебной учётной записи и удаляйте файл с паролем после работы.

Что с пользователями во время пакетной установки

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

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

Предупреждения и конфликты при подключении патча

Большинство проблем сводится к трём ситуациям: патч не подходит к релизу, патч конфликтует с вашими доработками или после патча что-то стало работать иначе.

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

Почему патч конфликтует с доработками

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

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

Если патч навредил

Удалите его из списка установленных исправлений (или из Конфигурация → Расширения конфигурации в Конфигураторе) и перезапустите сеансы. Основная конфигурация патчем не меняется, поэтому после удаления база возвращается в прежнее состояние. Если исправление успело изменить данные, восстановите базу из резервной копии, сделанной перед установкой.

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

Сообщение «Исправление установлено» ещё не значит, что ошибка исправлена. Проверка займёт десять минут.

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

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

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

Как не держать патчи вечно

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

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

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