Что хранится в файле .cf и чего в нём нет: структура конфигурации 1С 8.3
Содержание
Файл конфигурации 1С — это файл с расширением .cf, в котором лежит описание прикладного решения: дерево метаданных (справочники, документы, регистры), программные модули, формы, макеты печатных форм, роли и свойства конфигурации. Данных учёта в нём нет: ни документов, ни остатков, ни списка пользователей. Его получают в Конфигураторе командой Конфигурация → Сохранить конфигурацию в файл, а открывают обратной командой Конфигурация → Загрузить конфигурацию из файла.
Проще всего думать о .cf как о «чертеже» базы. По одному чертежу можно построить сколько угодно пустых баз с одинаковой структурой. Наполнение — проводки, контрагенты, настройки пользователей — живёт отдельно, в самой информационной базе.
Файл конфигурации 1С и соседние форматы: что есть что
Путаница начинается с того, что «файлом конфигурации» называют сразу несколько разных вещей. В 1С 8.3 у каждого формата своя задача.
| Файл | Что внутри | Где берут |
|---|---|---|
.cf | Полная конфигурация: метаданные, код, формы, роли | Конфигуратор, сохранение в файл; поставка от фирмы-разработчика |
.cfu | Обновление: отличия новой версии от одной или нескольких предыдущих | Дистрибутив обновления типовой конфигурации |
.cfe | Расширение конфигурации (доработки поверх типовой) | Конфигуратор, меню расширений |
.dt | Выгрузка всей базы: конфигурация + данные + пользователи | Администрирование → Выгрузить информационную базу |
1Cv8.1CD | Файловая информационная база целиком | Каталог файловой базы |
.epf, .erf | Внешняя обработка и внешний отчёт | Сохраняются из Конфигуратора отдельно |
Отсюда главный практический вывод. Для резервной копии .cf не годится: из него не восстановить ни одного документа. Копию базы
делают через .dt или копированием каталога файловой базы, а для SQL-варианта — средствами СУБД.
Файл .cf обычно весит десятки или сотни мегабайт, хотя внутри только описание структуры. Типовая Бухгалтерия предприятия 3.0 содержит тысячи объектов и сотни тысяч строк кода, поэтому размер вас не должен пугать.
Как устроен .cf физически
Файл .cf — это контейнер собственного формата 1С. Внутри — набор сжатых блоков, каждый из которых отвечает за объект метаданных, модуль, форму или макет. Блокнотом его не прочитать: вы увидите двоичный мусор.
Есть сторонняя открытая утилита v8unpack, которая распаковывает контейнер в набор файлов. Она полезна для исследования, но не поддерживается фирмой 1С. Для повседневной работы удобнее штатная выгрузка в XML, о ней ниже.
Где конфигурация живёт внутри базы
В информационной базе хранится не одна, а до трёх конфигураций:
- 🧩 основная конфигурация — та, которую вы редактируете в Конфигураторе;
- 🗄️ конфигурация базы данных — та, по которой реально работают пользователи;
- 📦 конфигурация поставщика — если решение стоит на поддержке, это эталон от разработчика для сравнения при обновлении.
Пока вы не выполнили Конфигурация → Обновить конфигурацию базы данных (клавиша F7), правки в основной конфигурации пользователи не видят. В SQL-базах эти конфигурации лежат в служебных таблицах Config и ConfigSave. Лезть туда напрямую нельзя: так база ломается быстрее всего.
Метаданные и константы: из чего состоит дерево конфигурации
Откройте Конфигуратор и выполните Конфигурация → Открыть конфигурацию. Слева появится дерево — это и есть содержимое файла .cf в читаемом виде.
Ветка «Общие»
Здесь лежат объекты, которые не относятся к конкретному справочнику или документу:
- 📁 подсистемы — разделы интерфейса («Банк и касса», «Зарплата и кадры»);
- 🧠 общие модули — код, который вызывают из разных мест;
- 🔑 роли — наборы прав;
- 🔄 планы обмена — описание того, какие объекты участвуют в обмене;
- ⏰ регламентные задания и подписки на события;
- ⚙️ функциональные опции — переключатели, которые включают или прячут части программы;
- 🌐 HTTP-сервисы, web-сервисы, XDTO-пакеты — для интеграций;
- 🖼️ общие формы, общие макеты, общие картинки, стили, языки.
Прикладные объекты
Ниже идут привычные бухгалтеру сущности: константы, справочники, документы, журналы документов, перечисления, отчёты, обработки, планы видов характеристик, планы счетов, регистры сведений, накопления, бухгалтерии и расчёта, бизнес-процессы и задачи.
У каждого объекта в .cf записаны:
- Реквизиты и табличные части с типами данных.
- Модуль объекта и модуль менеджера.
- Формы с элементами и модулями форм.
- Макеты, в том числе печатные формы.
- Команды и права, которые на него выдают роли.
Константы: описание есть, значения нет
Константа в конфигурации — это только объявление: имя, тип, синоним. Значение, например «Основная организация» или «Использовать несколько складов», хранится в базе. Поэтому, загрузив .cf в новую пустую базу, вы получите все константы незаполненными.
То же касается планов счетов. Предопределённые счета (60, 62, 68.02) описаны в конфигурации, а добавленные пользователем субсчета — уже данные базы.
Пользователи и права доступа: что в файле, а что в базе
Это самый частый источник недоразумений. Права в 1С складываются из двух частей, и лежат они в разных местах.
| Что | Где хранится | Попадает в .cf |
|---|---|---|
| Роли и права на объекты | Конфигурация | Да |
| Ограничения доступа на уровне записей (RLS) в ролях | Конфигурация | Да |
| Список пользователей, их пароли, назначенные роли | Информационная база | Нет |
| Справочник «Пользователи», группы доступа, профили (в конфигурациях на БСП) | Информационная база | Нет |
| Персональные настройки форм и отчётов | Информационная база | Нет |
Список пользователей информационной базы смотрят в Конфигураторе: Администрирование → Пользователи. В файловой базе он физически записан в служебную таблицу V8Users внутри 1Cv8.1CD.
В типовых конфигурациях на БСП (БП 3.0, ЗУП 3.1, УТ 11) права раздают в пользовательском режиме: Администрирование → Настройки пользователей и прав. Там работают профили групп доступа, которые внутри ссылаются на роли из конфигурации.
Если перенести в новую базу только .cf, пользователей там не будет. Нужен перенос через .dt или повторное создание пользователей.
Пароли пользователей в .cf не попадают никогда — передавать файл конфигурации подрядчику с этой точки зрения безопасно. Но в модулях иногда зашивают логины и пароли к внешним сервисам. Перед отправкой файла поищите такие строки через Правка → Глобальный поиск.
Свойства конфигурации и технические параметры платформы
Кликните правой кнопкой по корню дерева и выберите «Свойства». Откроется палитра с параметрами, которые тоже сохраняются в .cf:
- 🏷️ Имя, синоним, версия, поставщик — по версии программа понимает, какое обновление подходит;
- 🧭 Режим совместимости — под поведение какой версии платформы работает конфигурация;
- 🔒 Режим управления блокировкой данных — автоматический, управляемый или смешанный;
- 🪟 Режим использования модальности и синхронных вызовов;
- 👤 Основные роли — что получает пользователь, если список пользователей пуст;
- 🌍 Основной язык и основной режим запуска.
Файлы настроек самой платформы
Часть «технических параметров» вообще не относится к .cf. Это обычные текстовые файлы на компьютере или сервере:
| Файл | Где лежит | За что отвечает |
|---|---|---|
ibases.v8i | %APPDATA%\1C\1CEStart\ | Список баз в окне запуска |
1cestart.cfg | %APPDATA%\1C\1CEStart\ | Настройки стартера, общие списки баз |
conf.cfg | каталог conf в папке установленной версии | Параметры платформы, например язык интерфейса, отключение защиты от опасных действий |
logcfg.xml | каталог conf | Настройка технологического журнала |
nethasp.ini | каталог conf | Поиск сетевого ключа HASP |
Эти файлы правят Блокнотом при закрытой программе. Их путают с «файлом конфигурации» из-за названия, но на состав прикладного решения они не влияют.
Как посмотреть и изменить содержимое файла конфигурации
Править .cf можно только через информационную базу. Отдельного редактора для файла нет.
Способ 1. Через Конфигуратор
- Создайте пустую тестовую базу в окне запуска:
Добавить → Создание новой информационной базы → без конфигурации. - Откройте её в режиме Конфигуратор.
- Выполните
Конфигурация → Загрузить конфигурацию из файлаи укажите.cf. - Согласитесь на обновление конфигурации базы данных.
- Внесите правки в дереве, затем
Конфигурация → Сохранить конфигурацию в файл.
Не загружайте чужой .cf в рабочую базу без копии. Загрузка полностью заменяет конфигурацию. Если в новом файле нет какого-то объекта, при обновлении структуры его данные будут удалены.
Если нужно только сравнить, без замены, используйте Конфигурация → Сравнить конфигурации или Сравнить, объединить с конфигурацией из файла. Откроется окно с деревом отличий, где видно каждый изменённый модуль и реквизит.
Способ 2. Выгрузка в XML-файлы
Команда Конфигурация → Выгрузить конфигурацию в файлы раскладывает конфигурацию по каталогам. Получается структура, которую удобно смотреть в любом редакторе и хранить в Git:
Configuration.xml
Catalogs\Контрагенты.xml
Catalogs\Контрагенты\Ext\ObjectModule.bsl
Catalogs\Контрагенты\Ext\ManagerModule.bsl
Catalogs\Контрагенты\Forms\ФормаЭлемента\Ext\Form.xml
Catalogs\Контрагенты\Forms\ФормаЭлемента\Ext\Form\Module.bsl
CommonModules\ОбщегоНазначения\Ext\Module.bsl
Roles\ПолныеПрава\Ext\Rights.xml
Код модулей лежит в .bsl как обычный текст. Права ролей — в Rights.xml. Обратная загрузка — Конфигурация → Загрузить конфигурацию из файлов.
Способ 3. Из командной строки
Для регулярных выгрузок, например ночной копии конфигурации, Конфигуратор запускают в пакетном режиме:
"C:\Program Files\1cv8\8.3.24.1691\bin\1cv8.exe" DESIGNER /F"D:\Bases\Buh" /N"Администратор" /P"пароль" /DumpCfg "D:\Backup\buh.cf" /Out "D:\Backup\dump.log"
Для загрузки служит /LoadCfg, для обновления структуры базы — /UpdateDBCfg, для выгрузки в XML — /DumpConfigToFiles. Номер платформы в пути подставьте свой. Пароль в bat-файле храните только на защищённом сервере.
Обновление и обмен данными: какую роль играют .cf и .cfu
Типовые конфигурации обновляют через механизм поддержки: Конфигурация → Поддержка → Обновить конфигурацию. Программа предлагает выбрать файл обновления.
Разница между форматами здесь принципиальная:
- 📦
.cfuподходит только к конкретным предыдущим версиям. Если ваша версия в их число не входит, появится сообщение «Файл не содержит доступных обновлений этой конфигурации». Тогда ставят промежуточные релизы по цепочке. - 📄
.cf— полный дистрибутив. Им можно обновиться с любой версии, но объединение займёт больше времени.
Для доработанных конфигураций обновление идёт через трёхстороннее сравнение: старая конфигурация поставщика, новая конфигурация поставщика и ваша основная. Поэтому так важна конфигурация поставщика в базе — без неё 1С не поймёт, что меняли вы, а что разработчик.
Обмен данными
План обмена в .cf описывает только правила: какие объекты регистрируются для передачи. Узлы обмена, адреса, расписание синхронизации и очередь изменений — это данные базы. После загрузки .cf в новую базу синхронизацию придётся настраивать заново.
Поэтому для обмена важно, чтобы конфигурации в узлах совпадали по версии. Обновили центральную базу, а филиал оставили на старом релизе — обмен начнёт падать с ошибками о несовпадении версий.
Частые ошибки при работе с файлом конфигурации
- ❌ Хранить
.cfкак резервную копию. После сбоя окажется, что структура есть, а данных нет. Копия базы — только.dtили копия каталога и СУБД. - ❌ Загружать
.cfвместо объединения. Все доработки, которых нет в файле, исчезнут. Для переноса правок используйте сравнение и объединение. - ❌ Забыть обновить конфигурацию базы данных. Изменения сохранены, а пользователи их не видят. Появляется сообщение «Конфигурация базы данных не соответствует сохраненной конфигурации» — нажмите F7 в Конфигураторе.
- ❌ Снимать конфигурацию с поддержки ради мелкой правки. Следующее обновление превратится в ручное сравнение тысяч объектов. Мелкие доработки удобнее делать расширением
.cfe. - ❌ Править конфигурацию прямо в рабочей базе в рабочее время. Сохранение мелких изменений проходит без остановки работы, но обновление структуры с изменением реквизитов потребует, чтобы все пользователи вышли из программы. Планируйте его на вечер.