Выгрузка и загрузка конфигурации 1С 8.3
Содержание
Чтобы вытащить конфигурацию 1С, запустите базу в режиме Конфигуратор и выберите меню Конфигурация → Сохранить конфигурацию в файл…. На выходе — один файл с расширением .cf, в котором лежит вся структура прикладного решения: документы, справочники, отчёты, формы и модули. Это самый частый способ, и в большинстве случаев нужен именно он.
Но выгрузить конфигурацию можно по-разному, и выбор зависит от задачи. Для переноса на другую базу подходит .cf. Для сравнения двух версий, хранения в Git и работы в команде конфигурацию выгружают в набор XML-файлов. Отдельно сохраняют расширения (.cfe), а всю базу целиком вместе с данными — в архив .dt. Ниже — когда что выбирать и как это сделать без ошибок.
Чем различаются форматы выгрузки
Прежде чем жать кнопки, определитесь, что именно вы хотите получить. Перепутать формат легко, а результат будет разным.
| Формат | Что внутри | Когда применяют |
|---|---|---|
.cf | Только конфигурация, одним файлом | Перенос, бэкап структуры, передача доработок |
| XML-файлы | Та же конфигурация, но разложенная по файлам | Сравнение версий, хранилище Git, командная разработка |
.cfe | Одно расширение конфигурации | Выгрузка доработок, не трогая типовую |
.dt | Конфигурация плюс все данные базы | Полный бэкап, перенос базы на другой сервер |
Файл .cf не содержит ваших данных — только «чертёж» решения. Если нужно сохранить и справочники с документами, выгружайте информационную базу в .dt через Администрирование → Выгрузить информационную базу….
Важно понимать разницу между состояниями конфигурации. В базе их обычно три:
- Основная конфигурация — то, что вы видите и правите в дереве объектов.
- Конфигурация базы данных — то, по чему реально работают пользователи.
- Конфигурация поставщика — эталон типового решения, на поддержке которого стоит база.
Команда «Сохранить конфигурацию
в файл» выгружает именно основную конфигурацию. Если вы что-то поменяли, но ещё не нажали «Обновить конфигурацию
базы данных» (F7), основная конфигурация и конфигурация базы данных будут различаться — и в .cf попадёт основная, со всеми незафиксированными правками. Перед выгрузкой «на бэкап» имеет смысл сначала обновить конфигурацию базы данных, чтобы оба состояния совпадали.
Что подготовить перед выгрузкой
Выгрузка в файл — операция безопасная: она только читает конфигурацию и ничего не меняет в базе. Монопольный доступ и остановка пользователей для неё не нужны. А вот для обратной загрузки подготовка обязательна — об этом ниже.
Для запуска Конфигуратора нужны права администратора в базе. Если список пользователей заполнен, войти под учётной записью без административной роли не получится — Конфигуратор просто не откроется.
Для файловой базы путь на диске находится в свойствах базы в окне запуска (кнопка Изменить). Для клиент-серверной — запомните имя сервера и имя базы, они понадобятся в пакетном режиме.
Если планируете выгрузку из командной строки, заранее найдите папку с нужной версией платформы. Обычно это C:\Program Files\1cv8\<номер версии>\bin\1cv8.exe. Номер версии видно в окне запуска баз (Справка → О программе) и в самом Конфигураторе — берите тот 1cv8.exe, под которым работает ваша база, иначе выгрузка может завершиться ошибкой совместимости.
Сохранение конфигурации в файл .cf
Это классический способ, им пользуются чаще всего.
- Запустите базу в режиме
Конфигуратор. - Откройте меню
Конфигурация → Сохранить конфигурацию в файл…. - Укажите папку и имя файла. Расширение
.cfподставится автоматически. - Нажмите
Сохранитьи дождитесь окончания — на крупной конфигурации это занимает от нескольких секунд до пары минут.
Готовый .cf можно переносить на флешке, отправлять коллеге или класть в архив. Чтобы залить его в другую базу, там выбирают Конфигурация → Загрузить конфигурацию из файла….
Одно ограничение, о котором часто спрашивают: в .cf выгружается конфигурация целиком — отдельный документ или один справочник так не вытащить. Если нужно передать только часть доработок, коллега загружает ваш .cf не напрямую, а через Конфигурация → Сравнить, объединить с конфигурацией из файла… и переносит оттуда только выбранные объекты. Это же окно помогает, когда база стоит на поддержке и полная замена конфигурации недопустима.
Загрузить .cf поверх несовместимой конфигурации не выйдет. Если корни конфигураций разные (например, пытаетесь залить «Бухгалтерию» в «Управление торговлей»), платформа откажет. .cf корректно грузится только в базу с той же или совместимой конфигурацией.
Выгрузка в XML-файлы для сравнения и Git
Если конфигурацию нужно положить под систему контроля версий или сравнить две редакции по строкам, формат .cf не подойдёт — это бинарный «слиток». Для таких задач есть выгрузка в файлы.
- В Конфигураторе откройте
Конфигурация → Выгрузить конфигурацию в файлы…. - Выберите пустую папку — платформа создаст в ней дерево подпапок и множество XML-файлов (по объекту на файл).
- Подтвердите выгрузку.
Такую папку удобно закоммитить в Git: каждый объект — отдельный файл, и при изменении видно, что именно поменялось. Загружают обратно командой Конфигурация → Загрузить конфигурацию из файлов…, указывая ту же папку.
Для разового сравнения двух конфигураций выгрузка в файлы не обязательна — в Конфигураторе есть встроенный механизм Конфигурация → Сравнить, объединить с конфигурацией из файла…. Он покажет, какие объекты добавлены, удалены или изменены, и позволит перенести выбранные различия. XML-выгрузка нужна там, где сравнение должно жить в системе контроля версий и обновляться на каждый коммит, а не делаться руками.
Выгрузка в файлы и в .cf — это одна и та же конфигурация в разных упаковках. Из XML-папки всегда можно собрать .cf, и наоборот.
Как выгрузить расширение конфигурации
Расширения появились в платформе 8.3.6 и позволяют дорабатывать типовую конфигурацию , не снимая её с поддержки. Выгружают расширение отдельно от основной конфигурации.
- Откройте
Конфигурация → Расширения конфигурации— появится список подключённых расширений. - Выделите нужное расширение в списке.
- Не закрывая список, выберите
Конфигурация → Сохранить конфигурацию в файл…. Платформа сохранит именно выделенное расширение в файл.cfe.
Загружают расширение зеркально: в окне списка расширений выбирают Загрузить конфигурацию из файла… и указывают .cfe.
Расширение тоже можно выгрузить в XML-файлы — тем же пунктом Выгрузить конфигурацию в файлы…, если активен список расширений. Это пригодится, когда доработки хранятся в репозитории отдельно от основной конфигурации.
Пакетный режим: выгрузка из командной строки
Когда выгрузку нужно поставить на расписание или встроить в скрипт деплоя, кнопки Конфигуратора не годятся. Платформа умеет делать то же самое в пакетном режиме — через запуск 1cv8 с параметром DESIGNER.
Выгрузка в .cf для файловой базы:
"C:\Program Files\1cv8\<номер>\bin\1cv8.exe" DESIGNER /F"C:\base" /N"Админ" /P"пароль" /DumpCfg "C:\out\cf\config.cf" /DisableStartupMessages
Выгрузка в XML-файлы:
"...\1cv8.exe" DESIGNER /F"C:\base" /N"Админ" /P"пароль" /DumpConfigToFiles "C:\out\src" /DisableStartupMessages
Разберём параметры:
/F"путь"— файловая база; для клиент-серверной вместо него/S"сервер\имя_базы"./Nи/P— логин и пароль администратора./DumpCfg "файл"— выгрузить конфигурацию в.cf./DumpConfigToFiles "папка"— выгрузить в XML-файлы./DisableStartupMessages— подавить информационные окна, иначе пакетный запуск может «зависнуть» на диалоге.
Для клиент-серверной базы меняется только способ подключения — вместо пути к папке указывают сервер и имя базы:
"...\1cv8.exe" DESIGNER /S"srv-1c\buh" /N"Админ" /P"пароль" /DumpCfg "C:\out\cf\config.cf" /DisableStartupMessages
Чтобы выгрузить именно расширение, к команде добавляют параметр -Extension с именем расширения. Полный список подкоманд пакетного режима смотрите в документации по платформе — там же перечислены коды возврата, по которым скрипт понимает, прошла выгрузка или упала.
Такую команду удобно повесить в планировщик заданий Windows на ночь: ежедневная выгрузка .cf или XML в датированную папку — простой способ вести историю конфигурации без ручного труда. Выгрузка не блокирует базу, поэтому пользователям она не мешает.
Пароль в открытом виде в командной строке виден в журналах и в списке процессов. Для регулярных выгрузок заводите отдельного служебного пользователя с минимальными правами и храните команду в защищённом месте.
Как загрузить конфигурацию обратно
Загрузка — операция уже не только на чтение. Она меняет конфигурацию базы, поэтому требует подготовки.
- Загрузка выполняется в монопольном режиме: другие пользователи в базе работать не должны. Платформа попросит закрыть остальные сеансы.
- В Конфигураторе выберите
Конфигурация → Загрузить конфигурацию из файла…(для.cf) илиЗагрузить конфигурацию из файлов…(для XML-папки). - После загрузки нажмите
Обновить конфигурацию базы данных(F7) — без этого шага изменения останутся в основной конфигурации, но не попадут в рабочую базу.
Если в базе есть пользователи, перед загрузкой предупредите их: все незавершённые сеансы придётся закрыть. Делайте это в нерабочее время и сначала сделайте резервную копию базы — откатить неудачную загрузку иначе будет нечем.
В пакетном режиме загрузка выполняется командами /LoadCfg (из .cf), /LoadConfigFromFiles (из XML) и /UpdateDBCfg (аналог F7).
Если вы сохраняли не конфигурацию, а всю базу в .dt, восстановление делается иначе — через Администрирование → Загрузить информационную базу…. Эта операция полностью перезаписывает текущую базу: и конфигурацию, и все данные. Поэтому её выполняют либо в чистую пустую базу, либо с полным пониманием, что текущее содержимое будет потеряно.
Загрузка .dt затирает базу целиком. Никогда не грузите .dt в рабочую базу «проверить» — сначала создайте отдельную пустую базу и восстанавливайте в неё. Для клиент-серверных баз загрузка .dt тоже требует монопольного доступа и может занять заметное время на больших объёмах.
Разделяйте задачи: .cf и XML возвращают структуру решения, .dt возвращает базу с данными. Перепутать их — главная причина неудачных восстановлений.
Частые ошибки при выгрузке и загрузке
Большинство проблем возникает не на выгрузке, а на обратной загрузке. Вот с чем сталкиваются чаще всего.
.cf с другим корнем конфигурации. Так нельзя: .cf грузится только в базу с совместимой конфигурацией. Для переноса данных используйте .dt, а не .cf.Обновить конфигурацию базы данных) и подтвердите изменения.Отдельная частая путаница — между выгрузкой конфигурации и выгрузкой информационной базы. Если коллега просит «скинуть базу целиком», ему нужен .dt, а не .cf: в .cf данных нет.
Частые вопросы
Чем отличается выгрузка конфигурации от выгрузки информационной базы?
.cf) — это только структура решения, без ваших документов и справочников. Информационная база (.dt) — это конфигурация плюс все данные. Для полного бэкапа берите .dt.Можно ли выгрузить конфигурацию без остановки пользователей?
Почему мой `.cf` не загружается в другую базу?
.cf грузится только в совместимую конфигурацию. Чтобы перенести именно эту базу с данными, выгрузите её в .dt.В каком формате выгружать конфигурацию для хранения в Git?
Выгрузить конфигурацию в файлы…). Каждый объект лежит отдельным файлом, поэтому система контроля версий показывает построчные изменения. Формат .cf для этого не подходит — он бинарный.Как выгрузить только расширение, не трогая типовую конфигурацию?
Конфигурация → Расширения конфигурации, выделите расширение и сохраните его в файл — получите .cfe. Основная конфигурация при этом не затрагивается.