Обновление конфигурации, к которой подключены расширения: порядок, проверки и разбор конфликтов
Содержание
Базу 1С с подключенным расширением обновляют так же, как обычную: в Конфигураторе загружают файл обновления основной конфигурации и выполняют Конфигурация → Обновить конфигурацию базы данных (F7). Отключать или удалять расширения перед этим не нужно. Но после обновления платформа заново проверит, применимо ли каждое расширение к новой версии. Если в типовой изменились или исчезли объекты, которые расширение заимствует, оно перестанет подключаться.
Поэтому вся работа делится на два слоя. Сначала обновляется основная конфигурация, затем проверяются и при необходимости дорабатываются расширения. Какой путь выбрать, зависит от того, кто написал расширение и насколько глубоко оно вмешивается в типовую.
| Ситуация | Что делать | Риск |
|---|---|---|
| Только исправления (патчи) от фирмы 1С | Обновить основную конфигурацию, неактуальные патчи программа удалит сама | Низкий |
| Своё расширение с новыми отчётами и обработками | Обновить, проверить применимость, при ошибке поправить заимствования | Средний |
| Расширение меняет формы и модули типовых объектов | Обновлять сначала в копии, сверять перехваченные методы | Высокий |
| Расширение от стороннего разработчика | Запросить у автора версию .cfe под новый релиз до обновления | Зависит от автора |
Подготовка: копия базы и проверка совместимости расширений
Начните с инвентаризации. Откройте Конфигуратор и выберите Конфигурация → Расширения конфигурации. В списке видно имя каждого расширения, его версию и назначение.
У каждого расширения есть свойство «Назначение». От него зависит, чего ждать при обновлении:
- 🩹 Исправление — точечные патчи. Обычно привязаны к конкретному релизу и после обновления становятся лишними.
- 🔧 Адаптация — подгонка типовой под требования фирмы: изменённые формы, модули, печатные формы.
- ➕ Дополнение — новые объекты: отчёты, обработки, справочники, регистры.
Расширения применяются к основной конфигурации в этом же порядке: исправления, затем адаптации, затем дополнения. Если два расширения перехватывают один и тот же метод, порядок влияет на результат.
Дальше — подготовка самой базы:
- Сделайте выгрузку
Администрирование → Выгрузить информационную базув файл .dt. Расширения хранятся в информационной базе и попадают в выгрузку вместе с данными. - Отдельно сохраните каждое расширение в файл .cfe. В окне расширения выберите
Конфигурация → Сохранить конфигурацию в файл. Это позволит вернуть доработку, даже если придётся откатывать только её. - Узнайте у автора расширения, проверено ли оно на целевом релизе. Для покупных решений это главный вопрос: разработчики обычно выпускают новую версию .cfe вслед за релизом типовой.
- Проверьте, что платформа на компьютере и сервере подходит новому релизу конфигурации. Минимальный номер версии платформы указан в описании обновления.
Расширение, которое добавляет свои реквизиты к типовым документам или собственные регистры, хранит в базе данные. Если удалить такое расширение, данные в его таблицах будут потеряны. Не удаляйте расширение «на время обновления», не сохранив его данные и не выгрузив базу.
Режимы обновления основной конфигурации
Как именно загружать новый релиз, зависит от того, снята ли типовая с поддержки. Расширения тут ни при чём: их механизм как раз позволяет держать основную конфигурацию на полной поддержке.
| Режим | Когда применяется | Как выполнить |
|---|---|---|
| Из программы, автоматически | Типовая на поддержке, файловая база или права администратора | Администрирование → Интернет-поддержка и сервисы → Обновление версии программы |
| Конфигуратор, файл .cfu | Типовая на поддержке без изменений | Конфигурация → Поддержка → Обновить конфигурацию |
| Конфигуратор, сравнение и объединение | Типовая доработана напрямую, помимо расширений | То же меню, затем сравнение и объединение с выбором правил |
| Пакетный режим | Много баз, обновление по расписанию | Командная строка 1cv8 DESIGNER |
💡 Если доработки сделаны только в расширениях, а основная конфигурация не снята с поддержки, обновление проходит без ручного объединения. Именно ради этого доработки и выносят в расширения.
Автоматическое обновление из режима «1С:Предприятие» тоже работает с расширениями. Программа загрузит релиз, обновит структуру и запустит обработчики обновления. Но о неприменимом расширении вы узнаете только после перезапуска, поэтому для сильно доработанных баз надёжнее Конфигуратор.
Пошагово: как обновить базу с расширением в Конфигураторе
Шаг 1. Обновите основную конфигурацию
- Запустите Конфигуратор под пользователем с полными правами.
- Откройте конфигурацию:
Конфигурация → Открыть конфигурацию. - Выберите
Конфигурация → Поддержка → Обновить конфигурацию, укажите файл .cfu нужного релиза. - Если программа предложит сравнение, проверьте, что изменений «на нашей стороне» нет. Если они есть, разбирайтесь с каждым объектом отдельно.
- Нажмите F7 (
Обновить конфигурацию базы данных) и примите изменения в окне реорганизации.
Шаг 2. Проверьте применимость расширений
После F7 платформа сама проверяет расширения. Если что-то не так, в окне сообщений появятся строки с именем расширения и объектом, на котором проверка споткнулась.
Чтобы проверить вручную, откройте расширение из списка Конфигурация → Расширения конфигурации и запустите Конфигурация → Проверка конфигурации в его окне. Ошибки укажут на конкретный заимствованный объект или метод.
Шаг 3. Обновите само расширение
Если разработчик прислал новый файл .cfe:
- В списке расширений выделите нужное и откройте его.
- В окне расширения выберите
Конфигурация → Загрузить конфигурацию из файлаи укажите новый .cfe. - Нажмите F7, чтобы записать расширение в базу.
Загрузка файла и обновление конфигурации базы данных — два отдельных действия. Пока не выполнено второе, в базе работает старая версия расширения.
Если в расширение вносились собственные правки поверх авторских, загружать файл целиком нельзя: правки пропадут. Используйте Конфигурация → Сравнить, объединить с конфигурацией из файла в окне расширения и вручную отметьте, какие изменения брать из нового файла.
Шаг 4. Запустите программу и дождитесь обработчиков
Откройте базу в режиме «1С:Предприятие». Программа выполнит обработчики обновления версии. В типовых на БСП результат виден в Администрирование → Обслуживание → Результаты обновления и дополнительная обработка данных.
Конфликты расширения с новым релизом и как их разбирать
Расширение не копирует объекты типовой, а заимствует их. При заимствовании оно запоминает свойства объекта, на которые опирается. Если после обновления эти свойства в типовой изменились, расширение считается неприменимым и не подключается при запуске.
Типичные причины:
- 🗑️ Объект удалён или переименован. Разработчики типовой переименовали реквизит или справочник, а расширение ссылается на старое имя.
- 🔀 Изменился тип реквизита. Например, строку заменили ссылкой на справочник.
- 📝 Изменилась форма. Расширение добавило поле рядом с элементом, которого больше нет на типовой форме.
- 🧩 Переписан перехваченный метод. Формально расширение подключится, но логика
&Вместовызовет старый код, а&Переди&Послемогут работать с другими данными.
Методы с аннотацией &Вместо — самое хрупкое место. Расширение полностью подменяет типовой код. Если в новом релизе туда добавили исправление ошибки, ваше расширение его «съест». После каждого обновления такие методы стоит пересматривать, даже если проверка прошла без ошибок.
Для перехвата старайтесь использовать &Перед и &После. Типовой код в этом случае выполняется целиком, и его исправления до вас дойдут.
Проверка работы базы после обновления расширения
Успешная F7 ещё не значит, что доработки работают. Проверяйте то, что расширение делает в реальной работе.
- Список расширений. В режиме «1С:Предприятие» в типовых на БСП откройте
Администрирование → Печатные формы, отчеты и обработки → Расширения. Все нужные расширения должны быть активны, без пометок об ошибке. - Доработанные формы. Откройте каждый документ и справочник, в форму которого расширение добавляло поля или команды.
- Печатные формы и отчёты из расширения: сформируйте их на реальных данных за прошлый месяц.
- Проведение. Если расширение вмешивается в проведение, перепроведите пару документов в копии и сравните движения с тем, что было до обновления.
- Регламентные задания, которые добавило расширение: проверьте, что они запускаются по расписанию.
Удобно держать короткий сценарий проверки для каждого расширения: 5–10 действий, которые затрагивают все его доработки. С ним проверка после каждого релиза занимает минуты, а не превращается в поиск ошибок по жалобам пользователей.
Обновление в клиент-серверном варианте
На сервере 1С порядок тот же, но добавляются сеансы пользователей, блокировки и кэши.
Монопольный доступ. Он нужен для обновления структуры основной конфигурации. Перед F7 завершите сеансы пользователей. В типовых на БСП это делают в Администрирование → Обслуживание → Блокировка работы пользователей. Другой путь — блокировка начала сеансов в свойствах информационной базы в консоли администрирования кластера.
При установке блокировки и принудительном завершении сеансов у пользователей пропадут несохранённые данные. Предупредите их заранее и обновляйте в нерабочее время.
Расширения на сервере. Расширения лежат в самой базе на СУБД, а не на компьютере пользователя. Загрузить .cfe один раз достаточно, все клиенты получат его при следующем входе.
Распределённая база. Если база участвует в обмене РИБ, у расширения есть свойство использования в распределённой информационной базе. Тогда расширение передаётся в подчинённые узлы вместе с изменениями конфигурации. Если свойство выключено, ставить расширение в узлах придётся вручную.
Пакетное обновление. Для нескольких серверных баз удобна командная строка. Пример для основной конфигурации и одного расширения:
rem Обновление основной конфигурации из файла поставки
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /S "srv1c\buh" /N "Администратор" /P "пароль" /UC "obnovlenie" /UpdateCfg "D:\upd\1Cv8.cfu" /UpdateDBCfg /Out "D:\upd\log_cfg.txt"
rem Загрузка новой версии расширения и запись его в базу
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /S "srv1c\buh" /N "Администратор" /P "пароль" /UC "obnovlenie" /LoadCfg "D:\upd\Dorabotki.cfe" -Extension "Dorabotki" /UpdateDBCfg -Extension "Dorabotki" /Out "D:\upd\log_ext.txt"
Здесь /UC — код разрешения входа, который задаётся при блокировке сеансов. Путь к платформе подставьте свой. Результат смотрите в файле из /Out. Если код возврата не нулевой, следующую базу автоматически не обновляйте.
Если после обновления понадобился откат
Иногда новая версия ломает доработку, а исправить её быстро нельзя. Варианты отката от мягкого к радикальному:
- Временно отключить расширение. Снимите у него признак активности в списке расширений. Типовая заработает без доработки. Данные расширения при этом сохраняются в базе.
- Вернуть старый .cfe. Если сломалась только новая версия расширения, а основная конфигурация в порядке, загрузите сохранённый на шаге подготовки файл и выполните F7.
- Загрузить выгрузку .dt. Полный возврат к состоянию до обновления. Всё, что пользователи ввели после, будет потеряно, поэтому решение принимайте быстро.
Отключение расширения, которое меняет проведение или добавляет обязательные реквизиты, может привести к документам с неполными данными. Отключайте его на короткое время и не проводите в этот период документы, которые оно затрагивает.