Как откатить изменения в расширении 1С до конфигурации базы данных?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Способ 1: Использование внутреннего меню окна метаданных расширения

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

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

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

Способ 2: Управление через фокус главного меню

Существует еще один нюанс работы интерфейса платформы 1С v8.3. Пункты главного меню «Конфигурация» динамически меняются в зависимости от того, какое окно в данный момент активно (находится в фокусе). Рассмотрим, как это использовать:

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

Способ 3: Сравнение с конфигурацией базы данных для контроля изменений

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

В том же меню Действия окна метаданных расширения выберем пункт Сравнить с конфигурацией БД. Система проанализирует различия между вашей текущей (редактируемой) версией и той, что реально работает в базе данных. Это позволит вам:

Способ 4: Работа через Хранилище конфигурации расширения

Если ваша разработка ведется в крупной компании или команде, скорее всего, вы используете механизм Хранилища. Для расширений он работает аналогично основной конфигурации. В этом случае «откат» можно выполнить более элегантно:

Выясним причину необходимости отката. Если вы просто «запороли» текущий захваченный объект, достаточно выполнить команду Хранилище — Отменить захват. Платформа предложит откатить изменения в объекте и вернет его состояние к версии, актуальной в хранилище. Это гораздо безопаснее, чем откат всей конфигурации БД расширения, так как вы работаете атомарно с конкретными объектами метаданных.

Способ 5: Использование резервных копий в формате .cfe

Посмотрим на ситуацию с точки зрения опытных разработчиков. Перед началом любых масштабных или рискованных правок в расширении (например, изменение структуры данных или удаление заимствованных объектов) крайне полезно делать «ручной бэкап». Это делается следующим образом:

В окне метаданных расширения выберите Действия — Сохранить конфигурацию расширения в файл.... Вы получите файл с расширением .cfe. Если в процессе работы что-то пойдет не так, и даже команда Вернуться к конфигурации БД не поможет (например, если вы уже случайно нажали «Обновить конфигурацию БД»), вы сможете просто загрузить старую рабочую версию через Действия — Загрузить конфигурацию расширения из файла....

Важные замечания при удалении объектов

Разберем важный технический аспект. Если ваше расширение содержит собственные объекты (например, справочник ДопРеквизитыНоменклатуры), которые уже были применены к базе данных, то при попытке отката или удаления этих объектов 1С может предупредить о потере данных.

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

Автоматизация через командную строку

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


"C:\Program Files\1cv8\8.3.XX.XXXX\bin\1cv8.exe" DESIGNER /F "D:\Base1C" /N "Admin" /P "Pass" /ExtensionUpdateCfg "MyExtensionName"

Хотя команда прямого отката (Rollback) в пакетном режиме для расширений встречается редко, знание параметров /ExtensionUpdateCfg и /ExtensionLoadCfg позволяет автоматизировать процессы развертывания и восстановления версий расширений в пакетном режиме.

Что делать, если пункт меню «серый»?

Иногда программисты сталкиваются с тем, что пункт Вернуться к конфигурации БД недоступен, хотя изменения точно есть. Проанализируем ситуацию: это может быть программный «глюк» кеша конфигуратора. В таком случае попробуйте:

  1. Закрыть окно метаданных расширения и открыть его заново.
  2. Закрыть список расширений и открыть его снова.
  3. В крайнем случае — перезапустить конфигуратор. Обычно после перезапуска связь между состоянием Конфигурация и Конфигурация БД актуализируется, и команда становится доступной.

Используя предложенные методы, мы можем эффективно управлять версиями наших расширений, минимизируя риски потери кода и данных. Помните, что аккуратная работа с меню Действия внутри окна расширения — это ключ к стабильной разработке в среде 1С.

← На главную