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

Администрирование · 11 мин

Сохранить и выгрузить конфигурацию в 1С: в чем разница

Чем отличается «Сохранить конфигурацию» от «Выгрузить конфигурацию» в 1С: назначение команд, форматы файлов, типичные сценарии и ошибки разработчика.

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

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

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

Что делает команда «Сохранить конфигурацию в файл»

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

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

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

Что делает команда «Выгрузить конфигурацию в файлы»

Команда «Выгрузить конфигурацию в файлы» (в меню «Конфигурация») разворачивает конфигурацию в указанный каталог в виде дерева файлов. Каждый объект метаданных получает собственный XML-файл с описанием свойств, модули сохраняются как текстовые файлы с кодом на встроенном языке, макеты и картинки — как отдельные файлы соответствующих форматов. В корне выгрузки лежит файл Configuration.xml, описывающий конфигурацию в целом.

Такое представление называют «плоским» форматом выгрузки. Существует и иерархический формат, используемый в 1C:Enterprise Development Tools (EDT), — он отличается структурой каталогов и набором служебных файлов. При выгрузке из конфигуратора можно выбрать формат в диалоге команды.

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

Сравнение форматов и назначения

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

ПараметрСохранить в файл (.cf)Выгрузить в файлы
РезультатОдин бинарный файлДерево каталогов с XML и текстовыми файлами
Читаемость кодаТолько средствами 1СЛюбым текстовым редактором
Контроль версий (Git)Не подходитОсновное назначение
Загрузка обратно«Загрузить конфигурацию из файла»«Загрузить конфигурацию из файлов»
Типовой сценарийПеренос конфигурации, поставка релизаКомандная разработка, история изменений
Частичная загрузкаТолько через сравнение/объединениеМожно загрузить выбранные объекты

Сравнение вариантов

Файл .cf

Подходит для передачи конфигурации целиком и резервного копирования настроек. Ограничение: нельзя смотреть diff и хранить осмысленную историю в Git.

Выгрузка в файлы

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

Хранилище конфигурации

Встроенный в платформу механизм версионирования без внешних файлов. Ограничение: привязка разработчиков к одному хранилищу и менее гибкая работа с ветками, чем в Git.

Как сохранить конфигурацию в файл .cf

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

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

Как выгрузить конфигурацию в файлы

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

В диалоге команды «Конфигурация → Выгрузить конфигурацию в файлы» укажите каталог и при необходимости выберите формат (обычный или формат EDT). Для крупных конфигураций полная выгрузка занимает продолжительное время, поэтому в командной работе часто используют пакетный запуск конфигуратора с параметрами выгрузки — это позволяет автоматизировать операцию в скриптах сборки.

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

Для регулярной выгрузки в репозиторий удобно запускать конфигуратор из командной строки с параметрами /DumpConfigToFiles и /LoadConfigFromFiles — это снимает рутину и позволяет встроить выгрузку в CI-конвейер. Параметры и их синтаксис описаны в документации к вашей версии платформы.
ПЗ
Практическое замечание

Ограничения, риски и типичные ошибки

Главный риск при загрузке .cf — потеря текущих доработок. Команда «Загрузить конфигурацию из файла» заменяет конфигурацию целиком, без диалога сравнения. Если в базе были изменения, которых нет в загружаемом файле, они будут утеряны. Перед загрузкой всегда делайте резервную копию базы или хотя бы сохраняйте текущую конфигурацию в свой .cf.

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

Типичные ошибки
01
Попытка загрузить дерево файлов командой «Загрузить конфигурацию из файла» — получается ошибка формата, потому что эта команда ждёт именно .cf.
02
Сохранение .cf с несохранёнными изменениями — в файл попадает основная конфигурация, а не то, что разработчик видит в открытых окнах модулей.
03
Выгрузка в файлы поверх старой выгрузки без очистки каталога — в репозитории остаются «файлы-призраки» удалённых объектов.
04
Передача коллеге .cf, когда тот ожидал исходники для Git, и наоборот — уточняйте формат заранее.
05
Работа команды на разных версиях платформы — выгрузка в файлы начинает отличаться служебными атрибутами, и diff теряет смысл.

Как проверить результат и выбрать правильный формат

Проверка .cf проста: файл должен существовать, иметь разумный размер (для типовых конфигураций — десятки или сотни мегабайт) и успешно загружаться в пустую тестовую базу. Проверка выгрузки в файлы: в каталоге должен лежать Configuration.xml в корне, каталоги по видам объектов (Catalogs, Documents и т.д.), а обратная загрузка из файлов в чистую базу должна завершаться без ошибок.

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

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

Файл .cf после сохранения
Норма

Файл создан, размер соответствует масштабу конфигурации, загружается в тестовую базу

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

Нулевой размер, ошибка формата при загрузке

Каталог выгрузки в файлы
Норма

Есть Configuration.xml и каталоги объектов, обратная загрузка проходит без ошибок

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

Отсутствует корневой XML, при загрузке ошибки структуры

Репозиторий после коммита выгрузки
Норма

Diff показывает только реально изменённые объекты

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

Изменились сотни файлов без причины — вероятно, сменилась версия платформы или формат

Маршрут решения

Как выбрать действие

Нужно передать конфигурацию коллеге или заказчику для загрузки в базуИспользуйте «Сохранить конфигурацию в файл» (.cf)
Нужно хранить историю изменений и работать в GitИспользуйте «Выгрузить конфигурацию в файлы» и коммитьте каталог
Нужна резервная копия настроек перед обновлениемСохраните .cf, а лучше — сделайте полную выгрузку базы (.dt), чтобы сохранить и данные
Нужно перенести только несколько доработанных объектовИспользуйте «Сравнить, объединить с конфигурацией из файла» вместо полной загрузки

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

Можно ли из выгрузки в файлы получить файл .cf?

Напрямую — нет. Но можно загрузить дерево файлов в пустую базу командой «Загрузить конфигурацию из файлов», а затем сохранить результат в .cf стандартной командой. Это рабочий способ конвертации между форматами.

Сохраняются ли данные базы при сохранении конфигурации в файл?

Нет. Файл .cf содержит только описание прикладного решения: метаданные, код, формы, макеты. Для резервной копии с данными используйте выгрузку информационной базы (.dt) через соответствующую команду в конфигураторе.

Чем выгрузка в файлы отличается от хранилища конфигурации?

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

Почему выгрузка в файлы занимает много времени?

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

Можно ли редактировать код прямо в файлах выгрузки?

Технически текст модулей редактируется любым редактором, и изменения попадут в базу при загрузке из файлов. Но править XML-описания объектов вручную рискованно: ошибка в структуре файла приведёт к отказу загрузки. Безопасно править только тексты модулей, а метаданные изменять в конфигураторе или EDT.

Какой формат выгрузки выбрать для работы с EDT?

Если проект ведётся в 1C:EDT, используйте иерархический формат выгрузки (формат EDT) — он соответствует структуре проекта в среде разработки. Обычный плоский формат подходит для конфигуратора и простых интеграций с Git без EDT.

Итог

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

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