При совместной разработке конфигураций 1С нередко возникает необходимость сопоставить текущую дорабатываемую базу с состоянием хранилища. Основное опасение разработчиков в этот момент — случайно подключить базу к хранилищу или затереть свои локальные изменения. Выгружать конфигурацию хранилища в отдельный файл .cf каждый раз неудобно и долго. Разберем штатные инструменты платформы 1С:Предприятие, которые позволяют быстро и абсолютно безопасно выполнить такое сравнение.
Проанализируем самый надежный вариант, который исключает случайное изменение метаданных в вашей рабочей конфигурации. В платформе 1С предусмотрен специальный инструмент сопоставления, в котором физически отсутствует кнопка применения изменений.
Рассмотрим пошаговый порядок действий:
Платформа выполнит чтение метаданных напрямую из хранилища и откроет стандартное окно отчета о сравнении. В этом режиме нет кнопки «Выполнить», поэтому затереть текущие изменения невозможно даже случайно. При этом сохраняются все возможности детального анализа: просмотр различий в свойствах объектов, формах и построчное сравнение модулей.
Если в дальнейшем планируется выборочно перенести часть доработок из хранилища в локальную базу, разберем второй штатный инструмент платформы:
Важно: этот режим предназначен для объединения, поэтому в нем присутствует кнопка «Выполнить». Нажимать её следует только в том случае, если вы осознанно хотите применить выбранные изменения к текущей рабочей конфигурации.
Рассмотрим полезную особенность прямого подключения: при сравнении вы не ограничены только последней версией хранилища. В диалоге выбора хранилища можно открыть журнал истории и указать конкретную историческую версию по номеру, автору или дате помещения. Это крайне удобно, когда нужно выяснить, в какой именно момент код локальной базы разошелся с веткой разработки.
При этом подключение самой базы к хранилищу не регистрируется. Это означает, что:
Выясним причину, по которой прямое сравнение иногда может выполняться медленно. Если хранилище расположено в общей сетевой папке (файловый доступ по SMB), сравнение объемных конфигураций требует передачи большого количества мелких служебных файлов по сети. Для ускорения взаимодействия рекомендуется разворачивать сервер хранилища конфигураций (служба crserver, работающая по протоколам TCP/HTTP).
Также важно учитывать правила сопоставления объектов. Если конфигурация текущей базы изначально была создана не из этого хранилища, сопоставление метаданных будет выполняться по именам объектов, а не по внутренним уникальным идентификаторам (GUID). Это необходимо учитывать при анализе отчета о различиях.
Если для анализа требуются сторонние утилиты сравнения или привычнее работать с файлом .cf, не обязательно подключаться к базе вручную. Получить файл конфигурации нужной версии из хранилища можно с помощью пакетного запуска конфигуратора.
Посмотрим на пример пакетной команды Windows для выгрузки версии в файл:
DESIGNER /ConfigurationRepositoryPath "C:\Storage1C" /ConfigurationRepositoryUser "Admin" /ConfigurationRepositoryPassword "Pass" /ConfigurationRepositoryDumpCfg "C:\Temp\version_dump.cf" -v 145
Параметр -v позволяет указать точный номер требуемой версии хранилища. Полученный файл можно использовать для сопоставления через меню «Конфигурация — Сравнить конфигурации...» с выбором файла конфигурации.