Разработка и Конфигурация · 10 мин
Как сделать патч 1С: создание и установка исправлений
Как создать патч в 1С: выбор объектов, поставка исправлений через файл .cfe, применение патча в конфигураторе, проверка результата и типичные ошибки.
Патч в 1С — это файл исправления с расширением .cfe, который позволяет точечно доработать конфигурацию, не снимая её с полной поддержки и не блокируя автоматическое обновление. Механизм патчей появился в платформе 8.3.11 и с тех пор стал стандартным способом доставки быстрых исправлений в типовые конфигурации. В отличие от расширения, патч работает только внутри конфигуратора и предназначен в первую очередь для исправления ошибок, а не для добавления новой функциональности.
Типичные сценарии, когда нужен патч: в типовой конфигурации найдена ошибка, которую нужно исправить до выхода официального релиза; требуется изменить несколько строк в общем модуле; нужно поправить запрос или условие в процедуре проведения документа. Главное преимущество — конфигурация остаётся на поддержке, и при выходе очередного обновления патч либо удаляется, либо пересобирается заново.
Ниже разобран полный цикл работы с патчем: от подготовки стенда и выбора объектов до установки исправления в рабочую базу и проверки результата. Инструкция ориентирована на конфигуратор платформы 8.3.11 и новее.
Что такое патч и чем он отличается от расширения
Патч — это особый вид расширения конфигурации, который создаётся только в конфигураторе и только для исправления существующих объектов основной конфигурации. В патч нельзя добавить новый справочник, документ или регистр: можно лишь изменить свойства и модули уже существующих объектов. Это принципиальное ограничение отличает патч от обычного расширения, где добавление собственных объектов разрешено.
Второе отличие — способ распространения. Расширение устанавливается пользователем прямо в режиме «Предприятие» через меню «Все функции» или административный раздел. Патч загружается только через конфигуратор, что делает его инструментом разработчика и внедренца, а не конечного пользователя. Зато патч не требует отключения безопасного режима и не влияет на профили безопасности.
Патчи хорошо подходят для оперативных исправлений между релизами. Вендоры и франчайзи используют их, чтобы разослать клиентам исправление критичной ошибки, не дожидаясь полноценного обновления конфигурации.
Патч или расширение: что выбрать
Исправление существующих объектов типовой конфигурации, установка только через конфигуратор, подходит для срочных багфиксов между релизами
Добавление новых объектов и доработка поведения без изменения конфигурации, устанавливается в режиме Предприятие, подходит для постоянных доработок
Прямая правка со снятием объектов с поддержки — крайняя мера, усложняет все последующие обновления
Подготовка: стенд, копия базы и версия платформы
Никогда не создавайте и не отлаживайте патч сразу в рабочей базе. Разверните копию информационной базы на тестовом стенде: выгрузите рабочую базу в файл .dt через «Администрирование → Выгрузить информационную базу» и загрузите её в новую пустую базу. Убедитесь, что версия конфигурации на стенде совпадает с рабочей — патч, собранный под другой релиз, может не установиться или дать непредсказуемый результат.
Проверьте версию платформы: механизм патчей доступен начиная с 8.3.11. Рекомендуется использовать актуальный релиз платформы, потому что в ранних версиях механизм имел ограничения по составу изменяемых объектов. Также убедитесь, что у вас есть права администратора в базе и монопольный доступ для обновления конфигурации базы данных.
Создание патча в конфигураторе
Откройте конфигуратор тестовой базы и перейдите в меню «Конфигурация → Расширения конфигурации». В открывшемся списке нажмите «Создать патч». Платформа создаст новое расширение с назначением «Исправление» — это видно в свойствах расширения в колонке «Назначение». Задайте понятное имя, например «ИсправлениеПроведенияРеализации», и префикс, чтобы контролируемые объекты было легко отличить.
Далее добавьте в патч объекты, которые нужно исправить. Для этого в дереве конфигурации найдите нужный объект (общий модуль, документ, обработку), откройте его и внесите исправление прямо в код или свойства. Платформа автоматически пометит объект как заимствованный в патч. Альтернативный путь — в окне расширения перейти на вкладку конфигурации и вручную добавить объект через контекстное меню «Добавить в расширение».
Важно понимать, как патч хранит изменения. Для модулей патч замещает целиком те процедуры и функции, которые вы изменили, — остальные продолжают выполняться из основной конфигурации. Поэтому исправляйте минимально необходимое: чем меньше замещённых методов, тем проще патч переживёт обновление конфигурации.
- 1Разверните копию рабочей базы на тестовом стенде и сверьте версию конфигурации
- 2Откройте Конфигурация → Расширения конфигурации → Создать патч, задайте имя и префикс
- 3Внесите исправления в нужные объекты — они автоматически попадут в патч как заимствованные
- 4Обновите конфигурацию базы данных (F7) и проверьте исправление в режиме Предприятие
- 5Выгрузите патч в файл .cfe через кнопку выгрузки в окне расширений
- 6Загрузите файл в рабочую базу через тот же пункт меню и обновите конфигурацию БД
Тестирование и выгрузка патча в файл
Перед выгрузкой обязательно обновите конфигурацию базы данных клавишей F7 и запустите тестовую базу в режиме «Предприятие». Воспроизведите сценарий, в котором проявлялась ошибка, и убедитесь, что исправление работает. Проверьте и смежные сценарии: замещённая процедура может вызываться из других мест, и изменение её поведения способно затронуть неожиданные участки учёта.
Полезно выполнить проверку конфигурации: «Конфигурация → Проверка конфигурации» с включённой проверкой расширений. Это выявит синтаксические ошибки в заимствованных модулях и конфликты имён. Если проверка чистая, возвращайтесь в окно расширений конфигурации, выделите патч и нажмите «Выгрузить в файл». Укажите имя файла — получится файл с расширением .cfe, который можно перенести на другой компьютер или отправить коллегам.
Установка патча в рабочую базу
Перед установкой сделайте резервную копию рабочей базы — выгрузку .dt или средствами СУБД, если база клиент-серверная. Это займёт несколько минут, но даст гарантированную точку отката. Затем откройте конфигуратор рабочей базы, перейдите в «Конфигурация → Расширения конфигурации» и нажмите «Загрузить из файла», указав полученный .cfe.
После загрузки патч появится в списке расширений с назначением «Исправление». Убедитесь, что флажок активности установлен, и обновите конфигурацию базы данных (F7). Обновление потребует монопольного доступа: пользователей нужно попросить выйти или завершить сеансы принудительно через консоль кластера. После обновления запустите базу в режиме «Предприятие» и повторите проверку исправленного сценария уже на реальных данных.
Как проверить результат
Виден с назначением Исправление, флажок активен, ошибок подключения нет
Строка подсвечена, есть сообщение о несовместимости версии конфигурации
Ошибка не воспроизводится, данные формируются корректно
Ошибка осталась или появилась новая в смежном сценарии
Нет ошибок фона и транзакций после установки
Появились ошибки вызова замещённых процедур
Жизненный цикл: обновление конфигурации и удаление патча
Патч не вечен: при выходе нового релиза конфигурации его судьбу нужно решить явно. Если официальное обновление уже содержит аналогичное исправление, патч следует удалить перед обновлением — иначе замещённые процедуры из патча будут конфликтовать с новым кодом вендора. Удаление выполняется в том же окне расширений: выделите патч и нажмите «Удалить», затем обновите конфигурацию базы данных.
Если исправление всё ещё актуально, патч придётся пересобрать под новый релиз: обновите тестовую базу, откройте патч, проверьте, что заимствованные объекты не изменились у поставщика, при необходимости перенесите исправление в новый код и выгрузите файл заново. Именно поэтому минимальный состав патча так важен — каждая лишняя замещённая процедура превращается в ручную работу при каждом обновлении.
Ограничения механизма и альтернативы
Патч не всесилен. В него нельзя добавлять новые объекты метаданных, нельзя изменять роли и интерфейсы в полном объёме, а изменения структуры данных (например, длины строки существующего реквизита) могут потребовать реструктуризации и поддерживаются не всегда. Если задача выходит за рамки исправления существующего кода — например, нужен новый отчёт или дополнительный реквизит, — используйте обычное расширение конфигурации.
Для распространения исправлений между множеством однотипных баз удобно хранить файл патча в общем сетевом ресурсе вместе с кратким описанием: что исправляет, для какой версии конфигурации собран, кем и когда проверен. Это избавит от ситуации, когда в базу загружают патч неизвестного происхождения.
Как выбрать действие
Что важно запомнить
Патч создаётся через Конфигурация → Расширения конфигурации → Создать патч и содержит только исправления существующих объектов. Работайте на копии базы, замещайте минимум процедур, тестируйте до выгрузки и делайте резервную копию перед установкой. После обновления конфигурации патч удаляется или пересобирается под новый релиз.
Частые вопросы о патчах 1С
Можно ли установить патч в режиме Предприятие, как обычное расширение?
Нет. Патч загружается только через конфигуратор: «Конфигурация → Расширения конфигурации → Загрузить из файла». В пользовательском интерфейсе управления расширениями он отображается, но установка и удаление выполняются администратором в конфигураторе с последующим обновлением конфигурации базы данных.
Снимет ли патч конфигурацию с поддержки?
Нет, в этом его главное преимущество. Патч не изменяет основную конфигурацию, а накладывается поверх неё, поэтому поддержка и автоматическое обновление сохраняются. При обновлении платформа лишь предупредит о наличии патчей, чтобы вы решили, что с ними делать.
Что произойдёт с патчем при обновлении конфигурации?
Патч останется в списке расширений, но может стать несовместим