В процессе разработки в среде 1С:Предприятие 8.3 часто возникает ситуация, когда внесенные в расширение изменения оказываются ошибочными или избыточными. Если изменения еще не были применены к конфигурации базы данных (не была нажата клавиша F7 или кнопка «Обновить конфигурацию БД»), разработчик может захотеть вернуть состояние расширения к последней сохраненной в базе версии. Для основной конфигурации эта процедура стандартна, но в интерфейсе расширений нужная команда скрыта глубже. Разберем подробно, как выполнить откат изменений и какие дополнительные инструменты помогут обезопасить вашу разработку.
Это основной и самый эффективный способ решения проблемы, когда пункты главного меню конфигуратора не активны для расширения. Разберем по шагам, как найти нужную команду:
Справочники, Документы и т.д.).Проанализируем ситуацию: почему разработчики 1С вынесли эту команду именно туда? Это связано с тем, что конфигуратор может работать одновременно с несколькими расширениями и основной конфигурацией. Чтобы система понимала, для какого именно объекта нужно выполнить откат, необходимо явное указание контекста через окно метаданных этого расширения.
Существует еще один нюанс работы интерфейса платформы 1С v8.3. Пункты главного меню «Конфигурация» динамически меняются в зависимости от того, какое окно в данный момент активно (находится в фокусе). Рассмотрим, как это использовать:
Если вы выделите строку с расширением в общем списке расширений, а затем перейдете в главное меню Конфигурация, вы можете заметить, что там появляются специфические подпункты. Однако наиболее надежный способ — это когда открыто окно дерева объектов расширения. В этом случае в главном меню может появиться раздел Конфигурация расширения, дублирующий функции работы с базой данных. Если же пункт остается «серым» (неактивным), воспользуйтесь Способом 1, описанным выше.
Прежде чем выполнять полный откат, который безвозвратно удалит все ваши текущие доработки в расширении, рекомендуется выполнить проверку. Рассмотрим, как это сделать:
В том же меню Действия окна метаданных расширения выберем пункт Сравнить с конфигурацией БД. Система проанализирует различия между вашей текущей (редактируемой) версией и той, что реально работает в базе данных. Это позволит вам:
Если ваша разработка ведется в крупной компании или команде, скорее всего, вы используете механизм Хранилища. Для расширений он работает аналогично основной конфигурации. В этом случае «откат» можно выполнить более элегантно:
Выясним причину необходимости отката. Если вы просто «запороли» текущий захваченный объект, достаточно выполнить команду Хранилище — Отменить захват. Платформа предложит откатить изменения в объекте и вернет его состояние к версии, актуальной в хранилище. Это гораздо безопаснее, чем откат всей конфигурации БД расширения, так как вы работаете атомарно с конкретными объектами метаданных.
Посмотрим на ситуацию с точки зрения опытных разработчиков. Перед началом любых масштабных или рискованных правок в расширении (например, изменение структуры данных или удаление заимствованных объектов) крайне полезно делать «ручной бэкап». Это делается следующим образом:
В окне метаданных расширения выберите Действия — Сохранить конфигурацию расширения в файл.... Вы получите файл с расширением .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С.