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

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

Как выгрузить модуль из 1С

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

Под выгрузкой модуля из 1С обычно понимают сохранение программного кода объекта конфигурации — общего модуля, модуля объекта, модуля формы — во внешний текстовый файл. Это нужно для переноса кода между базами, резервного копирования перед доработкой, передачи фрагмента кода коллеге или анализа модуля во внешнем редакторе.

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

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

Что нужно проверить перед выгрузкой модуля

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

Определите, какой именно модуль вам нужен. У одного объекта может быть несколько модулей: модуль объекта, модуль менеджера, модули форм, модуль команды. У справочника или документа код часто распределён между ними, и выгрузка только модуля объекта даст неполную картину.

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

Выгрузка модуля через конфигуратор в файл

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

Когда текст модуля открыт в редакторе, выберите «Файл → Сохранить как» (или «Сохранить копию» в зависимости от версии платформы) и укажите путь к файлу. Сохраняйте с расширением .bsl — это общепринятое расширение для файлов кода встроенного языка 1С, его корректно открывают сторонние редакторы и инструменты анализа.

Обратите внимание на кодировку при сохранении. Для кириллицы безопаснее использовать UTF-8 с BOM: так файл корректно откроется и в конфигураторе другой базы, и во внешних редакторах без «кракозябр».

Порядок действий
  1. 1
    Откройте конфигуратор и дерево конфигурации
  2. 2
    Найдите объект и откройте нужный модуль (модуль объекта, формы или общий модуль)
  3. 3
    Убедитесь, что текст модуля отображается, а не скрыт поставкой
  4. 4
    Выберите «Файл → Сохранить как» и укажите файл с расширением .bsl в кодировке UTF-8
  5. 5
    Откройте сохранённый файл и проверьте, что код читается полностью

Выгрузка модуля формы и модуля объекта

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

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

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

Массовая выгрузка модулей через пакетный режим

Когда нужно выгрузить не один модуль, а весь код конфигурации, используется команда «Конфигурация → Выгрузить конфигурацию в файлы». Платформа создаст дерево каталогов, где каждый объект представлен набором файлов, а модули лежат в файлах Module.bsl внутри соответствующих папок.

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

bash
"C:\Program Files\1cv8\<версия>\bin\1cv8.exe" DESIGNER /F"C:\Bases\MyBase" /N"ИмяПользователя" /P"Пароль" /DumpConfigToFiles "C:\Export\Config" /Out "C:\Export\log.txt"

Путь к исполняемому файлу зависит от установленной версии платформы, параметры подключения — от способа развёртывания базы (файловый или клиент-серверный вариант, для которого используется ключ /S вместо /F). Результат и ошибки смотрите в файле журнала, указанном в параметре /Out.

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

Выгрузка модуля из расширения и внешней обработки

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

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

Сравнение вариантов выгрузки

Сохранить как .bsl

Подходит для одного-двух модулей. Быстро, но вручную; легко забыть часть модулей объекта.

Выгрузка конфигурации в файлы

Подходит для полного снимка кода и контроля версий. Требует времени и места на диске.

Файл .cf или .cfe

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

Проверка результата и типичные ошибки

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

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

Типичные ошибки
01
Выгрузка только модуля объекта без модулей форм — переносится не вся логика объекта
02
Сохранение в кодировке ANSI — кириллица ломается при открытии в других инструментах
03
Выгрузка из конфигурации базы данных вместо основной конфигурации — получается устаревшая версия кода
04
Попытка выгрузить модуль из поставки без исходных текстов — файл оказывается пустым или с заглушкой
Контрольные точки

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

Содержимое файла .bsl
Норма

Читаемый код с процедурами и комментариями

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

Пустой файл, иероглифы или текст «модуль недоступен»

Полнота выгрузки
Норма

Все нужные модули объекта сохранены (объект, формы, менеджер)

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

Часть модулей отсутствует, логика не восстанавливается

Кодировка файла
Норма

UTF-8, кириллица отображается корректно

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

Символы заменены знаками вопроса или кракозябрами

Частые вопросы о выгрузке модулей из 1С

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

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

Почему при открытии модуля виден текст «Модуль недоступен»?

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

Чем отличается выгрузка модуля от выгрузки конфигурации .cf?

Файл .cf — это бинарный контейнер всей конфигурации для загрузки в другую базу; код внутри него текстовым редактором не читается. Выгрузка модуля в .bsl даёт обычный текстовый файл с кодом, удобный для чтения, сравнения и контроля версий.

Как выгрузить все модули одного документа сразу?

Отдельной команды «выгрузить все модули объекта» нет. Либо сохраняйте каждый модуль (объект, менеджер, формы) вручную, либо выполните выгрузку конфигурации в файлы и заберите файлы Module.bsl из папки нужного документа.

Опасна ли выгрузка модуля для рабочей базы?

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

Итог

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

Модуль из 1С выгружается через конфигуратор: одиночный модуль — через «Сохранить как» в файл .bsl с кодировкой UTF-8, массово — выгрузкой конфигурации в файлы в пакетном режиме. Проверяйте, что выгружена основная конфигурация, все нужные модули объекта и что код читается без искажений.