Конфигурация в одном файле: как устроен .cf и что с ним делать в Конфигураторе

· 10 мин

Содержание

Файл CF в 1С — это вся конфигурация (справочники, документы, регистры, модули, формы, макеты, роли), упакованная в один файл с расширением .cf. Открыть его двойным щелчком нельзя: файл загружают в информационную базу через Конфигуратор командой Конфигурация → Загрузить конфигурацию из файла... и уже там смотрят и редактируют.

Частое заблуждение — что в CF лежит «база целиком». Нет: данных в нём нет ни одной строки. Ни контрагентов, ни проводок, ни списка пользователей. Только структура и программный код. Данные вместе с конфигурацией переносят другим форматом — .dt.

Что хранит файл конфигурации CF и откуда он берётся

Внутри CF — описание всех объектов метаданных и всё, что к ним привязано:

  • 📁 дерево метаданных: подсистемы, справочники, документы, регистры, планы счетов, обработки;
  • 🧩 модули с кодом на встроенном языке;
  • 🖼 формы, макеты печатных форм, картинки, стили;
  • 🔐 роли и права доступа к объектам;
  • 🏷 свойства самой конфигурации: имя, версия, поставщик, режим совместимости.

Сама учётная информация хранится отдельно — в файле 1Cv8.1CD файловой базы или в СУБД на сервере.

Где CF-файл обычно встречается на практике:

  1. В каталоге шаблонов. Установщик типовой конфигурации (setup.exe из дистрибутива) раскладывает файлы по папкам вида %APPDATA%\1C\1cv8\tmplts\1c\<конфигурация>\<версия>\. Там лежит 1cv8.cf — полная поставка релиза.
  2. У разработчика. Самописную или доработанную конфигурацию программист передаёт именно файлом .cf.
  3. В резервных копиях. Многие администраторы перед обновлением сохраняют конфигурацию в CF — это быстрее, чем выгружать всю базу.

Сделать такой файл из своей базы можно в Конфигураторе: Конфигурация → Сохранить конфигурацию в файл.... Монопольный доступ для этого не нужен, пользователи могут продолжать работать.

Чем CF отличается от CFU, CFE, DT и других форматов 1С

Путаница форматов — главная причина вопросов «загрузил файл, а он не загружается». Сводка:

РасширениеЧто внутриЧем открываютКогда нужен
.cfПолная конфигурация без данныхКонфигурация → Загрузить конфигурацию из файла или сравнение/объединениеПеренос, замена, эталон для сравнения
.cfuТолько изменения между релизамиКонфигурация → Поддержка → Обновить конфигурациюОбновление типовой на один шаг
.cfeРасширение конфигурацииМеню Конфигурация → Расширения конфигурацииДоработки без снятия с поддержки
.dtКонфигурация + все данныеАдминистрирование → Загрузить информационную базуПеренос базы, полная резервная копия
.epf / .erfВнешняя обработка / отчётФайл → Открыть в пользовательском режиме или в КонфигуратореРазовые инструменты, печатные формы
.1CDФайловая база целикомДобавляется в список базРабочий файл базы, не формат обмена

Ключевая разница между CF и CFU: CFU сам по себе неполный. Он применяется только к конкретному предыдущему релизу, иначе Конфигуратор откажется обновлять. Полный CF подходит для обновления с любой версии, но при сильно изменённой конфигурации обновление через него требует сравнения и объединения.

Если CFU не встаёт из-за «не того» релиза, возьмите из дистрибутива полный 1cv8.cf нужной версии и обновитесь через Поддержка → Обновить конфигурацию, указав его вместо CFU.

Как открыть CF-файл: три рабочих способа

Выбор зависит от цели: посмотреть код, развернуть конфигурацию с нуля или сравнить со своей базой.

Способ 1. Пустая база и загрузка из файла

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

  1. В окне запуска 1С нажмите Добавить → Создание новой информационной базы.
  2. Выберите вариант Создание информационной базы без конфигурации..., укажите пустую папку.
  3. Откройте новую базу кнопкой Конфигуратор.
  4. Выполните Конфигурация → Открыть конфигурацию, затем Конфигурация → Загрузить конфигурацию из файла... и укажите .cf.
  5. На вопрос об обновлении конфигурации базы данных ответьте «Да» (или потом нажмите F7).

После этого дерево метаданных, модули и формы доступны для просмотра. Базу можно запустить и в режиме 1С:Предприятие — с пустыми справочниками.

Способ 2. Сравнение без загрузки

Если нужно лишь понять, чем присланный CF отличается от вашей конфигурации, загружать его не обязательно.

  1. Откройте в Конфигураторе свою базу и конфигурацию.
  2. Выполните Конфигурация → Сравнить, объединить с конфигурацией из файла....
  3. Укажите CF и посмотрите дерево различий: изменённые объекты подсвечены, по каждому модулю можно открыть построчное сравнение.
  4. Если объединять не нужно — просто закройте окно, не нажимая Выполнить.

Способ 3. Создание базы из шаблона

Для типовых конфигураций, установленных из дистрибутива: Добавить → Создание новой информационной базы → Создание информационной базы из шаблона. В списке будут все версии из каталога шаблонов. Платформа сама возьмёт 1cv8.cf из нужной папки.

Что вы хотите сделать с CF-файлом?

Редактирование CF-файла: что можно менять, а что заблокировано

Сам файл не редактируют — редактируют конфигурацию, загруженную в базу, а потом сохраняют её в новый CF. Порядок такой: загрузили → изменили в Конфигураторе → Конфигурация → Сохранить конфигурацию в файл....

Что мешает правке и как с этим быть:

  • 🔒 Конфигурация на поддержке с запретом изменений. Объекты типовой открываются только для чтения. Разрешить правку можно в Конфигурация → Поддержка → Настройка поддержки кнопкой включения возможности изменения. После этого обновления типовой пойдут через сравнение и объединение, а это заметно дольше.
  • 🙈 Модули без исходных текстов. Разработчик может создать поставку, в которой часть модулей скомпилирована без исходного кода. Такой модуль работает, но открыть его текст нельзя. Это решение автора — просите у него версию с исходниками.
  • 🧱 Режим совместимости. Если в свойствах конфигурации стоит режим совместимости новее, чем ваша платформа, CF не загрузится. Нужна платформа с номером версии не ниже указанного режима.

Для доработок типовой лучше подходит расширение (.cfe, появилось в 8.3.6). Основная конфигурация остаётся на полной поддержке, обновления ставятся без объединения, а ваши изменения хранятся отдельно.

Перед загрузкой чужого CF в рабочую базу выгрузите базу в .dt — Администрирование → Выгрузить информационную базу... в Конфигураторе. Загрузка CF заменяет конфигурацию целиком, и откат без копии невозможен.

Правка конфигурации в XML через Notepad++ и сборка обратно в CF

Иногда удобнее править не в Конфигураторе, а в текстовом редакторе: массово заменить строку во всех модулях, поправить свойство у сотни реквизитов, положить конфигурацию в Git. Для этого у платформы есть выгрузка в файлы.

Шаг 1. Разложить CF на XML-файлы

  1. Загрузите CF в отдельную базу (способ 1 выше).
  2. Выполните Конфигурация → Выгрузить конфигурацию в файлы... и укажите пустую папку.

Получится корневой Configuration.xml и каталоги по видам объектов: Catalogs, Documents, CommonModules и т. д. Описания объектов — в .xml, код модулей — в файлах .bsl.

Шаг 2. Отредактировать в Notepad++

Открывайте нужные файлы в Notepad++ или другом редакторе с подсветкой XML. Правила, которые спасают от ошибок загрузки:

  • не меняйте кодировку при сохранении — оставьте ту, в которой файл выгружен (UTF-8);
  • не трогайте атрибуты uuid: по ним платформа сопоставляет объекты, смена UUID превращает объект в «новый», а старый удалится вместе с данными;
  • имена объектов меняйте согласованно — в описании объекта и во всех ссылках на него, иначе загрузка остановится с ошибкой;
  • для массовой замены в модулях используйте Поиск → Найти в файлах, ограничив маску *.bsl.

Слепая правка XML описаний (.xml) опаснее правки кода (.bsl). Ошибка в модуле всплывёт при синтаксическом контроле, ошибка в описании реквизита может молча изменить структуру таблиц.

Шаг 3. Собрать конфигурацию и сохранить новый CF

  1. В той же базе выполните Конфигурация → Загрузить конфигурацию из файлов... и укажите папку. В платформе 8.3 можно загрузить не всю папку, а только выбранные изменённые файлы.
  2. Запустите Конфигурация → Проверка конфигурации... — она поймает ошибки синтаксиса и битые ссылки на объекты.
  3. Сохраните результат: Конфигурация → Сохранить конфигурацию в файл....

В сети встречаются сторонние утилиты, которые распаковывают контейнер CF напрямую, без платформы (например, open-source v8unpack). Формат контейнера не документирован, поэтому для правки используйте штатную выгрузку в XML: её результат платформа гарантированно принимает обратно.

Где CF-файлы реально нужны: сценарии из практики

  • 🔄 Перенос доработок с тестовой базы на рабочую. Программист сохраняет CF из копии, на рабочей базе его подключают через сравнение и объединение — переносятся только отмеченные объекты.
  • 🧯 Страховка перед обновлением. CF сохраняется за минуту и весит меньше .dt. Если обновление пошло не так, конфигурацию возвращают из файла, данные не трогаются (при условии, что структура базы ещё не обновлялась).
  • 🔍 Аудит чужих доработок. Пришёл CF от подрядчика — сравните с типовой того же релиза и увидите каждый изменённый модуль.
  • 🧪 Развёртывание чистой базы. Для обучения или теста: пустая база + CF, без копирования рабочих данных и персональных сведений сотрудников.
  • 🩹 Восстановление после сбоя Конфигуратора. Если основная конфигурация «сломалась» после неудачного объединения, а конфигурация базы данных цела, сохраните её через Конфигурация → Конфигурация базы данных → Сохранить конфигурацию БД в файл... и загрузите обратно как основную.

CF от неизвестного автора — это исполняемый код. Модули работают с правами пользователя и могут читать файлы на диске или обращаться к внешним ресурсам. Открывайте такие файлы в отдельной базе и просматривайте общие модули до запуска в рабочем контуре.

Пакетная выгрузка и загрузка CF из командной строки

Все действия выше выполняются без интерфейса — через пакетный режим Конфигуратора. Это основа ночных копий и сборки конфигураций в CI.

Основные ключи запуска 1cv8.exe DESIGNER:

КлючЧто делает
/DumpCfg <файл>Сохраняет основную конфигурацию в CF
/DumpDBCfg <файл>Сохраняет конфигурацию базы данных в CF
/LoadCfg <файл>Загружает CF как основную конфигурацию
/UpdateDBCfgОбновляет конфигурацию базы данных
/DumpConfigToFiles <каталог>Выгружает конфигурацию в XML-файлы
/LoadConfigFromFiles <каталог>Загружает конфигурацию из XML-файлов
/Out <файл>Пишет журнал выполнения в текстовый файл

Пример bat-файла для ежедневного сохранения конфигурации файловой базы с датой в имени:

@echo off
set V8="C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe"
set BASE=D:\Bases\Buh
set OUT=D:\Backup\cf
set D=%date:~6,4%-%date:~3,2%-%date:~0,2%

%V8% DESIGNER /F "%BASE%" /N "Администратор" /P "пароль" ^
  /DisableStartupMessages ^
  /DumpCfg "%OUT%\buh_%D%.cf" ^
  /Out "%OUT%\log_%D%.txt"

Номер платформы в пути замените на свой. Разбор даты %date:~6,4% рассчитан на русский формат ДД.ММ.ГГГГ. Для серверной базы вместо /F используется /S "сервер\имябазы".

Сборка CF из XML-исходников, лежащих в Git, — те же ключи в другой последовательности:

%V8% DESIGNER /F "D:\Bases\Build" /N "Администратор" /P "пароль" ^
  /LoadConfigFromFiles "D:\repo\src" /UpdateDBCfg ^
  /DumpCfg "D:\out\release.cf" /Out "D:\out\build.txt"

Пароль в bat-файле лежит открытым текстом. Создайте для пакетных операций отдельного пользователя с ролью администратора и закройте доступ к папке со скриптом.

Проверяйте файл журнала после каждого запуска: при ошибке Конфигуратор завершается молча, а причина видна только в /Out.

Ошибки при работе с CF-файлами и как их не допустить

Диагностика: выберите симптом

Частые вопросы о CF-файлах

Есть ли в CF-файле пароли и список пользователей?
Нет. Пользователи информационной базы и их пароли хранятся в самой базе, а не в конфигурации. В CF есть только роли — наборы прав, которые потом назначают пользователям.
Чем «Сохранить конфигурацию в файл» отличается от сохранения конфигурации БД?
Первая команда сохраняет основную конфигурацию — ту, что редактируется в Конфигураторе. Вторая сохраняет конфигурацию базы данных — ту, с которой сейчас работают пользователи. Пока изменения не применены через F7, они различаются.
Можно ли сделать CFU из двух CF-файлов?
Да, если вы поставщик конфигурации. В меню Конфигурация → Поставка конфигурации есть создание файлов поставки и обновления: указываете CF предыдущей версии, и платформа формирует CFU с разницей.
Можно ли открыть CF без установленной платформы 1С?
Штатно — нет. Сторонние распаковщики показывают внутренности контейнера, но получить пригодный для работы результат и собрать CF обратно надёжно можно только платформой.
Подойдёт ли CF от БП 3.0 для обновления другой конфигурации?
Нет. Обновление через поддержку требует, чтобы CF был той же конфигурации от того же поставщика. Загрузка «чужого» CF поверх рабочей базы заменит конфигурацию и удалит несовпадающие объекты вместе с данными.