Передача конфигурации 1С между базами: разбор способов

· 9 мин

Содержание

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

Ниже — каждый из этих способов по шагам, с точными пунктами меню Конфигуратора, нужными правами и ошибками, на которые чаще всего натыкаются. Всё описано для платформы 1С 8.3; в Конфигураторе меню одинаковые для любой конфигурации — БП 3.0, ЗУП 3.1, УТ 11.

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

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

СпособЧто переноситКогда применять
Выгрузка .cf + загрузкаТолько конфигурациюПеренести доработки в чистую базу или на рабочий сервер
Выгрузка .dtКонфигурацию и данныеОтдать базу целиком, развернуть копию
Хранилище конфигурацииКонфигурацию, с историей версийРазработка в несколько рук
Сравнение и объединениеВыбранные объектыПеренести часть изменений, не затирая остальное
Механизм поддержки (.cfu)Обновление от поставщикаВыпуск тиражного решения, обновление дочерних баз
Что именно нужно сделать с конфигурацией?

Что проверить до начала: права и монопольный доступ

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

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

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

  • 📦 загрузка информационной базы из .dt;
  • 🔧 обновление конфигурации базы данных, если менялась структура (реквизиты, таблицы);
  • 🧪 тестирование и исправление информационной базы.

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

Перед загрузкой .dt или крупным обновлением сделайте резервную копию базы -приёмника. Откатить загрузку .dt штатными средствами нельзя — она затирает содержимое целиком.

Проверьте и совместимость самих решений. Если вы переносите конфигурацию типового решения, в приёмнике она заменится полностью — вместе с версией. Переносить доработанную БП 3.0 поверх ЗУП 3.1 бессмысленно: это разные конфигурации, и объединять их построчно платформа не даст. Файл .cf разумно называть так, чтобы по имени было видно конфигурацию и версию, — это избавит от путаницы, когда таких файлов накопится несколько.

Выгрузка конфигурации в файл .cf и загрузка в другую базу

Это основной способ перенести доработки из одной базы в другую, когда данные приёмника трогать не нужно.

На базе-источнике:

  1. Откройте базу в Конфигураторе.
  2. Меню Конфигурация → Сохранить конфигурацию в файл….
  3. Укажите имя и папку, сохраните файл с расширением .cf.

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

На базе-приёмнике:

  1. Откройте приёмник в Конфигураторе.
  2. Меню Конфигурация → Загрузить конфигурацию из файла….
  3. Выберите .cf, подтвердите загрузку.
  4. Платформа предложит обновить конфигурацию базы данных — согласитесь. Если структура изменилась, обновление запросит монопольный доступ.

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

Выгрузка всей базы в .dt. Когда нужно передать и конфигурацию, и данные, используйте Администрирование → Выгрузить информационную базу…. Получится один файл .dt. На приёмнике — Администрирование → Загрузить информационную базу…. Эта операция требует монопольного доступа и полностью замещает базу.

Передача через хранилище конфигурации

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

Создание хранилища на источнике:

  1. Конфигурация → Хранилище конфигурации → Создать хранилище….
  2. Укажите путь: локальная или сетевая папка, либо адрес сервера хранилища.
  3. Задайте имя и пароль администратора хранилища.

Подключение на другом рабочем месте:

  1. Конфигурация → Хранилище конфигурации → Подключиться к хранилищу….
  2. Укажите тот же путь и учётные данные.
  3. После подключения конфигурация базы синхронизируется с хранилищем.

Дальше работа идёт через две команды:

  • Захватить объекты — берёте объект в работу, для остальных он блокируется на изменение.
  • Поместить объекты в хранилище — фиксируете правки, снимаете блокировку.

Хранилище удобно, когда одну конфигурацию правят несколько человек. Для разового переноса доработок в соседнюю базу оно избыточно — проще выгрузить .cf.

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

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

Сравнение и объединение конфигураций

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

  1. На приёмнике откройте Конфигурация → Сравнить, объединить с конфигурацией из файла….
  2. Укажите .cf источника.
  3. Платформа построит дерево объектов с пометками: что добавлено, что изменено, что удалено.
  4. Снимите галочки с объектов, которые переносить не нужно.
  5. Для спорных объектов задайте порядок приоритета — чьи свойства считать главными.
  6. Выполните объединение, затем обновите конфигурацию базы данных.

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

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

Механизм поддержки: файлы поставки и обновления

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

Поставщик создаёт два файла через Конфигурация → Поставка конфигурации → Создать файлы поставки и обновления…:

  • .cf — файл поставки, полная конфигурация нужного релиза;
  • .cfu — файл обновления, разница между версиями.

На стороне получателя конфигурация должна стоять на поддержке поставщика. Проверить это можно в Конфигурация → Поддержка → Настройка поддержки… — там видно, включена ли поддержка и разрешены ли изменения.

Обновление из файла .cfu выполняется так:

  1. Конфигурация → Поддержка → Обновить конфигурацию → Обновление из файла….
  2. Укажите .cfu (или .cf поставки).
  3. Платформа сверит версии и покажет, что изменится.
  4. Там, где правки поставщика пересекаются с вашими доработками, разрешите конфликты вручную.
  5. Примите обновление и обновите конфигурацию базы данных.

Отдельная история — расширения конфигурации (.cfe). Они появились в платформе 8.3.6 и позволяют дорабатывать типовое решение, не снимая его с поддержки. Загрузка расширения (Конфигурация → Расширения конфигурации) и обновление конфигурации базы данных — два разных шага.

Режим поддержки задаётся для объектов конфигурации и бывает трёх видов:

  • 🔒 объект поставщика не редактируется — менять нельзя, зато обновления накатываются без конфликтов;
  • 🛠 редактируется с сохранением поддержки — дорабатывать можно, связь с поставщиком сохраняется, при обновлении возможны конфликты;
  • ✂️ снят с поддержки — объект больше не обновляется поставщиком, полная свобода правок и полная ответственность за них.

От выбранного режима прямо зависит, насколько болезненно пройдут будущие обновления. Чем больше объектов снято с поддержки, тем больше ручной работы при каждом новом релизе поставщика.

Частые ошибки при передаче конфигурации

Большинство сбоев при переносе — это либо несовместимость версий, либо попытка выполнить операцию без монопольного доступа.

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

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

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

Чем отличается файл .cf от .dt?
.cf содержит только конфигурацию без данных. .dt — это выгрузка всей информационной базы: и конфигурация, и справочники с документами. Для переноса одних доработок берут .cf, для передачи базы целиком — .dt.
Можно ли передать конфигурацию, не останавливая работу пользователей?
Сохранить конфигурацию в файл .cf — можно в любой момент, монополия не нужна. А вот загрузка в приёмник и обновление структуры базы потребуют монопольного доступа, то есть все сеансы придётся завершить.
Загрузится ли конфигурация из более новой версии платформы в старую?
Нет. Файл, сохранённый в новой версии платформы, в более старой не откроется. Номер платформы приёмника должен быть не ниже, чем у источника. Решение — обновить платформу приёмника.
Как перенести только один отчёт или обработку, а не всю конфигурацию?
Внешние отчёты и обработки (.erf, .epf) переносятся простым копированием файла — их не нужно загружать в конфигурацию. Если же объект встроен в конфигурацию, используйте сравнение и объединение и оставьте галочку только на нужном объекте.
Что выбрать для совместной разработки — хранилище или обмен файлами .cf?
Если конфигурацию правят несколько человек регулярно, заводите хранилище: оно ведёт историю версий и блокирует объекты от одновременного изменения. Разовый обмен .cf для командной работы не подходит — легко затереть чужие правки.