Разработка и Конфигурация · 11 мин
Где хранятся модули 1С и как их найти
Разбираем, где хранятся модули 1С: в конфигураторе, в файле базы данных, в кэше и при выгрузке. Как найти нужный модуль и безопасно его изменить.
Модули в 1С — это тексты программ на встроенном языке, которые определяют поведение прикладного решения. В отличие от обычных файлов проекта, они не лежат отдельными файлами в понятной папке: вся конфигурация, включая модули, хранится внутри информационной базы — в файле 1Cv8.1CD для файлового режима или в таблицах СУБД для клиент-серверного варианта. Поэтому «найти модуль на диске» в привычном смысле нельзя — его нужно открывать через конфигуратор или выгружать специальными средствами.
При этом у разработчика есть несколько практических точек доступа: дерево конфигурации в конфигураторе, кэш метаданных на локальном компьютере, выгрузка конфигурации в файлы (в том числе в формате EDT) и внешние файлы обработок с расширением .epf, где модуль объекта тоже хранится внутри двоичного контейнера. Каждый вариант подходит для своей задачи — от быстрого просмотра кода до командной разработки с системой контроля версий.
Где физически хранятся модули: файловый и клиент-серверный режимы
В файловом режиме вся информационная база — это каталог, ключевой элемент которого — файл 1Cv8.1CD. Внутри него в собственном формате платформы размещены таблицы данных, конфигурация базы данных и конфигурация поставщика, включая все модули. Открыть этот файл текстовым редактором и прочитать код нельзя: данные структурированы и частично упакованы, прямое вмешательство в файл почти гарантированно разрушит базу.
В клиент-серверном режиме конфигурация и модули хранятся в служебных таблицах базы данных на SQL Server, PostgreSQL, Oracle или IBM DB2. Разработчик работает с ними только через сервер 1С и конфигуратор — прямые запросы к таблицам конфигурации не поддерживаются и опасны. Рядом с базой, в каталоге 1Cv8Log или в настройках журнала регистрации, хранится журнал регистрации, но к модулям он отношения не имеет.
Как найти нужный модуль в конфигураторе
Основной способ работы с модулями — конфигуратор. Откройте базу в режиме «Конфигуратор», затем через меню «Конфигурация → Открыть конфигурацию» вызовите дерево объектов. Модули распределены по своим владельцам: общие модули находятся в ветке «Общие → Общие модули», модуль приложения и модуль внешнего соединения — в корне дерева, модули объектов, форм, менеджеров и команд — внутри конкретных справочников, документов, отчётов и обработок.
Чтобы открыть модуль, выделите объект и используйте контекстное меню: «Открыть модуль объекта», «Открыть модуль менеджера», «Открыть модуль формы» и так далее. Для формы сначала открывается сама форма, а переход к её модулю выполняется вкладкой «Модуль» внизу окна редактора. Если неизвестно, где находится нужная процедура, используйте глобальный поиск (Ctrl+Shift+F) по всем модулям конфигурации.
- 1Запустите базу в режиме «Конфигуратор» под пользователем с правами на изменение
- 2Откройте меню «Конфигурация → Открыть конфигурацию»
- 3Разверните ветку «Общие → Общие модули»
- 4Дважды щёлкните по нужному модулю — откроется редактор кода
- 5Проверьте результат: в заголовке окна отобразится имя модуля и его свойства (Сервер, Клиент, Привилегированный)
Какие виды модулей существуют и где они расположены в дереве
Понимание структуры помогает быстро ориентироваться даже в незнакомой конфигурации. Платформа жёстко привязывает тип модуля к месту в дереве объектов, и перенести модуль «в другое место» нельзя — можно только создать аналогичный объект.
| Вид модуля | Где находится в дереве конфигурации | Назначение |
|---|---|---|
| Модуль приложения / управляемого приложения | Корень дерева конфигурации | Обработчики запуска и завершения системы, глобальные переменные |
| Общие модули | Общие → Общие модули | Переиспользуемые процедуры и функции, серверная и клиентская логика |
| Модуль объекта | Внутри справочника, документа, отчёта, обработки | Обработчики событий записи, проведения, заполнения |
| Модуль менеджера | Внутри объекта метаданных | Логика работы с коллекцией объектов, переопределение представлений |
| Модуль формы | Внутри формы объекта или общей формы | Обработчики событий формы и её элементов |
| Модуль команды | Внутри команды объекта или общей команды | Действие при выполнении команды интерфейса |
| Модуль сеанса | Корень дерева конфигурации | Инициализация параметров сеанса при подключении |
Отдельно стоит модуль внешнего соединения — он используется при подключении через COM-коннектор. В типовых конфигурациях большая часть бизнес-логики вынесена именно в общие модули с постфиксами вроде «ВызовСервера», «Клиент», «Переопределяемый», поэтому поиск обычно начинают с ветки общих модулей.
Кэш метаданных: где модули лежат на локальном диске
При подключении к базе платформа создаёт локальный кэш метаданных, чтобы ускорить запуск. В нём действительно можно обнаружить фрагменты конфигурации, включая модули, но это служебное техническое хранилище, а не рабочая копия. Типичное расположение кэша в Windows:
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, но это архив всей базы, а не способ редактирования модулей.
Способы хранения модулей вне базы
Один двоичный файл конфигурации. Подходит для передачи и обновления, но не для просмотра кода и контроля версий.
Модули как текстовые файлы. Подходит для сравнения версий и поиска по коду внешними средствами.
Полноценная командная разработка с историей изменений. Требует освоения EDT и дисциплины работы с ветками.
Полный архив базы с данными. Используется для резервных копий и переноса, а не для работы с кодом.
Модули внешних обработок и расширений
Внешние обработки и отчёты хранятся как отдельные файлы .epf и .erf в любом каталоге, который выберет пользователь, — чаще всего в папках проектов или в справочнике «Дополнительные отчеты и обработки» внутри базы, где файл сохраняется как двоичные данные. Модуль объекта и модули форм упакованы внутри этих файлов, открыть их можно через «Файл → Открыть» в конфигураторе.
Расширения конфигурации — отдельный механизм: их модули хранятся внутри информационной базы вместе с основной конфигурацией, но накладываются поверх неё. Просмотр и редактирование выполняются через «Конфигурация → Расширения конфигурации». При обновлении основной конфигурации заимствованные в расширение модули могут потребовать ручной сверки, если изменились исходные процедуры.
Проверка результата и безопасная работа с модулями
После изменения модуля проверьте его синтаксис: «Текст → Синтаксический контроль модуля» или 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 и кэш метаданных никогда не редактируйте вручную. Перед правками всегда делайте копию базы.