В процессе разработки на платформе 1С нередко возникают ситуации, когда по неосторожности одно расширение загружается поверх другого. Если в затертом расширении содержались важные доработки, логично возникает вопрос: можно ли вернуть состояние объекта к предыдущему моменту? Давайте разберем эту ситуацию и рассмотрим, какие шаги предпринять для спасения данных.
Первое, что необходимо проанализировать — это состояние конфигурации базы данных. В системе 1С существует разделение между конфигурацией, которую вы правите, и конфигурацией базы данных. Если вы загрузили расширение, но еще не нажимали кнопку «Обновить конфигурацию базы данных» (клавиша F7), ситуация является обратимой без использования сторонних резервных копий.
Если же вы уже выполнили обновление, то данные в метаданных были перезаписаны на уровне SQL-структур, и простого «отката» средствами конфигуратора будет недостаточно. В таком случае поможет только развертывание резервной копии базы данных (например, файла .dt или SQL-бэкапа) в отдельном каталоге с последующим извлечением затертого расширения.
Если обновление конфигурации базы данных еще не было произведено, платформа хранит предыдущее состояние метаданных расширения. Чтобы вернуть его, выполните следующие действия:
Эта команда принудительно возвращает текущее состояние объекта в конфигураторе к тому, что в данный момент зафиксировано в КонфигурацияБД. Это действие фактически отменяет ваши последние изменения по загрузке «неправильного» расширения и возвращает работоспособную версию.
Если вы уже нажали F7, восстановить изменения внутри текущей базы стандартными средствами платформы не удастся. В этом случае мы рекомендуем действовать по следующему алгоритму:
.dt или архив SQL) в отдельный каталог на сервере или локальном компьютере.Часто разработчики сталкиваются с тем, что формат бэкапа кажется неудобным или «сложным для распаковки». Однако, как показывает практика, развернуть копию базы данных гораздо проще и быстрее, чем пытаться восстановить по памяти логику крупной Обработки или Отчета, которые были утеряны.
Чтобы избежать подобных инцидентов в будущем, мы настоятельно рекомендуем придерживаться нескольких правил безопасной разработки:
ХранилищеКонфигурации. Это дает доступ к истории версий и позволяет откатиться к любой сохраненной точке.1C:Enterprise Development Tools (EDT). Интеграция с Git позволяет фиксировать изменения на уровне кода, что исключает потерю данных при случайной перезаписи расширения.Помните: если вы вовремя остановились и не перезаписали метаданные в базе, проблема решается в несколько кликов через меню Действия. Если же процесс обновления был запущен, не тратьте время на попытки «починить» текущую базу — лучше потратьте его на корректное извлечение данных из резервной копии.