Выгрузка модуля конфигурации и обработки из 1С 8.3
Содержание
Выгрузить модуль из 1С 8.3 можно четырьмя разными путями, и выбор зависит от того, что именно вы переносите. Нужен текст одного модуля — откройте его в Конфигураторе и сохраните в файл командой Файл → Сохранить копию…. Нужно перенести доработку целиком, с модулями и объектами, — выгружайте конфигурацию в XML-файлы или упаковывайте её в расширение .cfe. Для командной работы модули ходят между разработчиками через хранилище конфигурации.
Все эти операции выполняются в режиме Конфигуратор, а не в 1С:Предприятии. Выгрузка — это чтение, она не меняет рабочую базу и не требует, чтобы из неё вышли пользователи. Ниже — каждый способ с точными путями меню, форматами файлов и командами для автоматизации.
С какими правами открывается Конфигуратор
Чтобы увидеть и выгрузить модуль, нужен доступ в Конфигуратор. Его даёт роль с правом администрирования или отдельная настройка «Запуск Конфигуратора» в профиле пользователя. Рядовому пользователю 1С:Предприятия конфигуратор обычно закрыт — это нормально.
Откройте базу в режиме Конфигуратор, затем дерево метаданных: Конфигурация → Открыть конфигурацию. Если пункт недоступен, значит нет прав на работу с конфигурацией — обратитесь к администратору базы.
Для выгрузки текста модуля или выгрузки конфигурации в файлы снимать базу с поддержки не нужно. Поддержка ограничивает редактирование, а не чтение. Снятие с поддержки или включение возможности изменения требуется только тогда, когда вы собираетесь менять типовую конфигурацию, а не просто смотреть или копировать её код.
Если база клиент-серверная и вы работаете в Конфигураторе удалённо, прав это не меняет: роль пользователя та же, что и при локальном подключении.
Как сохранить текст модуля в отдельный файл
Это самый быстрый способ, когда нужен один модуль, а не вся конфигурация.
- В дереве конфигурации найдите нужный объект. Общие модули лежат в ветке
Общие → Общие модули. Модуль объекта, менеджера или формы открывается из самого объекта — через контекстное менюОткрыть модуль объекта,Открыть модуль менеджераили двойным щелчком по форме. - Двойной щелчок открывает редактор кода.
- Выполните
Файл → Сохранить копию…— платформа предложит сохранить текст активного модуля в файл. Для модуля подойдёт расширение.txtили.bsl.
Универсальный запасной вариант, который работает всегда: встаньте в окно модуля, нажмите Ctrl+A (выделить всё), Ctrl+C (копировать) и вставьте текст в любой текстовый редактор. Так удобно вытащить фрагмент, когда нужен не весь модуль.
Полученный файл — обычный текст в кодировке UTF-8. Он открывается в блокноте, VS Code или снова в Конфигураторе и не привязан к конкретной базе.
Полезно понимать, какой именно модуль вы выгружаете, — у одного объекта их бывает несколько:
- 🧩 Модуль объекта — код документа, справочника, обработки (обработчики
ПриЗаписи,ПередЗаписьюи т. п.); - 🧩 Модуль менеджера — код уровня менеджера объекта, доступный без создания экземпляра;
- 🧩 Модуль формы — код конкретной формы и её элементов;
- 🧩 Общий модуль — переиспользуемые процедуры и функции из ветки
Общие → Общие модули; - 🧩 Модуль приложения и модуль сеанса — код запуска, лежит в свойствах корня конфигурации.
Каждый из них открывается и сохраняется одинаково — отличается только место в дереве, откуда вы его достаёте.
Выгрузка конфигурации в XML-файлы
Когда нужны не только модули, но и объекты, формы, макеты — выгружайте всю конфигурацию в иерархию файлов. Это основной формат для хранения доработок в системе контроля версий (Git, SVN).
Путь в меню: Конфигурация → Выгрузить конфигурацию в файлы…. Укажите пустую папку — платформа разложит в неё описание каждого объекта в XML и тексты всех модулей отдельными файлами в подпапках Ext.
Что получается на выходе:
- 📄 XML-файлы с описанием объектов метаданных (реквизиты, формы, настройки);
- 📄 текстовые файлы модулей — их можно открыть и сравнить любым diff-инструментом;
- 📁 структура папок повторяет дерево конфигурации.
Обратная операция — Конфигурация → Загрузить конфигурацию из файлов… — собирает конфигурацию назад. После загрузки из файлов обязательно выполните «Обновить конфигурацию
базы данных» (F7), иначе изменения не попадут в рабочую базу.
Чем формат файлов удобнее единого .cf для хранения кода: текстовые модули видны в истории Git построчно, по ним работает поиск виноватого (blame) и сравнение веток. Единый .cf для системы контроля версий — это один непрозрачный бинарный файл, по которому не видно, что именно изменилось. Поэтому для командной разработки код хранят именно в выгрузке по файлам, а .cf используют как снимок для переноса конфигурации целиком.
Загрузка конфигурации в базу (в отличие от выгрузки) требует монопольного доступа и временно блокирует работу пользователей. Выгрузка же безопасна и идёт при работающих пользователях.
Перенос модуля через расширение конфигурации
Расширения появились в платформе 8.3.6 и решают частую задачу: добавить или изменить код, не снимая типовую конфигурацию
с поддержки. Внутри расширения можно заимствовать объект вместе с его модулем, а потом выгрузить расширение одним файлом .cfe.
Порядок действий:
- Откройте
Конфигурация → Расширения конфигурации. - Создайте расширение (кнопка добавления в окне списка), задайте имя и префикс.
- В дереве расширения заимствуйте нужный объект — платформа подтянет его в расширение, и вы сможете работать с модулем.
- Выгрузите расширение в файл: выберите его в окне расширений и выполните
Конфигурация → Сохранить конфигурацию в файл…. Формат файла —.cfe.
Загрузка в другой базе — Конфигурация → Загрузить конфигурацию из файла…, выбрать .cfe. Загрузка файла .cfe и команда «Обновить конфигурацию базы данных» — это два разных шага: сначала загружаете расширение, затем применяете изменения к базе.
Чем это удобнее прямой правки: типовая конфигурация остаётся на полной поддержке, обновления от вендора встают без конфликтов, а ваш код живёт отдельным файлом, который легко перенести.
Один нюанс: если в расширении вы заимствовали модуль, чтобы изменить его, перенос коснётся только вашей версии кода. При конфликте с обновлением типовой расширение придётся править, но саму рабочую базу это не ломает — в худшем случае расширение временно отключится, а основная конфигурация продолжит работать.
Хранилище конфигурации для командной работы
Если над доработкой работают несколько разработчиков, модули переносятся не файлами, а через хранилище конфигурации — встроенную в платформу систему контроля версий.
Подключение: Конфигурация → Хранилище конфигурации → Подключиться к хранилищу…. После подключения объекты нужно захватывать перед правкой и помещать в хранилище после. Так изменённые модули становятся доступны остальным участникам.
Что хранилище даёт для переноса кода:
- 🔁 история версий каждого модуля с авторами и комментариями;
- 🔒 захват объекта, чтобы двое не правили один модуль одновременно;
- 🔍 сравнение и объединение версий при расхождениях.
Хранилище — это механизм совместной разработки, а не разовой выгрузки одного файла. Для простой передачи кода коллеге он избыточен: там хватит сохранения текста модуля или .cfe.
Модули внешних обработок и отчётов
Внешняя обработка (.epf) и внешний отчёт (.erf) — это самодостаточные файлы, внутри которых уже лежат свои модули. Отдельно «выгружать» модуль из обработки обычно не нужно: вы просто передаёте весь файл.
Чтобы добраться до кода внутри обработки:
- В Конфигураторе выполните
Файл → Открыть…и выберите файл.epfили.erf. - Откройте модуль объекта или модули форм обработки — так же, как у объекта конфигурации.
- Сохраните обработку целиком через
Файл → СохранитьилиФайл → Сохранить как…, либо вытащите текст модуля копированием.
Такой способ удобен, когда нужно перенести небольшую логику между базами без вмешательства в конфигурацию: обработка подключается в 1С:Предприятии через Файл → Открыть или штатный механизм дополнительных обработок.
Файл → Сохранить копию… либо скопируйте текст. Быстро, без привязки к базе.Конфигурация → Выгрузить конфигурацию в файлы…) — объекты в XML, модули отдельными текстовыми файлами..cfe. Типовая остаётся на поддержке..epf или внешний отчёт .erf — весь код уже внутри файла.Автоматизация выгрузки через командную строку
Выгрузку можно запускать без открытия Конфигуратора вручную — через пакетный режим 1cv8. Это нужно для регулярных бэкапов кода или сборки в CI.
Общий вид команды (пути приведите под свою установку):
"C:\Program Files\1cv8\8.3.24.xxxx\bin\1cv8.exe" DESIGNER ^
/F"C:\base" /N"Администратор" /P"пароль" ^
/DumpConfigToFiles "C:\out" ^
/Out"C:\log.txt" /DisableStartupDialogs
Ключи, в которых можно быть уверенным:
| Параметр | Что делает |
|---|---|
DESIGNER | запуск в режиме Конфигуратора |
/F"путь" | файловая база (для серверной — /S сервер\база) |
/N / /P | имя пользователя и пароль |
/DumpCfg "файл.cf" | выгрузка всей конфигурации в один файл .cf |
/DumpConfigToFiles "папка" | выгрузка конфигурации в XML-файлы |
/Out"лог.txt" | файл служебного протокола |
/DisableStartupDialogs | без всплывающих окон при старте |
Для выгрузки расширения к ключу /DumpConfigToFiles добавляется указание имени расширения — в этом случае в папку попадают только его файлы. Внешнюю обработку
в файлы выгружает отдельный ключ /DumpExternalDataProcessorOrReportToFiles.
Точный набор и синтаксис ключей для вашей версии платформы смотрите по команде 1cv8 /? или в документации режима пакетного запуска. Если не уверены в параметре — не добавляйте его наугад: пакетный запуск с неверным ключом молча завершится с ошибкой в логе.
Код возврата процесса удобно проверять в скрипте: 0 — успех, иначе смотрите файл из /Out.
Такую команду ставят в планировщик (например, Планировщик заданий Windows) и запускают ночью — получается ежедневный текстовый снимок кода без участия разработчика. Для серверной базы вместо /F укажите /S адрес_сервера\имя_базы, а имя и пароль передавайте учётной записью с правом администрирования.
Частые ошибки и методы их устранения
1С:Предприятии, а не в Конфигураторе. Войдите в Конфигуратор под пользователем с правом администрирования..cf грузится в базу, версия платформы которой не ниже той, где он был выгружен. Обновите платформу на принимающей стороне до номера не ниже исходного.F7 и подтвердите применение изменений.Ещё одна типичная путаница — смешение форматов. .cf и .cfe внешне похожи, но .cf загружается как основная конфигурация, а .cfe подключается как расширение. Загрузить .cfe на место основной конфигурации нельзя, и наоборот.
Частые вопросы
Чем отличаются форматы `.cf`, `.cfu` и `.cfe`?
.cf — полная конфигурация одним файлом. .cfu — файл обновления (поставки), накатывается поверх совместимой конфигурации. .cfe — расширение конфигурации, подключается отдельно и не трогает типовую.Можно ли выгрузить только один модуль, без всей конфигурации?
Файл → Сохранить копию… или скопируйте через буфер обмена. Весь остальной код базы при этом не затрагивается.Нужен ли монопольный доступ, чтобы выгрузить конфигурацию?
Открывается ли выгруженный файл модуля обычным текстовым редактором?
Как перенести доработку модуля в базу на поддержке, не снимая её с поддержки?
.cfe и загрузите в целевой базе. Типовая конфигурация при этом остаётся на полной поддержке.