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

Разработка и Конфигурация · 11 мин

Где хранятся модули 1С и как их найти

Разбираем, где хранятся модули 1С: в конфигураторе, в файле базы данных, в кэше и при выгрузке. Как найти нужный модуль и безопасно его изменить.

Модули в 1С — это тексты программ на встроенном языке, которые определяют поведение прикладного решения. В отличие от обычных файлов проекта, они не лежат отдельными файлами в понятной папке: вся конфигурация, включая модули, хранится внутри информационной базы — в файле 1Cv8.1CD для файлового режима или в таблицах СУБД для клиент-серверного варианта. Поэтому «найти модуль на диске» в привычном смысле нельзя — его нужно открывать через конфигуратор или выгружать специальными средствами.

При этом у разработчика есть несколько практических точек доступа: дерево конфигурации в конфигураторе, кэш метаданных на локальном компьютере, выгрузка конфигурации в файлы (в том числе в формате EDT) и внешние файлы обработок с расширением .epf, где модуль объекта тоже хранится внутри двоичного контейнера. Каждый вариант подходит для своей задачи — от быстрого просмотра кода до командной разработки с системой контроля версий.

Где физически хранятся модули: файловый и клиент-серверный режимы

В файловом режиме вся информационная база — это каталог, ключевой элемент которого — файл 1Cv8.1CD. Внутри него в собственном формате платформы размещены таблицы данных, конфигурация базы данных и конфигурация поставщика, включая все модули. Открыть этот файл текстовым редактором и прочитать код нельзя: данные структурированы и частично упакованы, прямое вмешательство в файл почти гарантированно разрушит базу.

В клиент-серверном режиме конфигурация и модули хранятся в служебных таблицах базы данных на SQL Server, PostgreSQL, Oracle или IBM DB2. Разработчик работает с ними только через сервер 1С и конфигуратор — прямые запросы к таблицам конфигурации не поддерживаются и опасны. Рядом с базой, в каталоге 1Cv8Log или в настройках журнала регистрации, хранится журнал регистрации, но к модулям он отношения не имеет.

Как найти нужный модуль в конфигураторе

Основной способ работы с модулями — конфигуратор. Откройте базу в режиме «Конфигуратор», затем через меню «Конфигурация → Открыть конфигурацию» вызовите дерево объектов. Модули распределены по своим владельцам: общие модули находятся в ветке «Общие → Общие модули», модуль приложения и модуль внешнего соединения — в корне дерева, модули объектов, форм, менеджеров и команд — внутри конкретных справочников, документов, отчётов и обработок.

Чтобы открыть модуль, выделите объект и используйте контекстное меню: «Открыть модуль объекта», «Открыть модуль менеджера», «Открыть модуль формы» и так далее. Для формы сначала открывается сама форма, а переход к её модулю выполняется вкладкой «Модуль» внизу окна редактора. Если неизвестно, где находится нужная процедура, используйте глобальный поиск (Ctrl+Shift+F) по всем модулям конфигурации.

Как открыть общий модуль
  1. 1
    Запустите базу в режиме «Конфигуратор» под пользователем с правами на изменение
  2. 2
    Откройте меню «Конфигурация → Открыть конфигурацию»
  3. 3
    Разверните ветку «Общие → Общие модули»
  4. 4
    Дважды щёлкните по нужному модулю — откроется редактор кода
  5. 5
    Проверьте результат: в заголовке окна отобразится имя модуля и его свойства (Сервер, Клиент, Привилегированный)

Какие виды модулей существуют и где они расположены в дереве

Понимание структуры помогает быстро ориентироваться даже в незнакомой конфигурации. Платформа жёстко привязывает тип модуля к месту в дереве объектов, и перенести модуль «в другое место» нельзя — можно только создать аналогичный объект.

Вид модуляГде находится в дереве конфигурацииНазначение
Модуль приложения / управляемого приложенияКорень дерева конфигурацииОбработчики запуска и завершения системы, глобальные переменные
Общие модулиОбщие → Общие модулиПереиспользуемые процедуры и функции, серверная и клиентская логика
Модуль объектаВнутри справочника, документа, отчёта, обработкиОбработчики событий записи, проведения, заполнения
Модуль менеджераВнутри объекта метаданныхЛогика работы с коллекцией объектов, переопределение представлений
Модуль формыВнутри формы объекта или общей формыОбработчики событий формы и её элементов
Модуль командыВнутри команды объекта или общей командыДействие при выполнении команды интерфейса
Модуль сеансаКорень дерева конфигурацииИнициализация параметров сеанса при подключении

Отдельно стоит модуль внешнего соединения — он используется при подключении через COM-коннектор. В типовых конфигурациях большая часть бизнес-логики вынесена именно в общие модули с постфиксами вроде «ВызовСервера», «Клиент», «Переопределяемый», поэтому поиск обычно начинают с ветки общих модулей.

Кэш метаданных: где модули лежат на локальном диске

При подключении к базе платформа создаёт локальный кэш метаданных, чтобы ускорить запуск. В нём действительно можно обнаружить фрагменты конфигурации, включая модули, но это служебное техническое хранилище, а не рабочая копия. Типичное расположение кэша в Windows:

text
C:\Users\<ИмяПользователя>\AppData\Roaming\1C\1cv8\<GUID базы>\
C:\Users\<ИмяПользователя>\AppData\Local\1C\1cv8\<GUID базы>\

Редактировать или искать код в кэше бессмысленно: файлы имеют технические имена и могут быть перезаписаны при каждом запуске. Практическая ценность кэша одна — его очистка решает проблемы, когда конфигуратор показывает устаревшую версию модулей или база ведёт себя некорректно после обновления. Для очистки удалите базу из списка в стартовом окне и добавьте заново, либо удалите соответствующую папку с GUID при закрытой платформе.

Выгрузка модулей в файлы: cf, dt и формат EDT

Для хранения кода вне базы, передачи коллегам или работы с Git используют выгрузку. В конфигураторе доступна команда «Конфигурация → Выгрузить конфигурацию в файлы» — она создаёт структуру каталогов, где модули объектов сохраняются в виде XML-описаний и отдельных файлов Module.bsl. Такой формат удобен для построчного сравнения версий и ревью кода.

Альтернатива — среда 1C:EDT, которая хранит проект целиком в файловой системе в виде отдельных файлов с текстами модулей и метаданными. Это стандарт для командной разработки: проект подключается к Git, а изменения модулей отслеживаются как обычные изменения текстовых файлов. Для целостной копии базы вместе с данными используют выгрузку в .dt, но это архив всей базы, а не способ редактирования модулей.

Способы хранения модулей вне базы

Выгрузка в .cf

Один двоичный файл конфигурации. Подходит для передачи и обновления, но не для просмотра кода и контроля версий.

Выгрузка в файлы (XML + .bsl)

Модули как текстовые файлы. Подходит для сравнения версий и поиска по коду внешними средствами.

Проект 1C:EDT + Git

Полноценная командная разработка с историей изменений. Требует освоения EDT и дисциплины работы с ветками.

Выгрузка в .dt

Полный архив базы с данными. Используется для резервных копий и переноса, а не для работы с кодом.

Модули внешних обработок и расширений

Внешние обработки и отчёты хранятся как отдельные файлы .epf и .erf в любом каталоге, который выберет пользователь, — чаще всего в папках проектов или в справочнике «Дополнительные отчеты и обработки» внутри базы, где файл сохраняется как двоичные данные. Модуль объекта и модули форм упакованы внутри этих файлов, открыть их можно через «Файл → Открыть» в конфигураторе.

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

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

Проверка результата и безопасная работа с модулями

После изменения модуля проверьте его синтаксис: «Текст → Синтаксический контроль модуля» или Ctrl+Alt+K. Затем выполните обновление конфигурации базы данных (F7), если изменения затрагивали метаданные, и протестируйте сценарий в режиме предприятия. Для серверных общих модулей в клиент-серверном режиме учитывайте, что сеансы пользователей могут удерживать старую версию кода до перезапуска сеанса.

Безопасная граница самостоятельной работы — копия базы. Любые правки модулей, особенно модулей проведения документов и регламентных операций, сначала выполняйте на тестовой копии, восстановленной из выгрузки .dt. Рабочую базу изменяйте только после подтверждения, что тестовый сценарий проходит корректно.

Контрольные точки

Как проверить результат

Синтаксис модуля
Норма

Синтаксический контроль завершается без ошибок

Тревожный признак

Сообщения об ошибках в окне служебных сообщений с указанием строк

Актуальность кода в базе
Норма

После F7 поведение в предприятии совпадает с кодом в конфигураторе

Тревожный признак

Предприятие работает по-старому — признак устаревшего кэша или неприменённого обновления

Целостность типовой конфигурации
Норма

Доработки вынесены в расширение или задокументированы, обновление проходит штатно

Тревожный признак

Обновление конфигурации конфликтует с изменёнными модулями

Часто задаваемые вопросы

Можно ли открыть модуль 1С обычным текстовым редактором?

Напрямую из базы — нет: модули хранятся внутри файла 1Cv8.1CD или таблиц SQL в формате платформы. Текстовый редактор подойдёт только для файлов .bsl, полученных выгрузкой конфигурации в файлы или из проекта 1C:EDT.

Где найти модуль конкретного документа, например «Реализация товаров»?

В конфигураторе откройте дерево конфигурации, разверните ветку «Документы», найдите нужный вид документа и через контекстное меню выберите «Открыть модуль объекта» или «Открыть модуль менеджера». Модули форм доступны из редактора соответствующей формы.

Почему в предприятии выполняется старый код, хотя в конфигураторе модуль изменён?

Чаще всего причина в неприменённом обновлении конфигурации базы данных (нужно нажать F7), устаревшем кэше метаданных или в том, что пользователи работают в сеансах, запущенных до изменения. Очистка кэша и перезапуск сеансов обычно решают проблему.

Чем отличается хранение модулей во внешней обработке от хранения в конфигурации?

Внешняя обработка — самостоятельный файл .epf, внутри которого упакованы модуль объекта и модули форм. Её можно передавать и открывать без изменения конфигурации, но модули внутри файла так же недоступны для прямого текстового просмотра — только через конфигуратор.

Как сохранить все модули конфигурации в виде текстовых файлов?

Используйте в конфигураторе команду «Конфигурация → Выгрузить конфигурацию в файлы» и укажите каталог назначения. Модули будут сохранены как файлы Module.bsl рядом с XML-описаниями объектов. Альтернатива — вести разработку в 1C:EDT, где проект всегда хранится в файловом виде.

Где хранятся модули в расширении конфигурации?

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

Итог

Что важно запомнить

Модули 1С живут внутри информационной базы, а не в отдельных файлах. Работайте с ними через конфигуратор, для хранения на диске используйте выгрузку в файлы или EDT, а файл 1Cv8.1CD и кэш метаданных никогда не редактируйте вручную. Перед правками всегда делайте копию базы.