В процессе разработки и администрирования информационных баз на платформе 1С:Предприятие разработчики регулярно сталкиваются с выгрузкой структуры метаданных в файл с расширением .cf. В меню конфигуратора доступны две похожие команды: «Конфигурация -> Сохранить конфигурацию в файл...» и «Конфигурация -> Конфигурация базы данных -> Сохранить конфигурацию БД в файл...». Разберем детально, чем они отличаются, как устроена внутренняя архитектура конфигураций в 1С и в каких сценариях следует выбирать конкретный вариант.
Архитектура конфигураций в платформе 1С:Предприятие
Для понимания различий между выгрузками проанализируем, какие виды конфигураций одновременно сосуществуют внутри одной информационной базы 1С:
Основная конфигурация (конфигурация разработчика): это рабочее пространство программиста. Когда мы редактируем модули, добавляем реквизиты или создаем новые документы, все изменения вносятся именно сюда. Эта конфигурация доступна для редактирования, но пока изменения не сохранены в базу данных, они не влияют на работу пользователей.
Конфигурация базы данных (конфигурация БД): это фактическая рабочая структура, под которую построены таблицы СУБД и в которой в данный момент работают пользователи информационной базы. Она обновляется только в момент выполнения команды «Обновить конфигурацию базы данных» (клавиша F7) или при динамическом обновлении.
Конфигурация поставщика: эталонная конфигурация от вендора (например, фирмы «1С»), которая используется для контроля изменений и автоматизированного обновления типовых решений (их может быть несколько, если включено несколько подсистем от разных поставщиков).
Главное отличие команд выгрузки
Рассмотрим, в чем заключается практическая разница между выгрузками:
Команда «Сохранить конфигурацию в файл» выгружает текущее состояние основной конфигурации. Если программист внес изменения в дерево метаданных или программный код, но еще не применил их к структуре базы (не нажал клавишу F7), в итоговый файл .cf попадут все свежие, еще не зафиксированные в базе данных правки.
Команда «Сохранить конфигурацию БД в файл» выгружает строго зафиксированную структуру конфигурации базы данных. В файл попадает то состояние метаданных, которое реально используется работающими пользователями и с которым сопоставлены таблицы СУБД. Все непринятые правки разработчика из основной конфигурации игнорируются.
Если в информационной базе нет непринятых изменений (значок базы данных в дереве метаданных неактивен, пиктограмма «колбы» или «бочонка» серая), обе конфигурации полностью идентичны. В таком случае файлы, полученные обоими способами, будут абсолютно одинаковыми.
Практические сценарии использования выгрузки конфигурации БД
Разберем типичные ситуации, когда требуется выгружать именно конфигурацию базы данных:
Создание быстрой точки отката перед обновлением: перед накатыванием сложного релиза или масштабных доработок рекомендуется сохранить конфигурацию БД. Это позволит быстро вернуться к исходной структуре метаданных без необходимости полного восстановления базы из бэкапа СУБД.
Аварийное завершение реструктуризации: если в процессе сохранения изменений (F7) произошел сбой (например, отключилось питание или переполнился диск), основная конфигурация может оказаться в измененном состоянии, тогда как таблицы СУБД остались на предыдущей версии. Выгрузка конфигурации БД помогает зафиксировать точное состояние рабочей схемы данных.
Диагностика проблем после динамического обновления: при частом применении демонического (динамического) обновления может возникать рассинхронизация кэша. Сохранение конфигурации БД в файл позволяет открыть ее в отдельной тестовой базе и точно проверить, какой код сейчас исполняется на сервере.
Встроенные альтернативы без выгрузки в файл
Посмотрим на встроенные механизмы платформы, позволяющие работать с различиями конфигураций внутри конфигуратора:
Откат изменений: если вы внесли правки в основную конфигурацию и хотите вернуть все к состоянию рабочей базы, сохранять файлы не требуется — достаточно выполнить команду Конфигурация -> Конфигурация базы данных -> Вернуться к конфигурации БД.
Сравнение конфигураций: сопоставить рабочую и редактируемую версии можно через меню Конфигурация -> Сравнить конфигурации, где в качестве источников можно напрямую выбрать «Основную конфигурацию» и «Конфигурацию базы данных».
Автоматизация выгрузки через командную строку
Выгрузку обоих типов конфигураций можно настроить в пакетном режиме с помощью параметров запуска платформы 1С:
Выгрузка основной конфигурации выполняется с ключом /DumpCfg:
Проанализируем важные технические нюансы файлов .cf:
Отсутствие пользовательских данных: файлы конфигураций любого типа содержат только структуру метаданных, формы, макеты, модули и предопределенные элементы. Документы, элементы справочников и записи регистров в файл .cf не попадают.
Работа с расширениями: файл .cf не включает в себя подключенные расширения конфигурации. Их сохранение выполняется отдельно через меню Конфигурация -> Расширения конфигурации в файлы с расширением .cfe.
Полная взаимозаменяемость: формат файлов .cf идентичен независимо от способа выгрузки. Полученный файл можно загружать в чистые базы, использовать для обновления или передавать на анализ другим разработчикам.