Как устроено хранение конфигурации в 1С 8.3: от файла 1Cv8.1CD до Git
Содержание
Конфигурация 1С 8 хранится внутри самой информационной базы, а не отдельным файлом рядом с ней. В файловом варианте это файл 1Cv8.1CD в каталоге базы, в клиент-серверном — служебные таблицы Config и ConfigSave в базе SQL Server или PostgreSQL. Файлы .cf, .cfu и хранилище конфигурации — это внешние копии и инструменты, а не место, откуда база читает свои метаданные при работе.
Отсюда частая путаница. Человек ищет «папку с конфигурацией», находит в профиле пользователя каталог tmplts с файлами .cf и думает, что база живёт там. Нет: удалите шаблоны — база продолжит работать. Ниже разложено по местам, что где лежит в 1С 8.3, как вынуть конфигурацию наружу и откуда её восстановить, если что-то сломалось. Всё описанное общее для платформы и не зависит от того, Бухгалтерия у вас, ЗУП или самописная конфигурация.
Файловая база: что лежит в каталоге информационной базы
Путь к каталогу файловой базы виден в окне запуска 1С: выделите базу в списке — внизу появится строка вида File="D:\Bases\Buh". Откройте этот каталог в проводнике.
Что вы там увидите:
- 📦
1Cv8.1CD— главный и единственный обязательный файл. В нём одновременно данные (справочники, документы, регистры), конфигурация, пользователи и настройки. Конфигурация лежит внутри как набор служебных таблиц. - 📝
1Cv8Log— каталог журнала регистрации. В новых версиях платформы журнал хранится в файле1Cv8.lgd, в старом формате — набором файлов.lgfи.lgp. - 🔍
1Cv8FTxt— индекс полнотекстового поиска. Его можно удалить, платформа перестроит индекс заново. - ⏳ временные файлы, которые появляются во время работы и реструктуризации, например
1Cv8tmp.1CD. Пока база открыта, их не трогают.
Скопировать каталог базы целиком — самый простой способ сделать полную резервную копию файлового варианта. Но только когда в базе никто не работает: копия «на ходу» может оказаться несогласованной.
Внутри 1Cv8.1CD конфигурация разнесена по нескольким служебным таблицам. Их имена совпадают с клиент-серверным вариантом, поэтому подробно они разобраны в следующем разделе.
Где лежат не сами базы, а их список
Список баз в окне запуска — это не база и не конфигурация. Это текстовый файл ibases.v8i в профиле пользователя Windows: %APPDATA%\1C\1CEStart\ibases.v8i. В нём только названия и строки подключения. Если список «пропал» после переустановки Windows, сами базы, скорее всего, целы — нужно просто заново добавить их в список.
Клиент-серверный вариант: в каких таблицах СУБД хранится конфигурация
В клиент-серверной базе нет файла 1Cv8.1CD. Всё лежит в базе данных на сервере СУБД, а сервер 1С лишь обращается к ней. Если открыть эту базу в SQL Server Management Studio или в pgAdmin, вы увидите два вида таблиц.
Таблицы данных имеют имена с подчёркиванием и номером: _Reference45, _Document312, _AccumRg1050. Это справочники, документы и регистры. Соответствие номеров объектам метаданных хранится в самой базе, по имени таблицы его не угадать.
Служебные таблицы платформы имеют «человеческие» имена:
| Таблица | Что в ней лежит |
|---|---|
Config | Конфигурация базы данных — та, с которой сейчас работают пользователи |
ConfigSave | Основная конфигурация: изменения, сохранённые в конфигураторе, но ещё не применённые к базе данных |
Params | Параметры информационной базы, в том числе список пользователей |
Files | Служебные файлы платформы |
DBSchema | Описание структуры таблиц базы данных |
Связка Config и ConfigSave объясняет поведение конфигуратора. Пока вы правите конфигурацию и нажимаете «Сохранить», изменения копятся в ConfigSave. Пользователи этого не видят. Только команда «Обновить конфигурацию
базы данных» переносит их в Config и при необходимости перестраивает таблицы данных.
Никогда не правьте таблицы Config, ConfigSave, Params напрямую через SQL — ни удалением, ни очисткой. Встречаются советы «очистить ConfigSave
, чтобы откатить изменения». Без резервной копии базы целиком такой эксперимент может закончиться неоткрывающейся базой.
Для 1С в клиент-серверном варианте резервная копия средствами СУБД (бэкап SQL Server или pg_dump) сохраняет и данные, и конфигурацию одновременно. Отдельно «бэкапить конфигурацию» для восстановления базы не требуется.
Где хранятся настройки сервера 1С
Отдельно от баз хранятся настройки кластера: список информационных баз кластера, рабочие серверы, администраторы. Они лежат в каталоге srvinfo на сервере 1С, в подкаталоге reg_1541 — файл 1CV8Clst.lst. Конфигурации там нет, но если этот файл потерян, кластер «забывает» базы, хотя данные в СУБД остаются на месте.
Файлы .cf, .cfu, .dt и .cfe: чем отличаются выгрузки
Конфигурацию можно вынуть из базы в отдельный файл. Форматов несколько, и их легко перепутать.
| Расширение | Что внутри | Где получают и применяют |
|---|---|---|
.cf | Полная конфигурация без данных | Конфигурация → Сохранить конфигурацию в файл / Загрузить конфигурацию из файла |
.cfu | Файл обновления: разница между релизами поставщика | Применяется только к базе на поддержке, через режим обновления конфигурации |
.dt | Вся информационная база: конфигурация, данные, пользователи | Администрирование → Выгрузить информационную базу / Загрузить информационную базу |
.cfe | Расширение конфигурации | Сохраняется и загружается в окне расширений конфигуратора |
Главное различие для практики:
- 🧩
.cfпереносит только «программу». Загрузили.cfв рабочую базу — конфигурация полностью заменена, данные остались, но структура таблиц перестроится под новые метаданные. - 🔄
.cfuнельзя загрузить в пустую базу. Это не конфигурация, а «заплатка» поверх конкретного релиза. - 💾
.dt— это полная копия базы. Именно его делают перед обновлением.
Загрузка .cf или .dt поверх рабочей базы полностью заменяет то, что в ней было. Перед этим нужна свежая выгрузка .dt и уверенность, что в базе никто не работает
.
Где лежат файлы поставки и обновлений
Когда вы устанавливаете обновление типовой конфигурации из дистрибутива, файлы .cf, .cfu и описание поставки 1cv8.mft распаковываются в каталог шаблонов. По умолчанию это %APPDATA%\1C\1cv8\tmplts. Путь меняется в окне запуска: кнопка «Настройка» → «Каталоги шаблонов конфигураций и обновлений».
Это и есть тот самый каталог, который принимают за «место хранения конфигурации». На деле это склад дистрибутивов. Его можно чистить от старых релизов, базы это не затронет.
Конфигурация поставщика внутри базы
У типовой конфигурации на поддержке внутри базы живёт ещё одна копия — конфигурация поставщика. Она нужна, чтобы при обновлении сравнивать три версии: старую поставщика, новую поставщика и вашу доработанную. Сохранить её в файл можно из конфигуратора, в меню поддержки: откройте Конфигурация → Поддержка и найдите команду сохранения конфигурации поставщика.
Хранилище конфигурации для командной разработки
Хранилище конфигурации — отдельная база, в которой лежит история версий конфигурации. Его используют, когда над одной конфигурацией работают несколько разработчиков. Каждый подключает к хранилищу свою базу, захватывает объекты на редактирование, правит и помещает изменения обратно.
Где физически лежит хранилище, зависит от способа подключения:
| Вариант | Где данные | Строка подключения |
|---|---|---|
| Файловое | Каталог с файлом 1cv8ddb.1CD | Путь к каталогу: \\server\repo\buh |
| Через сервер хранилища | Каталог на машине, где запущен crserver | tcp://server:1542/buh (1542 — порт по умолчанию) |
| Через веб-сервер | Каталог на сервере, публикация через HTTP | http://server/repo/repo.1ccr |
Основные действия в конфигураторе находятся в меню Конфигурация → Хранилище конфигурации:
- «Создать хранилище» — указываете каталог, задаёте администратора хранилища.
- «Подключиться к хранилищу» — база получает конфигурацию из хранилища и связь с ним.
- «Захватить в хранилище» — объект блокируется для других и становится доступен вам на редактирование.
- «Поместить в хранилище» — изменения уходят в хранилище новой версией с комментарием.
- «История хранилища» — список версий, сравнение и сохранение любой версии в файл
.cf.
История хранилища — готовый архив конфигурации. Любую прошлую версию можно сохранить в .cf и сравнить с текущей. Это часто спасает, когда «вчера работало, а сегодня нет».
Помните: хранилище хранит только конфигурацию. Данные рабочей базы туда не попадают. Подключённая база по-прежнему держит свою копию конфигурации у себя, в Config и ConfigSave.
Выгрузка конфигурации в файлы и связка с Git
Начиная с платформы 8.3 конфигурацию можно выгрузить не одним бинарным .cf, а деревом XML-файлов и модулей .bsl. Каждый справочник, документ, форма и модуль — отдельный файл. Именно такой формат кладут в Git.
В конфигураторе: Конфигурация → Выгрузить конфигурацию в файлы, обратно — Загрузить конфигурацию из файлов. То же самое делается из командной строки, что удобно для автоматизации:
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F "D:\Bases\Buh" /N "Admin" /P "" ^
/DumpConfigToFiles "D:\src\buh" -Format Hierarchical /Out "D:\logs\dump.log"
Номер версии в пути подставьте свой. Для клиент-серверной базы вместо /F указывают /S "server\base".
Полезные ключи пакетного режима конфигуратора:
/DumpConfigToFilesи/LoadConfigFromFiles— выгрузка и загрузка XML-исходников;-updateк выгрузке — выгружает только изменённое, опираясь на файлConfigDumpInfo.xmlиз прошлой выгрузки;/DumpCfgи/LoadCfg— то же самое для одного файла.cf;/UpdateDBCfg— применить конфигурацию к базе данных после загрузки.
Три рабочие схемы связи с Git:
- 🛠 1С:EDT (Enterprise Development Tools). Проект изначально хранится в файлах, Git встроен в среду. Конфигуратор используют только для отладки и сборки.
- 🔁 Хранилище + конвертер истории. Команда работает в привычном хранилище, а утилита вроде GitSync (на OneScript) по расписанию переносит каждую версию хранилища в коммит Git с автором и комментарием.
- 📂 Ручная выгрузка. Разработчик сам выгружает конфигурацию в файлы и коммитит. Годится для одного человека, в команде быстро превращается в конфликты.
Выгрузка в XML — это исходники, а не резервная копия базы. В ней нет данных, пользователей и настроек. Для восстановления рабочей базы нужен .dt или бэкап СУБД.
Резервные копии конфигурации: где искать и как восстановить
Когда конфигурация испорчена — неудачное обновление, ошибка при доработке, база не открывается в режиме предприятия, — вопрос «где хранится» превращается в «откуда достать рабочую версию». Варианты по порядку, от безопасного к радикальному:
Конфигурация → Конфигурация базы данных и сохраните её в файл .cf. Затем загрузите этот файл как основную конфигурацию — несохранённые в базе правки будут отменены, а рабочая версия вернётся..cf и сравните с текущей. Откат можно сделать загрузкой этого файла или поместив исправление новой версией..cf нужного релиза из каталога шаблонов tmplts или скачайте дистрибутив заново. Если были доработки — сравнивайте и объединяйте, а не заменяйте вслепую..dt, копии каталога файловой базы или бэкапа СУБД.Где обычно лежат резервные копии, если вы их не делали сознательно:
- Выгрузки
.dtперед обновлением. Мастер обновления конфигурации в типовых решениях предлагает создать копию. Путь копии задавался в мастере; если не меняли — ищите в каталоге резервного копирования, указанном в настройках программы. - Автоматическое резервное копирование в файловом варианте. В типовых конфигурациях на БСП оно настраивается в
Администрирование → Обслуживание, раздел резервного копирования. Там же виден каталог, куда пишутся копии. - Бэкапы СУБД. В клиент-серверном варианте их делает администратор SQL Server или PostgreSQL по своему плану обслуживания. Конфигурация восстанавливается вместе с базой.
- Копии каталогов файловых баз на сетевом диске или в системе резервного копирования сервера.
Если не открывается файловая база и есть подозрение на повреждение файла, а не конфигурации, начните с утилиты chdbfl.exe из каталога bin платформы. Она проверяет физическую целостность 1Cv8.1CD. Запускайте её на копии файла и только когда с базой никто не работает.
Загрузка .dt или .cf в рабочую базу оборвёт работу пользователей и заменит текущее содержимое. Делайте это вне рабочего времени, предупредив сотрудников, и сначала проверьте файл на копии базы.
Частые вопросы
Можно ли достать конфигурацию из файла 1Cv8.1CD, не открывая базу в 1С?
.cf. Сторонние утилиты чтения формата существуют, но для рабочих задач они не нужны.Сколько места занимает конфигурация внутри базы?
.cf весит сотни мегабайт. Внутри базы занято больше: хранятся конфигурация базы данных, основная конфигурация и копия поставщика.Почему после загрузки .cf пропала поддержка типовой конфигурации?
.cf может загрузиться как конфигурация без связи с поставщиком. Для типовых баз обновления ставят через режим поддержки и файлы .cfu или через сравнение с конфигурацией поставщика, а не простой загрузкой .cf.Хранится ли расширение конфигурации отдельно от базы?
.cfe — только способ перенести расширение между базами.Где лежит кеш конфигурации на компьютере пользователя?
%APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8, в подкаталогах с длинными именами-идентификаторами баз. Это копия для ускорения запуска. Её очистка не затрагивает саму базу, но делать её стоит при закрытой 1С.