Расширение конфигурации 1С: в какой таблице оно лежит, как его найти и сохранить
Содержание
Расширение конфигурации
1С 8.3 хранится внутри самой информационной базы, а не отдельным файлом рядом с ней. В файловом варианте оно лежит в файле 1Cv8.1CD, в клиент-серверном — в служебных таблицах базы данных на SQL-сервере. Отдельный файл .cfe появляется только тогда, когда вы сами выгружаете расширение из базы.
Отсюда главное следствие. Скопировали базу, выгрузили .dt или сделали бэкап SQL — расширение уехало вместе с ней. Искать «папку с расширениями» на диске бессмысленно: там бывают только кеши и копии, которые сделал кто-то из людей.
Как устроено хранение расширения в файловой базе
Файловая информационная база — это каталог, в котором главный файл 1Cv8.1CD. В нём платформа держит всё сразу:
- 📦 основную конфигурацию и конфигурацию базы данных;
- 🧩 все подключённые расширения с их свойствами;
- 🗂 данные пользователей, в том числе данные собственных объектов расширений;
- ⚙️ служебные параметры, список пользователей, настройки.
Рядом в каталоге базы бывают и другие файлы, но расширения там нет:
| Файл или папка | Что это | Есть ли там расширение |
|---|---|---|
1Cv8.1CD | сама база | да, внутри |
1Cv8.cgr | журнал регистрации (старый формат) | нет |
папка 1Cv8Log | журнал регистрации | нет |
1Cv8tmp.1CD | временный файл при операциях с базой | нет |
папка 1Cv8FTxt | индекс полнотекстового поиска | нет |
Вытащить расширение из 1Cv8.1CD руками, без платформы, нельзя: формат закрытый, и попытки «распаковать» файл сторонними утилитами — прямой путь к повреждённой базе.
Самая надёжная копия файловой базы вместе со всеми расширениями — копия 1Cv8.1CD, снятая, когда в базе никто не работает.
Где лежит расширение в клиент-серверной базе на SQL
В клиент-серверном варианте база живёт в СУБД: MS SQL Server или PostgreSQL. Расширения хранятся в служебных таблицах платформы, рядом с таблицами основной конфигурации Config и ConfigSave.
Что встречается в базе:
- 🧾
_ExtensionsInfo— список расширений и их свойства: имя, версия, активность, порядок применения; - 📚
ConfigCAS— сами конфигурации расширений, которые применены к базе; - ✏️
ConfigCASSave— изменения расширений, сохранённые в Конфигураторе, но ещё не применённые к базе данных.
Данные собственных объектов расширения (справочников, документов, регистров, реквизитов в заимствованных объектах) лежат в обычных таблицах базы. По именам вида _Reference… их не отличить от таблиц основной конфигурации. Узнать, какая таблица к чему относится, можно функцией ПолучитьСтруктуруХраненияБазыДанных(), она доступна из встроенного языка.
Ничего не меняйте в этих таблицах напрямую через SQL. Платформа хранит там данные в своём формате и ведёт контрольные связи. Ручной DELETE или UPDATE даёт базу, которая не открывается или открывается с ошибками конфигурации. Удаляют и меняют расширения только средствами 1С.
Прямое чтение таблиц через SQL имеет смысл в одном случае: убедиться, что расширение в базе вообще есть. Например, когда база не запускается, а подозрение падает на расширение. Достать из таблицы рабочий .cfe этим способом не получится.
Что лежит на диске сервера и клиента
На дисках компьютеров файлы, связанные с расширением, всё же есть. Только это кеши и копии, а не хранилище.
На компьютере пользователя
Клиент 1С кеширует конфигурацию, включая расширения, в профиле пользователя Windows:
%APPDATA%\1C\1cv8\— каталоги с идентификаторами баз (GUID);%LOCALAPPDATA%\1C\1cv8\— локальный кеш.
В каждой папке-GUID лежат кешированные метаданные одной базы. Если после обновления расширения пользователь видит старую форму или старые команды, причина часто в этом кеше. Его очищают запуском с ключом /ClearCache или удалением папки базы при закрытой 1С.
На сервере 1С
Кластер серверов
держит служебные данные в каталоге srvinfo. Внутри — reg_1541 (номер совпадает с портом менеджера кластера), а в нём папки с GUID информационных баз. Там лежат кеши, данные сеансов и индекс полнотекстового поиска, но не исходник расширения.
Чистить серверный кеш в srvinfo можно только при остановленной службе агента сервера 1С. Остановка службы обрывает сеансы всех пользователей всех баз кластера, поэтому делают это в нерабочее время и после предупреждения пользователей.
Файлы .cfe и .cfu: чем они отличаются
| Расширение файла | Что это | Где появляется |
|---|---|---|
.cfe | выгрузка одного расширения | там, куда его сохранили вручную или скриптом |
.cf | выгрузка основной конфигурации | там же |
.cfu | файл обновления поставки основной конфигурации | в каталоге шаблонов обновлений |
.dt | выгрузка всей базы | туда, куда её выгрузили |
Файл .cfu к расширениям отношения не имеет: это формат обновлений типовых конфигураций. Расширение выгружается только в .cfe.
Чтобы найти выгруженные .cfe на сервере или своём компьютере, достаточно поиска по маске:
dir C:\ /s /b *.cfe
Через PowerShell то же самое с датой изменения:
Get-ChildItem -Path D:\ -Filter *.cfe -Recurse -ErrorAction SilentlyContinue | Select-Object FullName, LastWriteTime
Как посмотреть расширения базы: Конфигуратор и режим Предприятия
В Конфигураторе
- Откройте базу в Конфигураторе.
- В главном меню выберите
Конфигурация → Расширения конфигурации. - Откроется список: имя, синоним, версия, назначение, признак активности.
- Двойной щелчок по строке открывает дерево объектов расширения.
Из этого окна расширение сохраняют в файл .cfe и загружают обратно. Команды сохранения и загрузки находятся в меню Конфигурация открытого расширения и в командах окна списка.
В свойствах расширения смотрите четыре вещи:
- ✅ Активно — применяется ли расширение к базе прямо сейчас;
- 🛡 Безопасный режим и Защита от опасных действий — ограничения при работе кода;
- 🎯 Назначение — исправление, адаптация или дополнение; от него зависит порядок применения;
- 🌐 Область действия — вся информационная база или отдельная область данных (актуально при разделении данных).
В режиме 1С:Предприятие
Без Конфигуратора список расширений видно двумя способами:
- в типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11):
Администрирование → Печатные формы, отчеты и обработки → Расширения; - в любой конфигурации:
Все функции → Стандартные → Управление расширениями конфигурации. Если пункта «Все функции» нет в меню, включите его в параметрах программы (Сервис и настройки → Параметры).
Оттуда расширение тоже можно сохранить в файл, загрузить новое или отключить. Нужны права администратора.
Из встроенного языка
Для массовой выгрузки удобно получить данные расширений кодом на сервере:
&НаСервере
Процедура ВыгрузитьРасширенияНаСервере(Каталог)
Для Каждого Расширение Из РасширенияКонфигурации.Получить() Цикл
Данные = Расширение.ПолучитьДанные();
ИмяФайла = Каталог + "\" + Расширение.Имя + "_" + Расширение.Версия + ".cfe";
Данные.Записать(ИмяФайла);
КонецЦикла;
КонецПроцедуры
Файлы запишутся в каталог на сервере 1С (в файловом варианте — на компьютере, где выполняется серверный код). У учётной записи, под которой работает служба, должны быть права на запись в этот каталог.
Версии и резервные копии расширений
Расширение живёт в базе в одном экземпляре. Истории версий внутри самой базы нет: загрузили новый .cfe — старый вариант перезаписан. Поэтому версионирование придётся организовать самим.
Какие есть способы
| Способ | Что сохраняется | Когда подходит |
|---|---|---|
Файл .cfe с датой в имени | одно расширение целиком | мелкие доработки, один разработчик |
| Хранилище конфигурации | история версий с авторами и комментариями | команда, параллельная разработка |
| Выгрузка в XML + Git | исходники в текстовом виде, построчная разница | разработка в EDT или с CI |
Выгрузка .dt / бэкап СУБД | база вместе со всеми расширениями | регулярная страховка |
Хранилище для расширения
Расширение подключают к собственному хранилищу, отдельному от хранилища основной конфигурации. Делается это из окна открытого расширения: в меню Конфигурация → Хранилище конфигурации. Физически хранилище — каталог с файлом 1cv8ddb.1CD, лежит там, где его создали (локальный каталог, сетевая папка или сервер хранилища).
Если коллеги говорят «расширение в хранилище», ищите путь к нему в параметрах подключения: окно подключения к хранилищу показывает адрес.
Выгрузка из командной строки
Пакетный режим Конфигуратора принимает параметр -Extension с именем расширения. Это удобно для ночного скрипта:
"C:\Program Files\1cv8\8.3.25.1374\bin\1cv8.exe" DESIGNER /F "D:\Bases\Buh" /N "Администратор" /P "" /DumpCfg "D:\Backup\Ispravleniya.cfe" -Extension "Исправления" /Out "D:\Backup\dump.log"
Для клиент-серверной базы вместо /F используют /S "сервер\имябазы". Номер платформы в пути подставьте свой. Для Git то же расширение выгружают в XML командой /DumpConfigToFiles "каталог" -Extension "Имя".
Типичные проблемы и как вернуть расширение
Расширение пропало после обновления конфигурации
Обычно оно не пропало, а перестало применяться. Если в новом релизе изменили или удалили объект, который расширение заимствует, платформа сообщает, что расширение не может быть применено. Сам объект расширения в базе остаётся.
Что делать:
- Откройте
Конфигурация → Расширения конфигурациии проверьте флаг «Активно». - Откройте расширение и выполните проверку (
Конфигурация → Проверка конфигурации): она покажет, какие заимствованные объекты разошлись с основной конфигурацией. - Исправьте расширение или загрузите версию, адаптированную под новый релиз.
Случайно удалили расширение
Если у расширения были собственные объекты с данными, при удалении эти данные тоже удаляются. Повторная загрузка того же .cfe данные не вернёт — только конфигурацию.
Порядок восстановления:
- 📁 есть
.cfe, данных в объектах не было — просто загрузите его заново; - 💾 данные нужны — разверните бэкап базы
в отдельную копию, выгрузите оттуда
.cfe, а данные перенесите обработкой или выгрузкой-загрузкой; - 🗃 расширение было в хранилище — получите последнюю версию из хранилища.
База не открывается из-за расширения
Бывает, что ошибка в коде расширения валит запуск в пользовательском режиме. Конфигуратор при этом открывается: отключите флаг «Активно» у расширения, сохраните и запустите базу. Затем разбирайтесь с кодом спокойно.
Изменения сохранены, но в базе их нет
Разработчик правил расширение в Конфигураторе, нажал «Сохранить», закрыл окно. Изменения записаны в базу как редактируемая версия, но к базе данных не применены. Пользователи их не увидят, пока не выполнить обновление конфигурации базы данных для этого расширения (клавиша F7 в окне расширения).
Пользователь видит старую версию
Расширение уже заменили, а у человека старые формы. Почти всегда это клиентский кеш. Закройте 1С у пользователя и запустите её с ключом /ClearCache или удалите папку базы в %APPDATA%\1C\1cv8\.