В чем разница между сохранением конфигурации в файл и сохранением конфигурации базы данных в 1С

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

В процессе разработки и администрирования информационных баз на платформе 1С:Предприятие разработчики регулярно сталкиваются с выгрузкой структуры метаданных в файл с расширением .cf. В меню конфигуратора доступны две похожие команды: «Конфигурация -> Сохранить конфигурацию в файл...» и «Конфигурация -> Конфигурация базы данных -> Сохранить конфигурацию БД в файл...». Разберем детально, чем они отличаются, как устроена внутренняя архитектура конфигураций в 1С и в каких сценариях следует выбирать конкретный вариант.

Архитектура конфигураций в платформе 1С:Предприятие

Для понимания различий между выгрузками проанализируем, какие виды конфигураций одновременно сосуществуют внутри одной информационной базы 1С:

  1. Основная конфигурация (конфигурация разработчика): это рабочее пространство программиста. Когда мы редактируем модули, добавляем реквизиты или создаем новые документы, все изменения вносятся именно сюда. Эта конфигурация доступна для редактирования, но пока изменения не сохранены в базу данных, они не влияют на работу пользователей.
  2. Конфигурация базы данных (конфигурация БД): это фактическая рабочая структура, под которую построены таблицы СУБД и в которой в данный момент работают пользователи информационной базы. Она обновляется только в момент выполнения команды «Обновить конфигурацию базы данных» (клавиша F7) или при динамическом обновлении.
  3. Конфигурация поставщика: эталонная конфигурация от вендора (например, фирмы «1С»), которая используется для контроля изменений и автоматизированного обновления типовых решений (их может быть несколько, если включено несколько подсистем от разных поставщиков).

Главное отличие команд выгрузки

Рассмотрим, в чем заключается практическая разница между выгрузками:

  1. Команда «Сохранить конфигурацию в файл» выгружает текущее состояние основной конфигурации. Если программист внес изменения в дерево метаданных или программный код, но еще не применил их к структуре базы (не нажал клавишу F7), в итоговый файл .cf попадут все свежие, еще не зафиксированные в базе данных правки.
  2. Команда «Сохранить конфигурацию БД в файл» выгружает строго зафиксированную структуру конфигурации базы данных. В файл попадает то состояние метаданных, которое реально используется работающими пользователями и с которым сопоставлены таблицы СУБД. Все непринятые правки разработчика из основной конфигурации игнорируются.

Если в информационной базе нет непринятых изменений (значок базы данных в дереве метаданных неактивен, пиктограмма «колбы» или «бочонка» серая), обе конфигурации полностью идентичны. В таком случае файлы, полученные обоими способами, будут абсолютно одинаковыми.

Практические сценарии использования выгрузки конфигурации БД

Разберем типичные ситуации, когда требуется выгружать именно конфигурацию базы данных:

  1. Создание быстрой точки отката перед обновлением: перед накатыванием сложного релиза или масштабных доработок рекомендуется сохранить конфигурацию БД. Это позволит быстро вернуться к исходной структуре метаданных без необходимости полного восстановления базы из бэкапа СУБД.
  2. Аварийное завершение реструктуризации: если в процессе сохранения изменений (F7) произошел сбой (например, отключилось питание или переполнился диск), основная конфигурация может оказаться в измененном состоянии, тогда как таблицы СУБД остались на предыдущей версии. Выгрузка конфигурации БД помогает зафиксировать точное состояние рабочей схемы данных.
  3. Диагностика проблем после динамического обновления: при частом применении демонического (динамического) обновления может возникать рассинхронизация кэша. Сохранение конфигурации БД в файл позволяет открыть ее в отдельной тестовой базе и точно проверить, какой код сейчас исполняется на сервере.

Встроенные альтернативы без выгрузки в файл

Посмотрим на встроенные механизмы платформы, позволяющие работать с различиями конфигураций внутри конфигуратора:

  1. Откат изменений: если вы внесли правки в основную конфигурацию и хотите вернуть все к состоянию рабочей базы, сохранять файлы не требуется — достаточно выполнить команду Конфигурация -> Конфигурация базы данных -> Вернуться к конфигурации БД.
  2. Сравнение конфигураций: сопоставить рабочую и редактируемую версии можно через меню Конфигурация -> Сравнить конфигурации, где в качестве источников можно напрямую выбрать «Основную конфигурацию» и «Конфигурацию базы данных».

Автоматизация выгрузки через командную строку

Выгрузку обоих типов конфигураций можно настроить в пакетном режиме с помощью параметров запуска платформы 1С:

  1. Выгрузка основной конфигурации выполняется с ключом /DumpCfg:
    
    "C:\Program Files\1cv8\common\1cestart.exe" DESIGNER /IBConnectionString "..." /DumpCfg "C:\Backup\MainConfig.cf"
    
  2. Выгрузка конфигурации базы данных выполняется с ключом /DumpDBCfg:
    
    "C:\Program Files\1cv8\common\1cestart.exe" DESIGNER /IBConnectionString "..." /DumpDBCfg "C:\Backup\DatabaseConfig.cf"
    

Особенности и ограничения формата .cf

Проанализируем важные технические нюансы файлов .cf:

  1. Отсутствие пользовательских данных: файлы конфигураций любого типа содержат только структуру метаданных, формы, макеты, модули и предопределенные элементы. Документы, элементы справочников и записи регистров в файл .cf не попадают.
  2. Работа с расширениями: файл .cf не включает в себя подключенные расширения конфигурации. Их сохранение выполняется отдельно через меню Конфигурация -> Расширения конфигурации в файлы с расширением .cfe.
  3. Полная взаимозаменяемость: формат файлов .cf идентичен независимо от способа выгрузки. Полученный файл можно загружать в чистые базы, использовать для обновления или передавать на анализ другим разработчикам.
← На главную