Обновление конфигурации, к которой подключены расширения: порядок, проверки и разбор конфликтов

· 9 мин

Содержание

Базу 1С с подключенным расширением обновляют так же, как обычную: в Конфигураторе загружают файл обновления основной конфигурации и выполняют Конфигурация → Обновить конфигурацию базы данных (F7). Отключать или удалять расширения перед этим не нужно. Но после обновления платформа заново проверит, применимо ли каждое расширение к новой версии. Если в типовой изменились или исчезли объекты, которые расширение заимствует, оно перестанет подключаться.

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

СитуацияЧто делатьРиск
Только исправления (патчи) от фирмы 1СОбновить основную конфигурацию, неактуальные патчи программа удалит самаНизкий
Своё расширение с новыми отчётами и обработкамиОбновить, проверить применимость, при ошибке поправить заимствованияСредний
Расширение меняет формы и модули типовых объектовОбновлять сначала в копии, сверять перехваченные методыВысокий
Расширение от стороннего разработчикаЗапросить у автора версию .cfe под новый релиз до обновленияЗависит от автора

Подготовка: копия базы и проверка совместимости расширений

Начните с инвентаризации. Откройте Конфигуратор и выберите Конфигурация → Расширения конфигурации. В списке видно имя каждого расширения, его версию и назначение.

У каждого расширения есть свойство «Назначение». От него зависит, чего ждать при обновлении:

  • 🩹 Исправление — точечные патчи. Обычно привязаны к конкретному релизу и после обновления становятся лишними.
  • 🔧 Адаптация — подгонка типовой под требования фирмы: изменённые формы, модули, печатные формы.
  • ➕ Дополнение — новые объекты: отчёты, обработки, справочники, регистры.

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

Дальше — подготовка самой базы:

  1. Сделайте выгрузку Администрирование → Выгрузить информационную базу в файл .dt. Расширения хранятся в информационной базе и попадают в выгрузку вместе с данными.
  2. Отдельно сохраните каждое расширение в файл .cfe. В окне расширения выберите Конфигурация → Сохранить конфигурацию в файл. Это позволит вернуть доработку, даже если придётся откатывать только её.
  3. Узнайте у автора расширения, проверено ли оно на целевом релизе. Для покупных решений это главный вопрос: разработчики обычно выпускают новую версию .cfe вслед за релизом типовой.
  4. Проверьте, что платформа на компьютере и сервере подходит новому релизу конфигурации. Минимальный номер версии платформы указан в описании обновления.

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

Режимы обновления основной конфигурации

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

РежимКогда применяетсяКак выполнить
Из программы, автоматическиТиповая на поддержке, файловая база или права администратораАдминистрирование → Интернет-поддержка и сервисы → Обновление версии программы
Конфигуратор, файл .cfuТиповая на поддержке без измененийКонфигурация → Поддержка → Обновить конфигурацию
Конфигуратор, сравнение и объединениеТиповая доработана напрямую, помимо расширенийТо же меню, затем сравнение и объединение с выбором правил
Пакетный режимМного баз, обновление по расписаниюКомандная строка 1cv8 DESIGNER

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

Автоматическое обновление из режима «1С:Предприятие» тоже работает с расширениями. Программа загрузит релиз, обновит структуру и запустит обработчики обновления. Но о неприменимом расширении вы узнаете только после перезапуска, поэтому для сильно доработанных баз надёжнее Конфигуратор.

Пошагово: как обновить базу с расширением в Конфигураторе

Шаг 1. Обновите основную конфигурацию

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

Шаг 2. Проверьте применимость расширений

После F7 платформа сама проверяет расширения. Если что-то не так, в окне сообщений появятся строки с именем расширения и объектом, на котором проверка споткнулась.

Чтобы проверить вручную, откройте расширение из списка Конфигурация → Расширения конфигурации и запустите Конфигурация → Проверка конфигурации в его окне. Ошибки укажут на конкретный заимствованный объект или метод.

Шаг 3. Обновите само расширение

Если разработчик прислал новый файл .cfe:

  1. В списке расширений выделите нужное и откройте его.
  2. В окне расширения выберите Конфигурация → Загрузить конфигурацию из файла и укажите новый .cfe.
  3. Нажмите F7, чтобы записать расширение в базу.

Загрузка файла и обновление конфигурации базы данных — два отдельных действия. Пока не выполнено второе, в базе работает старая версия расширения.

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

Шаг 4. Запустите программу и дождитесь обработчиков

Откройте базу в режиме «1С:Предприятие». Программа выполнит обработчики обновления версии. В типовых на БСП результат виден в Администрирование → Обслуживание → Результаты обновления и дополнительная обработка данных.

Перед тем как пустить пользователей
Выполнено: 0 / 6

Конфликты расширения с новым релизом и как их разбирать

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

Типичные причины:

  • 🗑️ Объект удалён или переименован. Разработчики типовой переименовали реквизит или справочник, а расширение ссылается на старое имя.
  • 🔀 Изменился тип реквизита. Например, строку заменили ссылкой на справочник.
  • 📝 Изменилась форма. Расширение добавило поле рядом с элементом, которого больше нет на типовой форме.
  • 🧩 Переписан перехваченный метод. Формально расширение подключится, но логика &Вместо вызовет старый код, а &Перед и &После могут работать с другими данными.
Диагностика: выберите симптом

Методы с аннотацией &Вместо — самое хрупкое место. Расширение полностью подменяет типовой код. Если в новом релизе туда добавили исправление ошибки, ваше расширение его «съест». После каждого обновления такие методы стоит пересматривать, даже если проверка прошла без ошибок.

Для перехвата старайтесь использовать &Перед и &После. Типовой код в этом случае выполняется целиком, и его исправления до вас дойдут.

Проверка работы базы после обновления расширения

Успешная F7 ещё не значит, что доработки работают. Проверяйте то, что расширение делает в реальной работе.

  1. Список расширений. В режиме «1С:Предприятие» в типовых на БСП откройте Администрирование → Печатные формы, отчеты и обработки → Расширения. Все нужные расширения должны быть активны, без пометок об ошибке.
  2. Доработанные формы. Откройте каждый документ и справочник, в форму которого расширение добавляло поля или команды.
  3. Печатные формы и отчёты из расширения: сформируйте их на реальных данных за прошлый месяц.
  4. Проведение. Если расширение вмешивается в проведение, перепроведите пару документов в копии и сравните движения с тем, что было до обновления.
  5. Регламентные задания, которые добавило расширение: проверьте, что они запускаются по расписанию.

Удобно держать короткий сценарий проверки для каждого расширения: 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. Если код возврата не нулевой, следующую базу автоматически не обновляйте.

Если после обновления понадобился откат

Иногда новая версия ломает доработку, а исправить её быстро нельзя. Варианты отката от мягкого к радикальному:

  1. Временно отключить расширение. Снимите у него признак активности в списке расширений. Типовая заработает без доработки. Данные расширения при этом сохраняются в базе.
  2. Вернуть старый .cfe. Если сломалась только новая версия расширения, а основная конфигурация в порядке, загрузите сохранённый на шаге подготовки файл и выполните F7.
  3. Загрузить выгрузку .dt. Полный возврат к состоянию до обновления. Всё, что пользователи ввели после, будет потеряно, поэтому решение принимайте быстро.

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

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

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