Достаём версию конфигурации из хранилища 1С: от подключения до файла .cf

· 9 мин

Содержание

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

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

Подготовка: к чему подключаться и с какими правами

Хранилище бывает трёх видов, и от вида зависит строка подключения.

Вид хранилищаЧто указать в поле «Хранилище»Где лежит
Файловое\\server\repo\ut11 или D:\Repo\ut11Папка с файлом 1cv8ddb.1CD
Сервер хранилищаtcp://server:1542/ut11Служба crserver на сервере
Через веб-серверhttp://server/repo/repo.1ccr/ut11Публикация на IIS или Apache

Что понадобится до начала работы:

  • 🔑 Пользователь и пароль хранилища. Это отдельная учётная запись, не пользователь информационной базы. Её заводит администратор хранилища.
  • 🗂 Информационная база для подключения. Для чтения истории подойдёт любая база, даже пустая. Если вы не хотите трогать рабочую — создайте новую пустую файловую базу .
  • 🧩 Та же версия платформы, что у хранилища. Для сервера хранилища номер платформы клиента должен совпадать с номером crserver полностью, вплоть до сборки (например, 8.3.24.1691 и 8.3.24.1691).
  • 📁 Доступ к папке для файлового хранилища: чтение и запись по сети. Даже просмотр истории требует записи, потому что платформа ведёт служебные файлы блокировок.

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

Как подключиться к хранилищу

  1. Запустите базу в режиме «Конфигуратор».
  2. Откройте конфигурацию: Конфигурация → Открыть конфигурацию.
  3. Выберите Конфигурация → Хранилище конфигурации → Подключиться к хранилищу.
  4. Укажите путь из таблицы выше, имя пользователя и пароль, нажмите «ОК».

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

Пустая база для выгрузки за пять минут

  1. В окне запуска 1С нажмите «Добавить» и выберите создание новой базы без конфигурации.
  2. Укажите локальную папку, например D:\Bases\EmptyForRepo, и ту же версию платформы, что у хранилища.
  3. Откройте базу в Конфигураторе и подключитесь к хранилищу по шагам выше.
  4. На вопрос о замене конфигурации ответьте согласием: в пустой базе терять нечего.

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

Как найти нужную версию в истории хранилища

История — главный инструмент. Каждое помещение в хранилище создаёт версию с номером, автором, датой и комментарием.

Открыть историю можно двумя путями:

  • через меню Конфигурация → Хранилище конфигурации → История хранилища;
  • из окна хранилища (Конфигурация → Хранилище конфигурации → Открыть хранилище): выделите корень дерева и вызовите «История» из контекстного меню.

Перед показом списка появится окно отбора. Им удобно пользоваться, когда версий сотни:

  • 📅 по дате — «с» и «по», чтобы найти, что меняли в конкретную неделю;
  • 👤 по пользователю — все помещения одного разработчика;
  • 🔢 по номерам версий — диапазон «от и до»;
  • 🏷 по наличию метки — только версии, помеченные как релизы.

История одного объекта

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

Так быстрее найти, кто и когда поправил процедуру, чем перебирать общую историю.

Метки ставьте на версии, которые ушли в рабочую базу. Через полгода «версия 412 — релиз от 14 марта» читается сразу, а номер без метки придётся сверять по датам.

Открываем версию и сохраняем её в файл .cf

В окне истории у выделенной версии есть две нужные команды. Разница между ними важная.

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

Сохранение версии в .cf пошагово

  1. Откройте историю хранилища и выделите нужную версию.
  2. Нажмите «Сохранить в файл» на панели окна истории.
  3. Укажите папку и имя, например ut11_v412.cf.
  4. Дождитесь окончания. Для типовой конфигурации уровня УТ 11 или БП 3.0 это обычно несколько минут, по сети — дольше.

Полученный .cf открывают так:

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

Если нужен один объект, а не вся конфигурация

Отдельной кнопки «выгрузить один модуль из хранилища» нет. Рабочие варианты:

  1. Откройте версию командой «Открыть», найдите объект и скопируйте текст модуля в буфер. Для формы или макета — откройте их в окне просмотра.
  2. Сохраните версию в .cf, загрузите в пустую базу и выгрузите конфигурацию в XML: Конфигурация → Выгрузить конфигурацию в файлы. Каждый объект ляжет в свой файл, модуль — в .bsl.

Второй путь дольше, но удобен, когда версию нужно положить в Git или отдать в стороннюю систему сравнения.

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

Для регулярных выгрузок окно Конфигуратора не нужно. Режим DESIGNER с параметрами хранилища сохраняет версию в файл без участия человека:

"C:\Program Files\1cv8\8.3.24.1691\bin\1cv8.exe" DESIGNER ^
  /F "D:\Bases\EmptyForRepo" ^
  /ConfigurationRepositoryF "tcp://server:1542/ut11" ^
  /ConfigurationRepositoryN "builder" ^
  /ConfigurationRepositoryP "Pa$$w0rd" ^
  /ConfigurationRepositoryDumpCfg "D:\Out\ut11_v412.cf" -v 412 ^
  /DisableStartupDialogs ^
  /Out "D:\Out\dump.log"

Что здесь важно:

  • /F — база, через которую идёт работа. Она должна быть уже подключена к этому хранилищу, иначе команда завершится ошибкой.
  • -v 412 — номер версии. Без него выгрузится последняя версия хранилища.
  • /Out — файл журнала. Смотрите его в первую очередь, если .cf не появился.

Пароль в bat-файле хранится открытым текстом. Заведите для выгрузок отдельного пользователя хранилища без права захвата и помещения, а файл скрипта закройте правами NTFS.

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

Права пользователя хранилища и захват объектов

Права в хранилище задаёт администратор: Конфигурация → Хранилище конфигурации → Администрирование → Пользователи. Набор небольшой, и для выгрузки почти ничего не требуется.

Что нужно сделатьКакие права нужны
Открыть историю, сохранить версию в файлДостаточно быть пользователем хранилища
Захватить и поместить объектыПраво на захват объектов
Менять метки и комментарии версийПраво на изменение версий
Заводить пользователей, чистить историюАдминистративные функции

Захват — когда он нужен, а когда нет

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

Порядок, если всё же надо поправить объект:

  1. В окне хранилища выделите объект и выберите «Захватить в хранилище».
  2. Внесите изменения в конфигурацию базы.
  3. Выберите «Поместить в хранилище» и напишите комментарий: что и зачем изменено.
  4. Если правки не нужны — «Отменить захват». Изменения в базе при этом можно откатить, отметив флаг получения объекта из хранилища.

Посмотреть, кто держит объект, можно прямо в окне хранилища: у захваченных объектов стоит отметка, а в колонке видно имя пользователя.

Сравнение версий и перенос изменений

Открыть версию — полдела. Обычно нужно понять, что поменялось, и иногда вернуть старый кусок кода.

Сравнить две версии

  1. Откройте историю хранилища.
  2. Выделите две версии, удерживая Ctrl.
  3. Выберите команду сравнения в панели или контекстном меню.

Отчёт покажет изменённые объекты деревом. Двойной щелчок по модулю откроет построчное сравнение текста: удалённое и добавленное выделяются цветом.

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

Вернуть старый код

Безопасный путь — ручной перенос:

  1. Найдите объект в истории и откройте нужную версию.
  2. Скопируйте нужную процедуру.
  3. Захватите объект в своей базе, вставьте код, поместите с комментарием «возврат кода из версии 398».

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

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

Ошибки при открытии хранилища и что с ними делать

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

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

Если ничего не помогло

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

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

Изменения в копию не помещайте: это уже другое хранилище, и в общую историю они не попадут.

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

Можно ли открыть файл 1cv8ddb.1CD как обычную базу?
Нет. Это служебная база хранилища, а не информационная база. Платформа открывает её только через подключение к хранилищу из Конфигуратора.
Нужна ли лицензия, чтобы выгрузить версию из хранилища?
Да, для запуска Конфигуратора нужна лицензия платформы на этом компьютере или доступная по сети. Отдельной лицензии на хранилище нет.
Сохранится ли в .cf информация об авторах и комментариях версий?
Нет. Файл .cf содержит только конфигурацию выбранной версии. История, авторы и метки остаются в хранилище.
Чем отличаются «Сохранить в файл» и «Обновить конфигурацию из хранилища»?
Первая команда пишет версию в файл и базу не трогает. Вторая загружает последнюю версию хранилища в конфигурацию вашей базы.
Можно ли выгрузить версию из хранилища расширения?
Да. У расширения своё хранилище, его подключают отдельно из окна расширений конфигурации. История версий и сравнение работают по тем же правилам.