Разработка и Конфигурация · 10 мин
Где хранится код 1С и как его найти
Разбираем, где физически хранится код 1С: структура конфигуратора, файловая и клиент-серверная база, расширения, хранилище конфигурации и временные файлы.
Код 1С не лежит отдельными текстовыми файлами в папке с программой — это главное, что нужно понять новичку. Весь программный код (модули объектов, форм, общие модули, обработчики) хранится внутри информационной базы вместе с данными, метаданными и интерфейсом. Физическое расположение зависит от режима работы: файлового или клиент-серверного.
Команда установки платформы (каталог вида C:\Program Files\1cv8\…) содержит только исполняемые файлы самой платформы — толстый и тонкий клиенты, конфигуратор, серверные компоненты. Прикладного кода там нет. Прикладной код появляется при создании информационной базы и записывается в её файлы или в базу данных SQL-сервера.
Понимание того, где хранится код, критично для резервного копирования, переноса базы, восстановления после сбоя и организации командной разработки. Ниже разберём все варианты хранения и способы извлечь код наружу.
Как устроено хранение конфигурации внутри базы
Информационная база 1С — это единый контейнер. В нём одновременно живут: метаданные (структура справочников, документов, регистров), код всех модулей, макеты, формы, права и сами пользовательские данные. Код модулей хранится в скомпилированном виде (байт-код) и в виде исходного текста — оба варианта внутри базы.
Когда вы открываете модуль в конфигураторе и редактируете его, изменения сначала существуют только в памяти. Чтобы они сохранились в базе, нужно выполнить «Конфигурация — Сохранить конфигурацию» (для основной конфигурации) и «Обновить конфигурацию базы данных» (F7), чтобы изменения применились к рабочей базе. До обновления исполняется старый код.
Важно различать два слоя: «конфигурация» (то, что редактирует разработчик) и «конфигурация базы данных» (то, что реально исполняется пользователями). Они могут расходиться, если разработчик сохранил изменения, но не обновил базу данных.
Файловый режим: файл 1Cv8.1CD
В файловом варианте вся база — это один файл 1Cv8.1CD, лежащий в каталоге информационной базы. Путь к каталогу виден в списке баз при запуске 1С: выделите базу — внизу окна отображается строка вида File="D:\Bases\Trade". Внутри этого файла находятся и данные, и весь код конфигурации.
Открыть 1Cv8.1CD текстовым редактором бессмысленно — это бинарный контейнер собственного формата. Код из него извлекается только штатными средствами: через конфигуратор или выгрузкой. Рядом с основным файлом могут лежать служебные файлы (журнал регистрации 1Cv8.lgd, файлы блокировок), но кода в них нет.
Практическое следствие: резервная копия файловой базы — это либо копия файла 1Cv8.1CD (при остановленной работе пользователей), либо выгрузка в файл .dt через конфигуратор. В обоих случаях код сохраняется вместе с данными.
Клиент-серверный режим: код в SQL-базе
При работе через сервер 1С данные и код хранятся в базе данных СУБД — MS SQL Server, PostgreSQL, Oracle или IBM DB2. Код конфигурации лежит в служебных таблицах этой базы (например, в MS SQL это таблицы Params, Config, ConfigSave и связанные с ними) в бинарном виде.
Напрямую читать или править эти таблицы средствами SQL нельзя: структура внутренних таблиц не документирована для модификации, а ручное вмешательство почти гарантированно приводит к повреждению базы и потере поддержки. Все операции с кодом выполняются только через конфигуратор, подключённый к серверу 1С.
Резервное копирование в клиент-серверном режиме делается средствами СУБД (бэкап базы целиком) или выгрузкой .dt. Копия SQL-базы включает и код, и данные — отдельно бэкапить код не требуется.
Как извлечь код из базы в текстовые файлы
Для просмотра, поиска по коду, сравнения версий и работы с системами контроля версий конфигурацию выгружают в файлы. Основные способы:
- Выгрузка конфигурации в файл .cf — «Конфигурация — Сохранить конфигурацию в файл». Бинарный файл, подходит для переноса конфигурации между базами, но не для чтения кода.
- Выгрузка в файлы XML — «Конфигурация — Выгрузить конфигурацию в файлы». Создаёт дерево XML-файлов, в которых модули сохраняются как текст, пригодный для чтения, поиска и git.
- Выгрузка через EDT или конфигуратор формата EDT — проект в файловой структуре, удобный для командной разработки.
- Выгрузка отдельных модулей — в окне модуля «Файл — Сохранить как» сохраняет текст модуля в .txt или .bsl.
- 1Откройте базу в конфигураторе и убедитесь, что конфигурация открыта (Конфигурация — Открыть конфигурацию).
- 2Выполните «Конфигурация — Выгрузить конфигурацию в файлы».
- 3Выберите пустой каталог и формат (иерархический или плоский), при необходимости ограничьте состав объектов.
- 4Дождитесь окончания выгрузки и проверьте, что в каталоге появились XML-файлы и файлы модулей.
- 5Откройте любой файл модуля текстовым редактором и убедитесь, что код читается.
Выгрузка в файлы — стандартный способ поиска по всему коду: после выгрузки можно искать строку по каталогу любым редактором (Notepad++, VS Code), что быстрее встроенного глобального поиска конфигуратора на больших конфигурациях.
Где хранится код расширений и внешних обработок
Расширения конфигурации хранятся не в основной конфигурации, а в отдельных структурах внутри той же информационной базы. Увидеть их можно через «Конфигурация — Расширения конфигурации». Код расширения извлекается так же: открыть расширение и выгрузить его в файл .cfe или в файлы.
Внешние обработки и отчёты (.epf, .erf) — это самостоятельные файлы на диске, их код внутри этих бинарных файлов. Открываются и редактируются через «Файл — Открыть» в конфигураторе. Исходники внешних обработок тоже можно выгрузить в XML-файлы.
Где искать код в разных ситуациях
Всё в файле 1Cv8.1CD в каталоге базы. Подходит для копирования целиком; код извлекается только конфигуратором.
Код в служебных таблицах SQL-базы. Прямой доступ к таблицам запрещён, работа только через конфигуратор.
Хранится внутри базы отдельно от основной конфигурации. Выгружается в .cfe или в файлы из окна расширений.
Отдельный файл .epf/.erf на диске. Код правится через конфигуратор, исходники выгружаются в XML.
Хранилище конфигурации и кэш метаданных
При командной разработке используется хранилище конфигурации — отдельный файл (1Cv8ddb.1CD в каталоге хранилища) или серверное хранилище. В нём лежат все версии конфигурации с историей изменений. Разработчики захватывают объекты, редактируют код локально и помещают изменения обратно. Само хранилище — тоже бинарный контейнер, работа с ним идёт через «Конфигурация — Хранилище конфигурации».
Отдельно стоит упомянуть кэш метаданных на клиентских машинах: каталоги вида C:\Users\Имя\AppData\Roaming\1C\1cv8\… с папками по идентификаторам баз. Там платформа держит кэшированную копию метаданных и кода для ускорения запуска. Это не источник кода — при повреждении кэша его просто очищают (удаляют папку базы из кэша или пересоздают базу в списке), и платформа закэширует всё заново из базы.
Проверка результата и безопасные границы
После выгрузки кода в файлы проверьте полноту: в каталоге должны быть файлы общих модулей, модулей объектов и форм. Откройте несколько случайных файлов и сравните с тем, что видно в конфигураторе. Если выгрузка прерывалась с ошибкой, часть файлов может отсутствовать — повторите выгрузку в пустой каталог.
Безопасная зона самостоятельной работы: просмотр кода в конфигураторе, выгрузка в файлы, глобальный поиск, работа с копией базы. К рискованным операциям относятся обновление конфигурации базы данных на рабочей базе без копии, любые действия с SQL-таблицами напрямую и правка кода типовой конфигурации без расширения — при обновлении типовой такие изменения могут быть потеряны.
Как проверить результат
В каталоге есть XML-файлы и файлы модулей, код открывается и читается
Каталог пуст или часть объектов отсутствует — выгрузка оборвалась
После F7 поведение базы изменилось, версии конфигурации и базы данных совпадают
Конфигуратор сообщает о расхождении конфигурации и конфигурации БД
Файл .dt или копия 1Cv8.1CD открывается на тестовой базе
Копия не открывается или была снята при активных сеансах
Что важно запомнить
Код 1С живёт внутри информационной базы: в файле 1Cv8.1CD (файловый режим) или в таблицах SQL-базы (клиент-серверный). Извлекается только конфигуратором — выгрузкой в .cf, .dt или в XML-файлы. Кэш метаданных и каталог платформы кодом не являются.
Частые вопросы
Можно ли посмотреть код 1С без конфигуратора?
Напрямую из базы — нет, формат хранения закрытый. Но если конфигурацию заранее выгрузили в файлы XML, код модулей читается любым текстовым редактором. Также есть сторонние инструменты разбора .cf-файлов, но штатный путь — конфигуратор.
Где лежит код, если база на сервере 1С с MS SQL?
В служебных таблицах базы данных SQL Server в бинарном виде. Читать и менять их напрямую нельзя — подключайтесь конфигуратором к серверу 1С и работайте через него.
Что будет с моими доработками кода при обновлении типовой конфигурации?
Изменения, внесённые прямо в типовые модули, могут быть затёрты обновлением, если механизм сравнения не перенесёт их. Надёжнее выносить доработки в расширение конфигурации — оно хранится отдельно и переживает обновления.
Безопасно ли удалять папки кэша в AppData\Roaming\1C?
Да, при закрытых сеансах 1С. Кэш метаданных — временная копия для ускорения запуска; после удаления платформа создаст её заново из базы. Рабочий код и данные при этом не пострадают.
Как найти нужный фрагмент кода во всей конфигурации?
Используйте глобальный поиск в конфигураторе (Ctrl+Shift+F) по всем модулям. Для больших конфигураций быстрее выгрузить конфигурацию в файлы и искать по каталогу внешним редактором.
Куда сохраняется код внешней обработки?
Внутри её собственного файла .epf на диске. Открывается через «Файл — Открыть» в конфигураторе; исходники можно выгрузить в XML-файлы для хранения в системе контроля версий.