Исправления-патчи для типовых конфигураций 1С: устройство, установка и проверка
Содержание
Патч в 1С — это небольшое исправление ошибки типовой конфигурации, которое фирма 1С выпускает между релизами в виде расширения конфигурации с назначением «Исправление». Он чинит конкретный сбой (неверный расчёт, падающий отчёт, ошибку выгрузки) сразу, не дожидаясь следующей версии программы, и не снимает конфигурацию с поддержки.
Ставить патчи нужно ради стабильности: ошибка, которую 1С уже признала и закрыла исправлением, иначе будет мешать вам до выхода нового релиза. В актуальных версиях Бухгалтерии, ЗУП, УТ и других типовых решений исправления можно получать автоматически через интернет -поддержку.
Что такое патч в 1С и как он устроен внутри
Технически патч — это файл расширения .cfe. Внутри — только те объекты и процедуры конфигурации, которые нужно поправить. Всё остальное остаётся без изменений.
Как это работает:
- 🧩 расширение «перехватывает» метод основной конфигурации и подменяет его исправленным текстом;
- 🏷️ имя расширения обычно начинается с
EF_и содержит номер ошибки, напримерEF_00_00123456; - 📌 у каждого патча есть список релизов, к которым он применим. На другой релиз он не ставится;
- 🔒 основная конфигурация не меняется, поэтому она остаётся на поддержке поставщика.
В исправлениях 1С используется механизм «изменение с контролем»: расширение помнит исходный текст метода. Если метод в вашей базе отличается от типового, патч не применится и программа сообщит об этом. Это защита от ситуации, когда исправление молча ломает чужую доработку.
Список установленных патчей виден в общем списке расширений. Их легко отличить от ваших собственных расширений по имени EF_… и назначению «Исправление».
Патч, релиз и обновление: в чём разница
Эти три слова часто смешивают. На деле это разные вещи.
Релиз — полная версия конфигурации с номером вида 3.0.xxx.yy. В нём собраны новые возможности, изменения законодательства, новые формы отчётности и накопленные исправления.
Обновление — процесс перехода с одного релиза на другой. Его выполняют файлом .cfu, через Конфигуратор или встроенным помощником обновления.
Патч — точечное исправление одной или нескольких ошибок внутри текущего релиза. Номер версии конфигурации после него не меняется.
| Признак | Патч | Релиз (обновление) |
|---|---|---|
| Что меняет | 1–несколько процедур | Всю конфигурацию |
| Формат | Расширение .cfe | Файл обновления .cfu или дистрибутив .cf |
| Номер версии | Не меняется | Меняется |
| Изменение структуры базы | Как правило, нет | Часто да |
| Время установки | Минуты | От десятков минут до часов |
| Нужна ли резервная копия | Желательна | Обязательна |
| Что будет при следующем релизе | Удаляется, если исправление вошло в релиз | — |
Главное практическое отличие: патч не заменяет обновление. Он живёт до следующего релиза, в который 1С включает это же исправление штатно. При обновлении программа сама удаляет патчи, которые стали лишними.
Какие ошибки исправляют патчами
Патчами закрывают ошибки, которые нельзя оставить до следующего релиза. Типичные группы:
- 🧮 неверные расчёты — суммы налогов, взносов, отпускных, амортизации, курсовых разниц;
- 📄 регламентированная отчётность — ошибки заполнения или выгрузки, из-за которых отчёт не проходит проверку;
- 🔄 обмены — сбои при выгрузке в ЕГАИС, «Честный знак», ЭДО, при синхронизации баз;
- 🖨️ печатные формы — неверные реквизиты, суммы прописью, лишние или пропавшие строки;
- ⚠️ падения программы — ошибка при открытии формы, проведении документа, формировании отчёта;
- 🌐 совместимость с новой платформой — когда после перехода на свежую сборку 8.3 перестаёт работать отдельная функция.
Как понять, что ваша ошибка уже исправлена патчем:
- Запишите точный текст сообщения об ошибке и действие, после которого оно появилось.
- Проверьте список доступных исправлений для вашего релиза в программе или на портале поддержки.
- Сравните описание исправления с вашим сценарием: совпасть должны и объект (документ, отчёт), и условие.
- Если подходящего патча нет, отправьте сообщение об ошибке в поддержку 1С или партнёру. По таким обращениям исправления и выпускают.
Патчи не добавляют новых документов, отчётов и форм. Если нужна новая форма декларации или новый порядок расчёта по закону, это задача релиза.
Как установить патч в 1С: три способа
Перед установкой убедитесь, что патч выпущен для вашего релиза. Номер релиза смотрите в разделе «О программе» или в заголовке окна Конфигуратора.
Где взять патч и что прочитать перед установкой
Источников три. Первый — сама программа: при подключённой интернет-поддержке она видит исправления для вашего релиза. Второй — портал поддержки 1С, где патчи лежат вместе с дистрибутивами конфигурации. Третий — обслуживающий партнёр, который присылает файл вместе с пояснением.
В описании патча обращайте внимание на четыре вещи:
- Релизы. Перечень версий конфигурации, к которым исправление применимо. Нет вашего номера — патч не ставьте.
- Суть ошибки. Какой сценарий исправляется. По этому тексту потом проверяете результат.
- Объекты. Какие документы, отчёты или общие модули затронуты. Если среди них есть доработанные у вас — готовьтесь к ручному переносу.
- Действия после установки. Иногда после исправления нужно перепровести документы или заново сформировать отчёт за период, где ошибка уже успела проявиться.
Последний пункт часто пропускают. Патч исправляет логику, но не переписывает задним числом то, что программа уже посчитала неверно.
Способ 1. Автоматически через интернет-поддержку
Самый удобный вариант для типовых конфигураций на поддержке.
- Откройте
Администрирование → Интернет-поддержка и сервисы. - Убедитесь, что интернет-поддержка подключена (нужны логин и пароль портала и действующая подписка на сопровождение).
- В блоке обновления программы включите автоматическую загрузку и установку исправлений.
- Там же откройте список установленных исправлений, чтобы видеть, что уже стоит.
Программа сама проверяет, есть ли патчи для вашего релиза, скачивает и подключает их. Изменения вступают в силу после перезапуска сеанса.
Способ 2. Из файла в пользовательском режиме
Подходит, если патч скачан вручную или прислан партнёром.
- Откройте
Администрирование → Печатные формы, отчеты и обработки → Расширения. - Нажмите «Добавить из файла» и выберите файл
.cfe(в типовых конфигурациях форма установки исправлений принимает и архив.zipс патчем). - Проверьте, что расширение появилось в списке и отмечено как активное.
- Перезапустите программу. У остальных пользователей патч заработает при следующем входе.
Способ 3. Через Конфигуратор
Нужен для конфигураций без встроенного механизма установки исправлений или при проблемах в первых двух способах.
- Откройте базу в режиме Конфигуратора.
- Выберите
Конфигурация → Расширения конфигурации. - Добавьте новое расширение и загрузите в него файл
.cfeкомандой загрузки конфигурации из файла. - Выполните обновление конфигурации
базы данных для этого расширения (
F7в окне расширения). - Проверьте в свойствах расширения, что назначение — «Исправление», а флаг активности включён.
Если в базе работают пользователи, новое расширение подключится только в их новых сеансах. Предупредите коллег, чтобы перезашли в программу после установки.
Патч и доработанная конфигурация
Это самый частый вопрос у тех, кто сопровождает нетиповые базы.
Патч — расширение, поэтому снимать конфигурацию с поддержки или включать возможность изменения для него не нужно. Он работает и на доработанной конфигурации, если исправляемый метод остался типовым.
Сложности начинаются, когда программист уже менял именно ту процедуру, которую чинит патч:
- При подключении расширение сравнивает исходный текст метода с тем, что в базе.
- Тексты не совпадают — патч не применяется, программа выводит сообщение о несовпадении.
- Исправление нужно перенести вручную: открыть патч в Конфигураторе, посмотреть изменения и внести их в доработанный метод.
Ещё одна ловушка — собственные расширения, которые перехватывают тот же метод. Тогда результат зависит от порядка применения расширений. После установки патча проверьте сценарий, который должен был исправиться, и сценарий вашей доработки.
Перед переносом исправления в доработанный модуль сравните три версии метода: типовую до патча, исправленную в патче и вашу доработанную. Так видно, какие строки трогать.
Риски и проверка исправления перед рабочей базой
Патчи от 1С проходят тестирование, но ваша база уникальна: свои доработки, свои расширения, свои данные. Поэтому порядок такой.
Где проверять. Сделайте копию базы
(выгрузка .dt или копия каталога для файловой базы) и установите патч сначала туда.
Что проверять.
- ✅ сценарий из описания ошибки: повторите действия, которые давали сбой;
- ✅ соседние операции: документы того же вида, отчёты по тем же данным;
- ✅ ваши доработки и собственные расширения, если они касаются тех же объектов;
- ✅ контрольные цифры: оборотно-сальдовая ведомость или итоговые суммы отчёта до и после.
Какие риски бывают.
| Риск | Как проявляется | Что делать |
|---|---|---|
| Конфликт с доработкой | Патч не применяется, сообщение при запуске | Перенести исправление вручную |
| Конфликт с вашим расширением | Изменилось поведение доработки | Проверить порядок и тексты перехватов |
| Патч не для вашего релиза | Не устанавливается или не нужен | Сверить номер релиза с описанием патча |
| Побочный эффект в расчётах | Суммы отличаются от ожидаемых | Отключить патч и сообщить в поддержку |
Откатить патч просто: снимите флаг активности расширения или удалите его. Основная конфигурация при этом не пострадает. Но данные, которые записались за время работы с патчем (проведённые документы, рассчитанные начисления), сами не откатятся — их придётся перепровести или пересчитать.
Автоматизация установки и учёт версий
Если баз одна-две, хватает автоматической загрузки через интернет-поддержку. Для десятков баз удобнее сценарии.
Пакетная установка из командной строки. Конфигуратор умеет загрузить расширение и обновить его без открытия окна:
"C:\Program Files\1cv8\<версия платформы>\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 ^
/Out "D:\Logs\patch_buh.log"
Для файловой базы вместо /S укажите /F "D:\Bases\Buh". Имя после -Extension возьмите из описания патча. Результат смотрите в файле журнала /Out.
Не храните пароль администратора в bat-файле в открытом виде на общем диске. Используйте отдельную учётную запись с минимальными правами и ограниченный доступ к папке со скриптами.
Что делать с несколькими базами одной конфигурации. Удобный порядок: тестовая копия → одна рабочая база с небольшим числом пользователей → все остальные. Между этапами оставляйте хотя бы рабочий день, чтобы проявились редкие сценарии.
Учёт версий. Ведите простой реестр по каждой базе:
- 📋 номер релиза конфигурации;
- 📋 список установленных патчей с датой;
- 📋 кто и где проверил исправление;
- 📋 дата удаления патча после обновления.
Такой реестр отвечает на вопрос «почему в этой базе работает, а в соседней нет» за минуту. При обновлении на новый релиз сверяйте список: патчи, вошедшие в релиз, программа удаляет сама, а ручные исправления в доработанных модулях нужно проверить отдельно.
Частые ошибки при работе с патчами
- ❌ Ставят патч и не перезапускают программу. Исправление не работает , кажется, что патч «не помог». Нужен новый сеанс.
- ❌ Ставят патч от другого релиза. Скачали архив для
3.0.xxx.10, а база на3.0.xxx.12. Проверяйте применимость по описанию. - ❌ Путают патч с обновлением. Ждут от исправления новую форму отчёта, которая есть только в релизе.
- ❌ Оставляют неактивные патчи годами. Отключённые расширения копятся в списке и мешают понять, что реально работает.
- ❌ Правят типовой модуль вместо установки патча. Конфигурация снимается с поддержки, следующее обновление превращается в ручное сравнение.
Частые вопросы
Нужна ли подписка на сопровождение, чтобы получать патчи?
Влияет ли патч на последующее обновление конфигурации?
Можно ли установить патч в облачной базе 1С:Фреш?
Нужен ли монопольный режим для установки патча?
Как понять, что патч реально установлен?
EF_… должно быть активным. Затем повторите сценарий, в котором была ошибка.