Как положить .cf-файл в хранилище конфигурации 1С

· 9 мин

Содержание

Файл конфигурации .cf нельзя «залить» в хранилище напрямую. Порядок такой: загрузить .cf в конфигурацию базы, подключённую к хранилищу, предварительно захватив в хранилище всю конфигурацию, а затем поместить изменения в хранилище новой версией. Всё делается в Конфигураторе и занимает 10-15 минут, если права настроены заранее.

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

Что проверить до начала загрузки

Тут чаще всего и ломается процесс. Пять минут на проверку сэкономят час поисков.

  • 📁 Есть путь к хранилищу: сетевая папка или каталог на сервере, куда у вас есть доступ на запись.
  • 👤 В хранилище заведён ваш пользователь с нужным уровнем прав.
  • 🗄️ У вас есть рабочая база разработчика (копия, не боевая), подключённая к этому хранилищу.
  • 📄 Файл .cf получен из надёжного источника и открывается на вашей версии платформы.
  • 💾 Сделана выгрузка текущей версии (.cf) — на случай отката.

Какие права нужны в хранилище

Хранилище различает четыре уровня. Для загрузки файла нужен третий или четвёртый.

УровеньЧто можноПодходит для загрузки
Только чтениеСмотреть историю, получать версииНет
Чтение и захват объектовБрать объекты на редактированиеНет, версию не поместить
Чтение, захват, помещение версийПравить и фиксировать версииДа
АдминистраторВсё, плюс управление пользователямиДа

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

Пароль администратора хранилища не восстанавливается штатно. Запишите его в менеджер паролей сразу при создании.

Подключение рабочей базы к хранилищу

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

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

Пошагово: загрузка конфигурации из файла в хранилище

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

Шаг 1. Захватите всю конфигурацию

Загрузка .cf заменяет конфигурацию целиком. Платформа не позволит этого, пока в хранилище не захвачены объекты, которые изменятся.

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

Если какой-то объект уже захвачен другим разработчиком, 1С покажет его в списке. Договоритесь, чтобы тот поместил изменения или отменил захват. Принудительно «отнять» объект может только администратор хранилища.

Шаг 2. Загрузите файл в конфигурацию базы

  1. В меню выберите Конфигурация → Загрузить конфигурацию из файла.
  2. Укажите файл .cf и нажмите Открыть.
  3. Подтвердите замену конфигурации.

Загрузка идёт от нескольких секунд до пары минут — зависит от размера. Типовая «Бухгалтерия» весит порядка 70-100 МБ в .cf, и на среднем компьютере это около минуты.

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

Шаг 3. Проверьте результат до помещения

Обновите конфигурацию базы данных (клавиша F7) и запустите «1С:Предприятие» в режиме отладки, чтобы убедиться, что база стартует. Затем откройте Конфигурация → Хранилище конфигурации → Отчёт по изменениям (так обычно называется сравнение с версией хранилища) и посмотрите, сколько объектов изменилось.

Если объектов изменилось в разы больше ожидаемого, возможно, загружен не тот файл. Лучше выяснить это сейчас.

Шаг 4. Поместите изменения в хранилище

  1. Выберите Конфигурация → Хранилище конфигурации → Поместить изменения.
  2. Оставьте отмеченными все объекты.
  3. Впишите комментарий. Это единственная подпись версии в истории.
  4. Нажмите Поместить.

Хороший комментарий — короткий и конкретный: «Загрузка релиза 3.0.150.30 от поставщика, без доработок». Плохой — «обновление». Через год вы не вспомните, что за версия.

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

Перед нажатием «Поместить»
Выполнено: 0 / 5

Загрузка обновлённой конфигурации поставщика

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

Если доработок нет

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

Если доработки есть

Нужно обновление с объединением, а не замена. Порядок другой:

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

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

СитуацияЧто делать с файломРиск
Нет доработок, полный .cfЗагрузить из файла и поместитьМинимальный
Есть доработки, пришёл .cfuОбновить через ПоддержкаКонфликты модулей
Есть доработки, пришёл полный .cfИспользовать как файл обновления, не загружать напрямуюПотеря правок при прямой загрузке
Хранилище пустоеСоздать хранилище из загруженной конфигурацииНет

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

Новое хранилище из файла

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

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

Типичные сбои при загрузке и как их устранить

Ниже — не пересказ шагов, а ситуации, где процесс реально встаёт.

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

Если хранилище «зависло» с захватом

Разработчик ушёл в отпуск и забыл поместить изменения. Объекты остаются захваченными. Администратор хранилища может снять захват: Хранилище конфигурации → Администрирование → Снять захват (название пункта могло отличаться, ищите по слову «захват» в этом меню). Правки, не помещённые в хранилище, останутся только на машине того разработчика, это нужно обсудить заранее.

Если версий в хранилище стало слишком много

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

Автоматизация: загрузка из командной строки

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

Схема пакетного файла:

set DESIGNER="C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe"
set BASE=D:\Bases\Work
set REPO=\\server\repo\main
set CF=D:\Releases\new_release.cf

%DESIGNER% DESIGNER /F %BASE% /N Разработчик /P ПарольБазы ^
 /ConfigurationRepositoryF %REPO% /ConfigurationRepositoryN Разработчик /ConfigurationRepositoryP ПарольХранилища ^
 /ConfigurationRepositoryLock -Objects objects.xml ^
 /LoadCfg %CF% ^
 /ConfigurationRepositoryCommit -comment "Загрузка релиза из файла" ^
 /Out D:\Logs\load.log

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

Что стоит предусмотреть:

  • 🔐 Пароли храните не в самом файле, а в переменных окружения или менеджере секретов.
  • 📜 Параметр /Out пишет журнал, по нему видно, на каком шаге произошёл сбой.
  • ⏱️ Запускайте скрипт в нерабочее время: в момент загрузки хранилище блокируется для других.
  • 🧪 Сначала прогоните на копии хранилища.

Хорошая практика: перед скриптом сделайте копию каталога хранилища простой командой копирования. Это страховка от сбоя посреди операции.

Когда автоматизация не нужна

Если релизов один-два в год, держать скрипты дороже, чем сделать всё руками. Автоматизация окупается от нескольких загрузок в месяц или когда процесс ведёт не тот человек, который его придумал.

Что делать после загрузки

Загрузка в хранилище — полдела. Чтобы остальные разработчики не работали на старой версии, пройдитесь по списку.

  1. Сообщите команде о новой версии и номере релиза.
  2. Каждый разработчик получает её в свою базу: Конфигурация → Хранилище конфигурации → Обновить конфигурацию из хранилища.
  3. Обновите конфигурацию базы данных (F7).
  4. Проверьте на тестовой базе ключевые сценарии: открытие основных документов, формирование отчётов, обмены.
  5. Только после этого переносите версию в рабочую базу.

Перед любыми изменениями в рабочей базе делайте резервную копию и согласуйте работы с регламентом вашей организации.

Мини-кейс: релиз с тремя доработанными модулями

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

Разбор занимает час-два: в каждом модуле вы сравниваете строки поставщика и свои и переносите доработки в новую версию. Затем помещаете результат одной версией с комментарием. Если бы вы загрузили полный .cf напрямую, все четыре правки пришлось бы восстанавливать из истории вручную, и времени ушло бы вдвое больше.

Перед следующим релизом полезно вести список доработок с указанием объектов. Он превращает разбор конфликтов из расследования в сверку по списку.

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

Можно ли загрузить `.cf` в хранилище без рабочей базы?
Нет. Хранилище принимает изменения только от конфигурации, подключённой к нему через Конфигуратор.
Чем `.cf` отличается от `.cfu`?
.cf — полная конфигурация, .cfu — файл обновления с набором изменений. Первый можно загрузить целиком, второй применяют через меню поддержки.
Что будет с доработками при загрузке полного `.cf`?
Если загружать напрямую, они заменятся содержимым файла. Чтобы сохранить правки, используйте обновление с объединением через Поддержка.
Можно ли откатить загруженную версию?
Да. История версий хранится, любую можно получить обратно и поместить как новую. Удалить версию из истории штатно нельзя.
Нужны ли права администратора хранилища?
Нет, достаточно уровня «Чтение, захват и помещение версий». Администратор нужен для управления пользователями и снятия чужого захвата.
Почему загрузка не видна коллегам?
Пока вы не нажали «Поместить изменения», всё лежит только в вашей базе. Им нужно ещё и обновиться из хранилища.