Конфигурация в одном файле: как устроен .cf и что с ним делать в Конфигураторе
Содержание
Файл CF в 1С — это вся конфигурация (справочники, документы, регистры, модули, формы, макеты, роли), упакованная в один файл с расширением .cf. Открыть его двойным щелчком нельзя: файл загружают в информационную базу через Конфигуратор командой Конфигурация → Загрузить конфигурацию из файла... и уже там смотрят и редактируют.
Частое заблуждение — что в CF лежит «база целиком». Нет: данных в нём нет ни одной строки. Ни контрагентов, ни проводок, ни списка пользователей. Только структура и программный код. Данные вместе с конфигурацией переносят другим форматом — .dt.
Что хранит файл конфигурации CF и откуда он берётся
Внутри CF — описание всех объектов метаданных и всё, что к ним привязано:
- 📁 дерево метаданных: подсистемы, справочники, документы, регистры, планы счетов, обработки;
- 🧩 модули с кодом на встроенном языке;
- 🖼 формы, макеты печатных форм, картинки, стили;
- 🔐 роли и права доступа к объектам;
- 🏷 свойства самой конфигурации: имя, версия, поставщик, режим совместимости.
Сама учётная информация хранится отдельно — в файле 1Cv8.1CD файловой базы или в СУБД на сервере.
Где CF-файл обычно встречается на практике:
- В каталоге шаблонов. Установщик типовой конфигурации (
setup.exeиз дистрибутива) раскладывает файлы по папкам вида%APPDATA%\1C\1cv8\tmplts\1c\<конфигурация>\<версия>\. Там лежит1cv8.cf— полная поставка релиза. - У разработчика. Самописную или доработанную конфигурацию программист передаёт именно файлом
.cf. - В резервных копиях. Многие администраторы перед обновлением сохраняют конфигурацию в CF — это быстрее, чем выгружать всю базу.
Сделать такой файл из своей базы можно в Конфигураторе: Конфигурация → Сохранить конфигурацию в файл.... Монопольный доступ для этого не нужен, пользователи могут продолжать работать.
Чем CF отличается от CFU, CFE, DT и других форматов 1С
Путаница форматов — главная причина вопросов «загрузил файл, а он не загружается». Сводка:
| Расширение | Что внутри | Чем открывают | Когда нужен |
|---|---|---|---|
.cf | Полная конфигурация без данных | Конфигурация → Загрузить конфигурацию из файла или сравнение/объединение | Перенос, замена, эталон для сравнения |
.cfu | Только изменения между релизами | Конфигурация → Поддержка → Обновить конфигурацию | Обновление типовой на один шаг |
.cfe | Расширение конфигурации | Меню Конфигурация → Расширения конфигурации | Доработки без снятия с поддержки |
.dt | Конфигурация + все данные | Администрирование → Загрузить информационную базу | Перенос базы, полная резервная копия |
.epf / .erf | Внешняя обработка / отчёт | Файл → Открыть в пользовательском режиме или в Конфигураторе | Разовые инструменты, печатные формы |
.1CD | Файловая база целиком | Добавляется в список баз | Рабочий файл базы, не формат обмена |
Ключевая разница между CF и CFU: CFU сам по себе неполный. Он применяется только к конкретному предыдущему релизу, иначе Конфигуратор откажется обновлять. Полный CF подходит для обновления с любой версии, но при сильно изменённой конфигурации обновление через него требует сравнения и объединения.
Если CFU не встаёт из-за «не того» релиза, возьмите из дистрибутива полный 1cv8.cf нужной версии и обновитесь через Поддержка → Обновить конфигурацию, указав его вместо CFU.
Как открыть CF-файл: три рабочих способа
Выбор зависит от цели: посмотреть код, развернуть конфигурацию с нуля или сравнить со своей базой.
Способ 1. Пустая база и загрузка из файла
Подходит, чтобы спокойно изучить конфигурацию, ничего не трогая в рабочей базе.
- В окне запуска 1С нажмите
Добавить→Создание новой информационной базы. - Выберите вариант
Создание информационной базы без конфигурации..., укажите пустую папку. - Откройте новую базу кнопкой
Конфигуратор. - Выполните
Конфигурация → Открыть конфигурацию, затемКонфигурация → Загрузить конфигурацию из файла...и укажите.cf. - На вопрос об обновлении конфигурации базы данных ответьте «Да» (или потом нажмите
F7).
После этого дерево метаданных, модули и формы доступны для просмотра. Базу можно запустить и в режиме 1С:Предприятие — с пустыми справочниками.
Способ 2. Сравнение без загрузки
Если нужно лишь понять, чем присланный CF отличается от вашей конфигурации, загружать его не обязательно.
- Откройте в Конфигураторе свою базу и конфигурацию.
- Выполните
Конфигурация → Сравнить, объединить с конфигурацией из файла.... - Укажите CF и посмотрите дерево различий: изменённые объекты подсвечены, по каждому модулю можно открыть построчное сравнение.
- Если объединять не нужно — просто закройте окно, не нажимая
Выполнить.
Способ 3. Создание базы из шаблона
Для типовых конфигураций, установленных из дистрибутива: Добавить → Создание новой информационной базы → Создание информационной базы из шаблона. В списке будут все версии из каталога шаблонов. Платформа сама возьмёт 1cv8.cf из нужной папки.
Редактирование CF-файла: что можно менять, а что заблокировано
Сам файл не редактируют — редактируют конфигурацию, загруженную в базу, а потом сохраняют её в новый CF. Порядок такой: загрузили → изменили в Конфигураторе → Конфигурация → Сохранить конфигурацию в файл....
Что мешает правке и как с этим быть:
- 🔒 Конфигурация на поддержке с запретом изменений. Объекты типовой открываются только для чтения. Разрешить правку можно в
Конфигурация → Поддержка → Настройка поддержкикнопкой включения возможности изменения. После этого обновления типовой пойдут через сравнение и объединение, а это заметно дольше. - 🙈 Модули без исходных текстов. Разработчик может создать поставку, в которой часть модулей скомпилирована без исходного кода. Такой модуль работает, но открыть его текст нельзя. Это решение автора — просите у него версию с исходниками.
- 🧱 Режим совместимости. Если в свойствах конфигурации стоит режим совместимости новее, чем ваша платформа, CF не загрузится. Нужна платформа с номером версии не ниже указанного режима.
Для доработок типовой лучше подходит расширение (.cfe, появилось в 8.3.6). Основная конфигурация остаётся на полной поддержке, обновления ставятся без объединения, а ваши изменения хранятся отдельно.
Перед загрузкой чужого CF в рабочую базу выгрузите базу в .dt — Администрирование → Выгрузить информационную базу... в Конфигураторе. Загрузка CF заменяет конфигурацию целиком, и откат без копии невозможен.
Правка конфигурации в XML через Notepad++ и сборка обратно в CF
Иногда удобнее править не в Конфигураторе, а в текстовом редакторе: массово заменить строку во всех модулях, поправить свойство у сотни реквизитов, положить конфигурацию в Git. Для этого у платформы есть выгрузка в файлы.
Шаг 1. Разложить CF на XML-файлы
- Загрузите CF в отдельную базу (способ 1 выше).
- Выполните
Конфигурация → Выгрузить конфигурацию в файлы...и укажите пустую папку.
Получится корневой Configuration.xml и каталоги по видам объектов: Catalogs, Documents, CommonModules и т. д. Описания объектов — в .xml, код модулей — в файлах .bsl.
Шаг 2. Отредактировать в Notepad++
Открывайте нужные файлы в Notepad++ или другом редакторе с подсветкой XML. Правила, которые спасают от ошибок загрузки:
- не меняйте кодировку при сохранении — оставьте ту, в которой файл выгружен (UTF-8);
- не трогайте атрибуты
uuid: по ним платформа сопоставляет объекты, смена UUID превращает объект в «новый», а старый удалится вместе с данными; - имена объектов меняйте согласованно — в описании объекта и во всех ссылках на него, иначе загрузка остановится с ошибкой;
- для массовой замены в модулях используйте
Поиск → Найти в файлах, ограничив маску*.bsl.
Слепая правка XML описаний (.xml) опаснее правки кода (.bsl). Ошибка в модуле всплывёт при синтаксическом контроле, ошибка в описании реквизита может молча изменить структуру таблиц.
Шаг 3. Собрать конфигурацию и сохранить новый CF
- В той же базе выполните
Конфигурация → Загрузить конфигурацию из файлов...и укажите папку. В платформе 8.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-файле пароли и список пользователей?
Чем «Сохранить конфигурацию в файл» отличается от сохранения конфигурации БД?
Можно ли сделать CFU из двух CF-файлов?
Конфигурация → Поставка конфигурации есть создание файлов поставки и обновления: указываете CF предыдущей версии, и платформа формирует CFU с разницей.