К статье
Практический материал

Разработка и Конфигурация · 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. 1
    Откройте базу в конфигураторе и убедитесь, что конфигурация открыта (Конфигурация — Открыть конфигурацию).
  2. 2
    Выполните «Конфигурация — Выгрузить конфигурацию в файлы».
  3. 3
    Выберите пустой каталог и формат (иерархический или плоский), при необходимости ограничьте состав объектов.
  4. 4
    Дождитесь окончания выгрузки и проверьте, что в каталоге появились XML-файлы и файлы модулей.
  5. 5
    Откройте любой файл модуля текстовым редактором и убедитесь, что код читается.

Выгрузка в файлы — стандартный способ поиска по всему коду: после выгрузки можно искать строку по каталогу любым редактором (Notepad++, VS Code), что быстрее встроенного глобального поиска конфигуратора на больших конфигурациях.

Где хранится код расширений и внешних обработок

Расширения конфигурации хранятся не в основной конфигурации, а в отдельных структурах внутри той же информационной базы. Увидеть их можно через «Конфигурация — Расширения конфигурации». Код расширения извлекается так же: открыть расширение и выгрузить его в файл .cfe или в файлы.

Внешние обработки и отчёты (.epf, .erf) — это самостоятельные файлы на диске, их код внутри этих бинарных файлов. Открываются и редактируются через «Файл — Открыть» в конфигураторе. Исходники внешних обработок тоже можно выгрузить в XML-файлы.

Где искать код в разных ситуациях

Файловая база

Всё в файле 1Cv8.1CD в каталоге базы. Подходит для копирования целиком; код извлекается только конфигуратором.

Клиент-серверная база

Код в служебных таблицах SQL-базы. Прямой доступ к таблицам запрещён, работа только через конфигуратор.

Расширение

Хранится внутри базы отдельно от основной конфигурации. Выгружается в .cfe или в файлы из окна расширений.

Внешняя обработка

Отдельный файл .epf/.erf на диске. Код правится через конфигуратор, исходники выгружаются в XML.

Хранилище конфигурации и кэш метаданных

При командной разработке используется хранилище конфигурации — отдельный файл (1Cv8ddb.1CD в каталоге хранилища) или серверное хранилище. В нём лежат все версии конфигурации с историей изменений. Разработчики захватывают объекты, редактируют код локально и помещают изменения обратно. Само хранилище — тоже бинарный контейнер, работа с ним идёт через «Конфигурация — Хранилище конфигурации».

Отдельно стоит упомянуть кэш метаданных на клиентских машинах: каталоги вида C:\Users\Имя\AppData\Roaming\1C\1cv8\… с папками по идентификаторам баз. Там платформа держит кэшированную копию метаданных и кода для ускорения запуска. Это не источник кода — при повреждении кэша его просто очищают (удаляют папку базы из кэша или пересоздают базу в списке), и платформа закэширует всё заново из базы.

Типичные ошибки
01
Искать код в каталоге установки платформы — там только исполняемые файлы 1С, прикладного кода нет.
02
Править таблицы SQL-базы напрямую — приводит к повреждению базы и потере поддержки.
03
Считать кэш метаданных рабочей копией кода — это временные файлы, которые безопасно удалять.
04
Забыть обновить конфигурацию базы данных после правок — пользователи продолжают работать на старом коде.
05
Копировать 1Cv8.1CD при активных сеансах — копия может оказаться повреждённой.

Проверка результата и безопасные границы

После выгрузки кода в файлы проверьте полноту: в каталоге должны быть файлы общих модулей, модулей объектов и форм. Откройте несколько случайных файлов и сравните с тем, что видно в конфигураторе. Если выгрузка прерывалась с ошибкой, часть файлов может отсутствовать — повторите выгрузку в пустой каталог.

Безопасная зона самостоятельной работы: просмотр кода в конфигураторе, выгрузка в файлы, глобальный поиск, работа с копией базы. К рискованным операциям относятся обновление конфигурации базы данных на рабочей базе без копии, любые действия с 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-файлы для хранения в системе контроля версий.