Выгрузка модуля конфигурации и обработки из 1С 8.3

· 9 мин

Содержание

Выгрузить модуль из 1С 8.3 можно четырьмя разными путями, и выбор зависит от того, что именно вы переносите. Нужен текст одного модуля — откройте его в Конфигураторе и сохраните в файл командой Файл → Сохранить копию…. Нужно перенести доработку целиком, с модулями и объектами, — выгружайте конфигурацию в XML-файлы или упаковывайте её в расширение .cfe. Для командной работы модули ходят между разработчиками через хранилище конфигурации.

Все эти операции выполняются в режиме Конфигуратор, а не в 1С:Предприятии. Выгрузка — это чтение, она не меняет рабочую базу и не требует, чтобы из неё вышли пользователи. Ниже — каждый способ с точными путями меню, форматами файлов и командами для автоматизации.

С какими правами открывается Конфигуратор

Чтобы увидеть и выгрузить модуль, нужен доступ в Конфигуратор. Его даёт роль с правом администрирования или отдельная настройка «Запуск Конфигуратора» в профиле пользователя. Рядовому пользователю 1С:Предприятия конфигуратор обычно закрыт — это нормально.

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

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

Если база клиент-серверная и вы работаете в Конфигураторе удалённо, прав это не меняет: роль пользователя та же, что и при локальном подключении.

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

Это самый быстрый способ, когда нужен один модуль, а не вся конфигурация.

  1. В дереве конфигурации найдите нужный объект. Общие модули лежат в ветке Общие → Общие модули. Модуль объекта, менеджера или формы открывается из самого объекта — через контекстное меню Открыть модуль объекта, Открыть модуль менеджера или двойным щелчком по форме.
  2. Двойной щелчок открывает редактор кода.
  3. Выполните Файл → Сохранить копию… — платформа предложит сохранить текст активного модуля в файл. Для модуля подойдёт расширение .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.

Порядок действий:

  1. Откройте Конфигурация → Расширения конфигурации.
  2. Создайте расширение (кнопка добавления в окне списка), задайте имя и префикс.
  3. В дереве расширения заимствуйте нужный объект — платформа подтянет его в расширение, и вы сможете работать с модулем.
  4. Выгрузите расширение в файл: выберите его в окне расширений и выполните Конфигурация → Сохранить конфигурацию в файл…. Формат файла — .cfe.

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

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

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

Хранилище конфигурации для командной работы

Если над доработкой работают несколько разработчиков, модули переносятся не файлами, а через хранилище конфигурации — встроенную в платформу систему контроля версий.

Подключение: Конфигурация → Хранилище конфигурации → Подключиться к хранилищу…. После подключения объекты нужно захватывать перед правкой и помещать в хранилище после. Так изменённые модули становятся доступны остальным участникам.

Что хранилище даёт для переноса кода:

  • 🔁 история версий каждого модуля с авторами и комментариями;
  • 🔒 захват объекта, чтобы двое не правили один модуль одновременно;
  • 🔍 сравнение и объединение версий при расхождениях.

Хранилище — это механизм совместной разработки, а не разовой выгрузки одного файла. Для простой передачи кода коллеге он избыточен: там хватит сохранения текста модуля или .cfe.

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

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

Чтобы добраться до кода внутри обработки:

  1. В Конфигураторе выполните Файл → Открыть… и выберите файл .epf или .erf.
  2. Откройте модуль объекта или модули форм обработки — так же, как у объекта конфигурации.
  3. Сохраните обработку целиком через Файл → Сохранить или Файл → Сохранить как…, либо вытащите текст модуля копированием.

Такой способ удобен, когда нужно перенести небольшую логику между базами без вмешательства в конфигурацию: обработка подключается в 1С:Предприятии через Файл → Открыть или штатный механизм дополнительных обработок.

Что вы переносите — и каким способом выгружать?

Автоматизация выгрузки через командную строку

Выгрузку можно запускать без открытия Конфигуратора вручную — через пакетный режим 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 адрес_сервера\имя_базы, а имя и пароль передавайте учётной записью с правом администрирования.

Частые ошибки и методы их устранения

Диагностика: выберите симптом

Ещё одна типичная путаница — смешение форматов. .cf и .cfe внешне похожи, но .cf загружается как основная конфигурация, а .cfe подключается как расширение. Загрузить .cfe на место основной конфигурации нельзя, и наоборот.

Частые вопросы

Чем отличаются форматы `.cf`, `.cfu` и `.cfe`?
.cf — полная конфигурация одним файлом. .cfu — файл обновления (поставки), накатывается поверх совместимой конфигурации. .cfe — расширение конфигурации, подключается отдельно и не трогает типовую.
Можно ли выгрузить только один модуль, без всей конфигурации?
Да. Откройте модуль в Конфигураторе и сохраните его текст командой Файл → Сохранить копию… или скопируйте через буфер обмена. Весь остальной код базы при этом не затрагивается.
Нужен ли монопольный доступ, чтобы выгрузить конфигурацию?
Нет. Выгрузка — операция чтения, она идёт при работающих пользователях. Монопольный доступ требуется только при обратной загрузке конфигурации в базу.
Открывается ли выгруженный файл модуля обычным текстовым редактором?
Да. Тексты модулей выгружаются как простые текстовые файлы в UTF-8 и читаются в любом редакторе, системе контроля версий или diff-инструменте.
Как перенести доработку модуля в базу на поддержке, не снимая её с поддержки?
Соберите изменения в расширение конфигурации, выгрузите его файлом .cfe и загрузите в целевой базе. Типовая конфигурация при этом остаётся на полной поддержке.