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

· 9 мин

Содержание

Обновить 1С с расширениями можно обычным способом, через Конфигуратор или помощник обновления. Расширения при этом не удаляют. Перед обновлением каждое расширение выгружают в файл .cfe, рискованные отключают снятием флажка «Активно», обновляют основную конфигурацию, а потом проверяют применимость расширений и включают их обратно.

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

Что проверить перед обновлением 1С с расширениями

Сначала составьте список того, что подключено к базе. Без него вы не поймёте, какая доработка пропала после обновления.

Где посмотреть список расширений

  • 🖥️ В Конфигураторе: меню Конфигурация → Расширения конфигурации. Откроется окно со всеми расширениями базы и их свойствами.
  • 👤 В пользовательском режиме типовых конфигураций на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11): Администрирование → Печатные формы, отчеты и обработки → Расширения.
  • 🔎 Если раздел не виден: Все функции → Стандартные → Управление расширениями конфигурации. Пункт «Все функции» включается в настройках программы.

Что записать по каждому расширению

Сведите данные в таблицу. Она пригодится и при обновлении, и при разговоре с разработчиком доработки.

Что фиксируемЗачем
Имя и версияСравнить с тем, что останется после обновления
Назначение (исправление, адаптация, дополнение)Исправления после обновления часто уже не нужны
Есть ли собственные данные (реквизиты, справочники)От этого зависит, можно ли расширение удалять
Какие типовые объекты заимствованыИх изменения в новом релизе ломают расширение
Кто автор и есть ли поддержкаКому писать, если расширение не встанет

Свойство «Назначение» видно в палитре свойств расширения. Оно появилось в платформе 8.3.10, у более ранних расширений поле может быть пустым.

Резервная копия и выгрузка расширений

Сделайте полную выгрузку базы: в Конфигураторе Администрирование → Выгрузить информационную базу. Файл .dt сохраняет конфигурацию, данные и расширения.

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

Подпишите файлы так, чтобы было видно версию основной конфигурации: например, Печать_счетов_БП_3.0.170.cfe. Через полгода это сэкономит поиск.

Перед обновлением готово
Выполнено: 0 / 6

Почему расширения мешают обновлению: монопольный режим и блокировки

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

Когда нужен монопольный режим

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

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

Как освободить базу

  1. Предупредите пользователей о времени работ и попросите выйти.
  2. В пользовательском режиме конфигураций на БСП откройте Администрирование → Обслуживание → Блокировка работы пользователей и установите блокировку. Сеансы завершатся с предупреждением.
  3. В клиент-серверном варианте проверьте сеансы в консоли администрирования кластера. Там же видны фоновые задания.
  4. Для файловой базы убедитесь, что никто не держит файл 1Cv8.1CD открытым, в том числе через общую папку.

Принудительное завершение сеансов обрывает работу пользователей: несохранённые документы пропадут. Делайте это вне рабочего времени и только после предупреждения.

Какие расширения отключать перед обновлением, а какие нет

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

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

Почему &ИзменениеИКонтроль — главный кандидат на отключение

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

Перехваты через &Перед и &После устойчивее: им важно лишь, чтобы метод с тем же именем и параметрами существовал.

Как отключить расширения перед обновлением конфигурации

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

Через Конфигуратор

  1. Откройте Конфигурация → Расширения конфигурации.
  2. Найдите нужное расширение в списке.
  3. Снимите флажок в колонке «Активно».
  4. Повторите для остальных рискованных расширений.

Флажок «Активно» есть в платформе начиная с 8.3.12. В более старых версиях отключить расширение без удаления нельзя, поэтому выгрузка в .cfe там обязательна.

В пользовательском режиме

В списке Администрирование → Печатные формы, отчеты и обработки → Расширения откройте карточку расширения и снимите флажок, отвечающий за подключение. Изменения вступят в силу при следующем входе в программу.

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

Что делать с безопасным режимом

У каждого расширения есть свойство «Безопасный режим». Оно ограничивает доступ к файлам, внешним компонентам и COM. Перед обновлением его не трогают. Но если после обновления расширение не подключается, проверьте, не сменил ли кто-то этот флажок: расширение, которому нужен файловый доступ, в безопасном режиме упадёт уже при работе.

Процесс обновления конфигурации при подключённых расширениях

Сама процедура не отличается от обновления базы без расширений. Расширения не входят в файл обновления .cfu и не перезаписываются им.

Пробный прогон на копии

  1. Разверните выгрузку .dt в новую пустую базу: Администрирование → Загрузить информационную базу.
  2. Обновите копию тем же способом, что и рабочую.
  3. Включите расширения и проверьте их (см. следующий раздел).
  4. Только если на копии всё сработало, повторяйте на рабочей базе.

Обновление в Конфигураторе

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

Если между текущей версией и нужной несколько промежуточных релизов, проходите их по очереди. Список допустимых переходов указан в описании каждого релиза.

Через помощник обновления в программе

В конфигурациях на БСП есть встроенный помощник «Обновление версии программы» в разделе Администрирование. Он сам скачивает релиз через интернет -поддержку, делает резервную копию и устанавливает блокировку. Расширения он не удаляет. Если какое-то расширение не подходит к новой версии, программа сообщит об этом при запуске.

Для баз с расширениями &ИзменениеИКонтроль надёжнее обновлять через Конфигуратор на копии: так вы увидите проблему до того, как рабочая база запустится без доработки.

Включение расширений после обновления и проверка их работы

Обновили основную конфигурацию — теперь возвращаем расширения по одному. Так проще понять, какое из них вызывает ошибку.

Проверка применимости

  1. В окне Конфигурация → Расширения конфигурации откройте дерево расширения.
  2. Запустите проверку применимости расширения к текущей конфигурации: команда находится в меню Конфигурация при открытом дереве расширения.
  3. Изучите список сообщений. Каждое указывает на конкретный заимствованный объект или метод.
  4. Если сообщений нет, установите флажок «Активно».

Как починить расширение

ПроблемаЧто сделать
Изменился текст метода под &ИзменениеИКонтрольСравнить новый текст метода с копией в расширении, перенести свои вставки, обновить копию
Заимствованный объект удалён из типовойУдалить заимствование и переписать доработку на новый объект
Изменилась заимствованная формаСравнить формы, при необходимости заново заимствовать форму и перенести свои элементы
Метод переименован или изменились параметрыНайти новый метод и перенести обработчик &Перед, &После или &Вместо

После правки сохраните расширение и выполните «Обновить конфигурацию базы данных» для него. Загрузка .cfe и обновление конфигурации базы — это два отдельных шага: пока второй не выполнен, изменения не действуют.

Что проверить руками

  • 🧾 Открыть форму каждого документа, у которого есть заимствованная форма.
  • 🖨️ Сформировать печатные формы из расширения.
  • 📊 Построить отчёты, добавленные расширением.
  • 🔁 Провести тестовый документ, если расширение перехватывает проведение.
  • 📌 Убедиться, что дополнительные реквизиты из расширения на месте и заполнены.

Нужно ли расширение после обновления

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

Ошибки при обновлении 1С с расширениями и как их исправить

Чаще всего проблемы проявляются при первом запуске после обновления. Ниже — симптомы и порядок действий.

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

Откат одного расширения

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

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

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

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