Ситуация, когда после некорректного сравнения и объединения конфигураций теряется важный программный код, является критической для любого разработчика. Часто возникает иллюзия, что стандартный XML-файл, предлагаемый системой для сохранения настроек объединения, может служить своеобразным «бэкапом». В рамках данной статьи мы подробно разберем, что именно содержится в таких файлах, можно ли из них извлечь утраченные данные и какие шаги необходимо предпринять для спасения конфигурации.
Для начала проанализируем, что представляет собой XML-файл, который 1С:Предприятие предлагает сохранить в окне сравнения и объединения. Многие начинающие разработчики полагают, что это полная выгрузка изменений, но это не так. Разберем структуру этого файла, который официально называется MergeSettings (настройки объединения).
Рассмотрим стандартное содержимое этого файла. В нем сохраняются:
Проанализируем сообщение опытных участников форума: если при объединении вы просто оставили настройки по умолчанию, то в XML-файле не будет самого исходного текста модулей. Там будет лишь инструкция для системы: <MergeRule>DoNotMerge</MergeRule> или <MergeRule>MergeWithPriority</MergeRule>. Таким образом, восстановить конфигурацию целиком из этого файла технически невозможно.
Существует еще один тип XML-файла — это «Отчет о сравнении конфигураций». Если вы сформировали его перед объединением и сохранили в формате XML, ситуация меняется. В таком отчете действительно фиксируются различия в текстах модулей.
Посмотрим, как выглядит структура изменений в таком файле. Текст кода там обычно представлен в виде фрагментов «Было» и «Стало». Однако, даже имея такой файл, вы не сможете нажать кнопку «Загрузить» в Конфигураторе. Вам придется выполнять следующие действия:
Module.< на символ «меньше»).Если мы выяснили, что в вашем XML-файле только настройки (галочки), а резервной копии в формате .cf под рукой нет, не стоит отчаиваться. Разберем по шагам альтернативные способы поиска потерянных данных.
Шаг 1: Проверка временных файлов (Temp)
В процессе работы Конфигуратора 1С создает множество временных файлов. При сравнении и объединении система формирует временные образы конфигураций. Попробуем найти их в папке профиля пользователя:
%AppData%\Local\1C\1Cv8\...
Внутри папок с длинными идентификаторами баз данных ищите файлы с расширением .tmp. Иногда, изменив расширение на .cf, можно обнаружить одну из версий конфигурации, которая была открыта в момент объединения.
Шаг 2: Анализ таблицы Config в SQL-базе
Если ваша база данных работает на MS SQL Server или PostgreSQL, и вы еще не успели нажать «Обновить конфигурацию базы данных» (синий бочонок), ваш старый код все еще жив в таблице Config. Рассмотрим ситуацию: объединение прошло в Конфигураторе, основная конфигурация изменилась, но конфигурация базы данных (та, в которой работают пользователи) осталась прежней.
Вы можете выгрузить конфигурацию базы данных в файл .cf через меню: Конфигурация -> Сохранить конфигурацию базы данных в файл. Это вернет вам состояние системы до злополучного объединения.
Шаг 3: Использование кэша метаданных
На компьютерах разработчиков, которые ранее открывали эту базу, сохраняется кэш. Хотя он содержит скомпилированные модули, в некоторых случаях специализированные утилиты декомпиляции могут помочь восстановить логику, если объем потерянного кода исчисляется тысячами строк.
Рассмотрим, какие инструменты разработки позволяют полностью исключить риск потери кода из-за ошибок «новичков» или случайных нажатий кнопок.
Это стандартный механизм для коллективной разработки. Проанализируем его преимущества: даже если кто-то затрет ваш код в основной конфигурации, в хранилище сохраняется история всех помещений (среза версий). Вы всегда можете выполнить «Сравнить с версией из хранилища» и откатить изменения конкретного объекта.
Современная разработка на платформе 1С переходит в сторону использования EDT (Enterprise Development Tool). В этом случае конфигурация хранится не в бинарном файле, а в виде набора XML-файлов. Выясним, почему это надежнее:
Возьмем за правило: перед любым действием в меню «Сравнить и объединить» необходимо выгружать текущую конфигурацию в файл .cf. Это занимает несколько минут, но экономит часы и дни работы в случае ошибки.
Подводя итог, можно сказать: файл настроек объединения (XML) — это всего лишь «карта» того, как проходил процесс сопоставления объектов. Он крайне полезен, если вам нужно повторить точно такое же объединение на другой базе (например, перенести изменения из копии в рабочую базу), но он не является хранилищем программного кода. Всегда полагайтесь на полные резервные копии и хранилище конфигурации, чтобы ваша работа была в безопасности.