Администрирование · 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) | Не подходит | Основное назначение |
| Загрузка обратно | «Загрузить конфигурацию из файла» | «Загрузить конфигурацию из файлов» |
| Типовой сценарий | Перенос конфигурации, поставка релиза | Командная разработка, история изменений |
| Частичная загрузка | Только через сравнение/объединение | Можно загрузить выбранные объекты |
Сравнение вариантов
Подходит для передачи конфигурации целиком и резервного копирования настроек. Ограничение: нельзя смотреть diff и хранить осмысленную историю в Git.
Подходит для репозитория, код-ревью и автоматизации. Ограничение: требует дисциплины — каталог выгрузки должен соответствовать актуальному состоянию конфигурации.
Встроенный в платформу механизм версионирования без внешних файлов. Ограничение: привязка разработчиков к одному хранилищу и менее гибкая работа с ветками, чем в Git.
Как сохранить конфигурацию в файл .cf
Откройте информационную базу в конфигураторе под пользователем с правами администратора. Убедитесь, что конфигурация базы данных обновлена и не содержит несохранённых изменений: команда сохраняет основную конфигурацию, а не конфигурацию базы данных, поэтому несохранённые правки могут не попасть в файл.
Порядок действий простой, но есть нюансы с поддержкой: если конфигурация находится на поддержке поставщика без возможности изменения, сохранение всё равно выполняется — ограничение касается редактирования, а не выгрузки.
Как выгрузить конфигурацию в файлы
Создайте пустой каталог для выгрузки — платформа запишет в него дерево файлов. Выгружать в каталог с уже существующей старой выгрузкой не стоит: устаревшие файлы удалённых объектов могут остаться и исказить состояние репозитория. Правильная практика — очищать каталог перед полной выгрузкой.
В диалоге команды «Конфигурация → Выгрузить конфигурацию в файлы» укажите каталог и при необходимости выберите формат (обычный или формат EDT). Для крупных конфигураций полная выгрузка занимает продолжительное время, поэтому в командной работе часто используют пакетный запуск конфигуратора с параметрами выгрузки — это позволяет автоматизировать операцию в скриптах сборки.
После выгрузки содержимое каталога можно зафиксировать в Git. Обратите внимание: некоторые служебные файлы выгрузки могут меняться от версии к версии платформы, поэтому всю команду стоит переводить на единую версию платформы, чтобы избежать «шумных» изменений в репозитории.
Для регулярной выгрузки в репозиторий удобно запускать конфигуратор из командной строки с параметрами /DumpConfigToFiles и /LoadConfigFromFiles — это снимает рутину и позволяет встроить выгрузку в CI-конвейер. Параметры и их синтаксис описаны в документации к вашей версии платформы.
Ограничения, риски и типичные ошибки
Главный риск при загрузке .cf — потеря текущих доработок. Команда «Загрузить конфигурацию из файла» заменяет конфигурацию целиком, без диалога сравнения. Если в базе были изменения, которых нет в загружаемом файле, они будут утеряны. Перед загрузкой всегда делайте резервную копию базы или хотя бы сохраняйте текущую конфигурацию в свой .cf.
Второй риск связан с версией платформы: файл .cf, созданный на более новой версии платформы, может не загрузиться на старой. Обратная совместимость обычно есть (старая выгрузка открывается на новой платформе), но прямую совместимость гарантировать нельзя.
Как проверить результат и выбрать правильный формат
Проверка .cf проста: файл должен существовать, иметь разумный размер (для типовых конфигураций — десятки или сотни мегабайт) и успешно загружаться в пустую тестовую базу. Проверка выгрузки в файлы: в каталоге должен лежать Configuration.xml в корне, каталоги по видам объектов (Catalogs, Documents и т.д.), а обратная загрузка из файлов в чистую базу должна завершаться без ошибок.
Как проверить результат
Файл создан, размер соответствует масштабу конфигурации, загружается в тестовую базу
Нулевой размер, ошибка формата при загрузке
Есть Configuration.xml и каталоги объектов, обратная загрузка проходит без ошибок
Отсутствует корневой XML, при загрузке ошибки структуры
Diff показывает только реально изменённые объекты
Изменились сотни файлов без причины — вероятно, сменилась версия платформы или формат
Как выбрать действие
Частые вопросы
Можно ли из выгрузки в файлы получить файл .cf?
Напрямую — нет. Но можно загрузить дерево файлов в пустую базу командой «Загрузить конфигурацию из файлов», а затем сохранить результат в .cf стандартной командой. Это рабочий способ конвертации между форматами.
Сохраняются ли данные базы при сохранении конфигурации в файл?
Нет. Файл .cf содержит только описание прикладного решения: метаданные, код, формы, макеты. Для резервной копии с данными используйте выгрузку информационной базы (.dt) через соответствующую команду в конфигураторе.
Чем выгрузка в файлы отличается от хранилища конфигурации?
Хранилище — встроенный механизм версионирования платформы: разработчики захватывают объекты и помещают изменения в общее хранилище. Выгрузка в файлы — снимок конфигурации для внешних систем, чаще для Git. Их можно комбинировать, но для полноценной работы с ветками обычно выбирают Git и выгрузку в файлы.
Почему выгрузка в файлы занимает много времени?
Платформа последовательно сериализует каждый объект метаданных в отдельные файлы, а в типовых конфигурациях объектов десятки тысяч. Ускорить процесс можно выгрузкой на быстрый локальный диск и запуском в пакетном режиме без интерактивных диалогов.
Можно ли редактировать код прямо в файлах выгрузки?
Технически текст модулей редактируется любым редактором, и изменения попадут в базу при загрузке из файлов. Но править XML-описания объектов вручную рискованно: ошибка в структуре файла приведёт к отказу загрузки. Безопасно править только тексты модулей, а метаданные изменять в конфигураторе или EDT.
Какой формат выгрузки выбрать для работы с EDT?
Если проект ведётся в 1C:EDT, используйте иерархический формат выгрузки (формат EDT) — он соответствует структуре проекта в среде разработки. Обычный плоский формат подходит для конфигуратора и простых интеграций с Git без EDT.
Что важно запомнить
«Сохранить конфигурацию в файл» создаёт единый .cf для переноса и загрузки в базу, «Выгрузить конфигурацию в файлы» — дерево текстовых файлов для контроля версий. Загружаются они разными командами и не взаимозаменяемы. Перед любой загрузкой .cf в рабочую базу делайте резервную копию.