Новая версия .cfe в рабочей базе: загрузка, применение и откат

· 10 мин

Содержание

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

Частая ошибка — удалить старое расширение и добавить новое «с нуля». Так теряются данные, которые расширение хранило в собственных справочниках и реквизитах, а заодно настройки флажков «Активно» и «Безопасный режим». Загрузка поверх существующего расширения такой проблемы не создаёт. Порядок ниже подходит для платформы 8.3 (расширения появились в 8.3.6) и любой типовой конфигурации: БП 3.0, ЗУП 3.1, УТ 11, КА, ERP.

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

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

Обновлять расширение приходится в трёх случаях:

  • 📦 разработчик или поставщик прислал новую версию .cfe с исправлениями или новыми функциями;
  • 🔄 вы обновили основную конфигурацию, и старое расширение перестало к ней подходить: заимствованный объект переименован, у формы изменился состав элементов;
  • 🛠 сами доработали расширение в другой базе (копии, базе разработчика) и переносите изменения в рабочую.

Что внутри расширения, влияет на риск обновления:

Что содержит расширениеЧто происходит при обновленииРиск
Только заимствованные формы, модули, макеты печатных формМеняется код и интерфейс, данные не затрагиваютсяНизкий
Собственные реквизиты у заимствованных справочников и документовПлатформа реструктурирует таблицы расширенияСредний
Собственные справочники, регистры, документыРеструктуризация; удаление объекта в новой версии удаляет его данныеВысокий

Если в новой версии разработчик удалил реквизит или справочник, данные в нём пропадут после обновления базы данных. Поэтому перед загрузкой полезно спросить у разработчика, менялся ли состав объектов, или сравнить версии самому (как — в разделе 3).

Подготовка к обновлению расширения: копии и совместимость

Сохраните текущую версию расширения

Это главная страховка: именно эта копия понадобится для быстрого отката.

  1. Откройте базу в режиме конфигуратора.
  2. Выберите Конфигурация → Расширения конфигурации.
  3. Выделите расширение и в меню окна выберите Конфигурация → Сохранить конфигурацию в файл....
  4. Сохраните файл с версией в имени, например МоеРасширение_1.0.3.cfe.

Номер текущей версии виден в свойствах расширения: дважды щёлкните его корневой элемент в дереве и найдите свойство «Версия».

Сделайте выгрузку всей базы

Если в расширении есть собственные данные, одного .cfe мало: он хранит структуру, а не записи. Нужна выгрузка .dt (Администрирование → Выгрузить информационную базу...) или резервная копия средствами СУБД для серверной базы.

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

Проверьте совместимость новой версии

Перед загрузкой сверьте три вещи:

  • 🔢 Для какого релиза конфигурации собрана версия. Поставщики обычно пишут это в описании. Если новая версия расширения рассчитана на свежий релиз БП, а у вас старый, сначала обновите основную конфигурацию.
  • 🧩 Режим совместимости. Он задан в свойствах расширения. Если он новее, чем поддерживает ваша платформа, расширение не загрузится.
  • 🏷 Имя расширения. У загружаемого файла и у расширения в базе оно должно совпадать. Иначе вы получите в списке два разных расширения с одинаковым назначением.

Самый надёжный способ проверить совместимость — повторить обновление на копии базы. Загрузите .dt в новую пустую базу, обновите расширение там и откройте пару документов, которых оно касается.

Пошаговое обновление расширения в конфигураторе

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

СпособКогда выбратьРиски
Загрузить конфигурацию из файла...Расширение целиком от поставщика, в базе его никто не правилЛокальные правки в расширении будут потеряны
Сравнить, объединить с конфигурацией из файла...В рабочей базе вносили свои правки в это расширениеТребует внимательного разбора отличий

Способ 1. Загрузка новой версии из файла

  1. Откройте базу в конфигураторе под пользователем с правами администратора.
  2. Выберите Конфигурация → Расширения конфигурации.
  3. Выделите в списке расширение, которое обновляете.
  4. В меню окна выберите Конфигурация → Загрузить конфигурацию из файла....
  5. Укажите новый файл .cfe и подтвердите замену.
  6. Выберите Конфигурация → Обновить конфигурацию базы данных в том же окне расширений.
  7. Если платформа покажет список изменений структуры, прочитайте его. Строки про удаление объектов означают потерю их данных.
  8. Подтвердите обновление и дождитесь сообщения о завершении.

После загрузки откройте свойства расширения и проверьте, что номер в свойстве «Версия» сменился на новый.

Способ 2. Сравнение и объединение

Этот путь нужен, если кто-то правил расширение прямо в рабочей базе: поправил макет, добавил реквизит на форму. При прямой загрузке эти правки исчезнут.

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

Окно сравнения само по себе полезно: даже если правок не было, через него видно, какие объекты разработчик удалил. Это и есть быстрая проверка из первого раздела.

Проверьте флажки расширения

В списке расширений у каждого есть настройки, которые влияют на работу:

  • ✅ «Активно» — если снят, расширение загружено, но не работает ;
  • 🔒 «Безопасный режим» — ограничивает код расширения (нет доступа к файлам, внешним компонентам, COM). Если новая версия работает с файлами или внешним оборудованием, поставщик обычно пишет, что флажок нужно снять;
  • 🛡 «Защита от опасных действий» — включает предупреждения при опасных операциях.

После загрузки убедитесь, что флажки стоят так же, как стояли до обновления, и что разработчик не требует их изменить.

Обновление расширения в файловой, серверной и облачной базе

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

Клиент-серверная база . Действия в конфигураторе те же. Подключение к базе указывайте через сервер (Сервер\ИмяБазы). Изменения увидят пользователи, которые заново откроют программу; у работающих остаётся старая версия до перезапуска. Если пользователи получают сообщение о смене версии и предложение перезапуститься — это нормально.

Облако. В сервисах на технологии 1cFresh доступа к конфигуратору у пользователя нет. Расширения загружают из режима предприятия, и они проходят проверку провайдера по его регламенту — уточните порядок у вашего поставщика облака. При аренде отдельного сервера (VDS, RDP-доступ к своей базе) конфигуратор доступен, и работает обычная инструкция.

Без конфигуратора, из режима «Предприятие». В БП 3.0, ЗУП 3.1 и УТ 11 расширения управляются формой Администрирование → Печатные формы, отчеты и обработки → Расширения. Там новую версию загружают из файла поверх существующей. Так удобно, когда у бухгалтера нет доступа к конфигуратору, но сравнения версий и разбора отличий в этом режиме нет.

Автоматизация обновления: пакетный режим конфигуратора

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

Пример для файловой базы (bat-файл):

@echo off
set V8="C:\Program Files\1cv8\8.3.25.1374\bin\1cv8.exe"
set BASE=D:\Bases\Buh
set EXT=МоеРасширение
set CFE=D:\Ext\МоеРасширение_1.0.4.cfe

rem 1. Сохраняем текущую версию для отката
%V8% DESIGNER /F"%BASE%" /N"Админ" /P"пароль" /DumpCfg "D:\Ext\backup_%EXT%.cfe" -Extension "%EXT%" /Out "D:\Ext\dump.log"

rem 2. Загружаем новую версию и обновляем базу данных
%V8% DESIGNER /F"%BASE%" /N"Админ" /P"пароль" /LoadCfg "%CFE%" -Extension "%EXT%" /UpdateDBCfg -Extension "%EXT%" /Out "D:\Ext\update.log"

Номер платформы в пути V8 подставьте свой. Для серверной базы вместо /F"путь" укажите /S"Сервер\ИмяБазы".

Что учесть в скрипте:

  • 📝 Ключ /Out пишет лог. Проверяйте его после каждого запуска: конфигуратор в пакетном режиме не показывает окон с ошибками.
  • 🔐 Пароль в bat-файле — уязвимое место. Держите скрипт в каталоге, доступном только администратору, или передавайте пароль из защищённого хранилища.
  • 📂 Если расширение хранится в Git в виде XML-файлов (так работают в EDT и при групповой разработке), вместо /LoadCfg используют /LoadConfigFromFiles с тем же ключом -Extension.

Для массовых обновлений администраторы применяют готовые инструменты на OneScript, например vanessa-runner. Они оборачивают те же команды конфигуратора и добавляют логирование. Набор команд и ключей смотрите в справке самой утилиты: он меняется от версии к версии.

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

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

Что проверить сразу

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

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

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

Если новая версия работает с ошибками, откат делается той же процедурой, что и обновление:

  1. Откройте Конфигурация → Расширения конфигурации.
  2. Выделите расширение и выполните Конфигурация → Загрузить конфигурацию из файла..., указав сохранённый до обновления .cfe.
  3. Обновите конфигурацию базы данных.

Откат через .cfe возвращает код и структуру, но не данные. Если новая версия добавила реквизиты, а пользователи уже их заполнили, при откате эти значения удалятся. Если новая версия что-то удалила, старые данные не вернутся — их можно взять только из выгрузки .dt.

Восстановление из .dt откатит всю базу на момент выгрузки, включая документы, введённые после неё. Поэтому выгрузку делают непосредственно перед обновлением, а не за неделю.

Ошибки при обновлении расширения и их причины

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

Частые вопросы об обновлении расширений 1С

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