Как положить .cf-файл в хранилище конфигурации 1С
Содержание
Файл конфигурации .cf нельзя «залить» в хранилище напрямую. Порядок такой: загрузить .cf в конфигурацию базы, подключённую к хранилищу, предварительно захватив в хранилище всю конфигурацию, а затем поместить изменения в хранилище новой версией. Всё делается в Конфигураторе и занимает 10-15 минут, если права настроены заранее.
Хранилище конфигурации хранит историю версий и не даёт двум разработчикам править один объект одновременно. Поэтому файл в него попадает не «как есть», а через рабочую базу разработчика. Ниже — подготовка, сам алгоритм, особенности обновлений от поставщика, типичные сбои и автоматизация.
Что проверить до начала загрузки
Тут чаще всего и ломается процесс. Пять минут на проверку сэкономят час поисков.
- 📁 Есть путь к хранилищу: сетевая папка или каталог на сервере, куда у вас есть доступ на запись.
- 👤 В хранилище заведён ваш пользователь с нужным уровнем прав.
- 🗄️ У вас есть рабочая база разработчика (копия, не боевая), подключённая к этому хранилищу.
- 📄 Файл
.cfполучен из надёжного источника и открывается на вашей версии платформы. - 💾 Сделана выгрузка текущей версии (
.cf) — на случай отката.
Какие права нужны в хранилище
Хранилище различает четыре уровня. Для загрузки файла нужен третий или четвёртый.
| Уровень | Что можно | Подходит для загрузки |
|---|---|---|
| Только чтение | Смотреть историю, получать версии | Нет |
| Чтение и захват объектов | Брать объекты на редактирование | Нет, версию не поместить |
| Чтение, захват, помещение версий | Править и фиксировать версии | Да |
| Администратор | Всё, плюс управление пользователями | Да |
Пользователей хранилища добавляют в Конфигураторе: меню Конфигурация → Хранилище конфигурации → Администрирование → Пользователи. Пункт доступен только администратору хранилища. Пользователи хранилища — отдельный список, он не совпадает с пользователями информационной базы.
Пароль администратора хранилища не восстанавливается штатно. Запишите его в менеджер паролей сразу при создании.
Подключение рабочей базы к хранилищу
- Откройте рабочую базу в Конфигураторе.
- Выберите
Конфигурация→Хранилище конфигурации→Подключиться к хранилищу. - Укажите путь к каталогу хранилища, имя пользователя и пароль.
- Подтвердите вопрос о получении конфигурации из хранилища, если база пустая или расходится с версией хранилища.
После этого в окне конфигурации у объектов появятся пиктограммы состояния: свободен, захвачен вами, захвачен другим.
Пошагово: загрузка конфигурации из файла в хранилище
Алгоритм одинаков для обычных и типовых конфигураций, если хранилище уже существует и в нём есть хотя бы одна версия.
Шаг 1. Захватите всю конфигурацию
Загрузка .cf заменяет конфигурацию целиком. Платформа не позволит этого, пока в хранилище не захвачены объекты, которые изменятся.
- Откройте окно конфигурации:
Конфигурация→Открыть конфигурацию. - Выберите
Конфигурация→Хранилище конфигурации→Захватить объекты. - Отметьте корень конфигурации и включите флажок захвата подчинённых объектов, чтобы взять всё дерево.
- Нажмите
ОКи дождитесь окончания.
Если какой-то объект уже захвачен другим разработчиком, 1С покажет его в списке. Договоритесь, чтобы тот поместил изменения или отменил захват. Принудительно «отнять» объект может только администратор хранилища.
Шаг 2. Загрузите файл в конфигурацию базы
- В меню выберите
Конфигурация→Загрузить конфигурацию из файла. - Укажите файл
.cfи нажмитеОткрыть. - Подтвердите замену конфигурации.
Загрузка идёт от нескольких секунд до пары минут — зависит от размера. Типовая «Бухгалтерия» весит порядка 70-100 МБ в .cf, и на среднем компьютере это около минуты.
Конфигурация загружается в рабочую базу, но в хранилище пока ничего не попало. Изменения видны только вам, пока вы их не поместите.
Шаг 3. Проверьте результат до помещения
Обновите конфигурацию базы данных (клавиша F7) и запустите «1С:Предприятие» в режиме отладки, чтобы убедиться, что база стартует. Затем откройте Конфигурация → Хранилище конфигурации → Отчёт по изменениям (так обычно называется сравнение с версией хранилища) и посмотрите, сколько объектов изменилось.
Если объектов изменилось в разы больше ожидаемого, возможно, загружен не тот файл. Лучше выяснить это сейчас.
Шаг 4. Поместите изменения в хранилище
- Выберите
Конфигурация→Хранилище конфигурации→Поместить изменения. - Оставьте отмеченными все объекты.
- Впишите комментарий. Это единственная подпись версии в истории.
- Нажмите
Поместить.
Хороший комментарий — короткий и конкретный: «Загрузка релиза 3.0.150.30 от поставщика, без доработок». Плохой — «обновление». Через год вы не вспомните, что за версия.
Если в комментарий попадает номер релиза, по нему потом можно найти нужную версию в истории за секунды: Хранилище конфигурации → Показать историю.
Загрузка обновлённой конфигурации поставщика
Случай посложнее: конфигурация стоит на поддержке, и вы получили новый релиз. Простая замена через .cf сотрёт ваши доработки. Тут важно понять, какой у вас режим.
Если доработок нет
Конфигурация на поддержке без изменений: можно загружать файл обновления по описанному выше алгоритму. Релиз сразу становится новой версией в хранилище.
Если доработки есть
Нужно обновление с объединением, а не замена. Порядок другой:
- Захватите корень конфигурации с подчинёнными объектами.
- Выберите
Конфигурация→Поддержка→Обновить конфигурацию. - Укажите
Выбрать файл обновленияи выберите файл поставщика (.cfили.cfu). - В окне сравнения разберите объекты, помеченные как изменённые и у вас, и у поставщика. По каждому выберите: взять поставщика, оставить своё или объединить.
- Завершите обновление и поместите результат в хранилище.
Порядок решения конфликтов — самая трудоёмкая часть. Работайте с объектами по группам: сначала формы и модули, где доработки ожидаемы, потом остальное.
| Ситуация | Что делать с файлом | Риск |
|---|---|---|
Нет доработок, полный .cf | Загрузить из файла и поместить | Минимальный |
Есть доработки, пришёл .cfu | Обновить через Поддержка | Конфликты модулей |
Есть доработки, пришёл полный .cf | Использовать как файл обновления, не загружать напрямую | Потеря правок при прямой загрузке |
| Хранилище пустое | Создать хранилище из загруженной конфигурации | Нет |
Прямая загрузка полного .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пишет журнал, по нему видно, на каком шаге произошёл сбой. - ⏱️ Запускайте скрипт в нерабочее время: в момент загрузки хранилище блокируется для других.
- 🧪 Сначала прогоните на копии хранилища.
Хорошая практика: перед скриптом сделайте копию каталога хранилища простой командой копирования. Это страховка от сбоя посреди операции.
Когда автоматизация не нужна
Если релизов один-два в год, держать скрипты дороже, чем сделать всё руками. Автоматизация окупается от нескольких загрузок в месяц или когда процесс ведёт не тот человек, который его придумал.
Что делать после загрузки
Загрузка в хранилище — полдела. Чтобы остальные разработчики не работали на старой версии, пройдитесь по списку.
- Сообщите команде о новой версии и номере релиза.
- Каждый разработчик получает её в свою базу:
Конфигурация→Хранилище конфигурации→Обновить конфигурацию из хранилища. - Обновите конфигурацию базы данных (
F7). - Проверьте на тестовой базе ключевые сценарии: открытие основных документов, формирование отчётов, обмены.
- Только после этого переносите версию в рабочую базу.
Перед любыми изменениями в рабочей базе делайте резервную копию и согласуйте работы с регламентом вашей организации.
Мини-кейс: релиз с тремя доработанными модулями
Допустим, у вас типовая конфигурация с тремя изменёнными общими модулями и одним отчётом. Приходит релиз. Вы захватываете корень, запускаете обновление через Поддержка и видите конфликты ровно по этим четырём объектам. Остальные тысячи объектов обновляются без вашего участия.
Разбор занимает час-два: в каждом модуле вы сравниваете строки поставщика и свои и переносите доработки в новую версию. Затем помещаете результат одной версией с комментарием. Если бы вы загрузили полный .cf напрямую, все четыре правки пришлось бы восстанавливать из истории вручную, и времени ушло бы вдвое больше.
Перед следующим релизом полезно вести список доработок с указанием объектов. Он превращает разбор конфликтов из расследования в сверку по списку.
Частые вопросы
Можно ли загрузить `.cf` в хранилище без рабочей базы?
Чем `.cf` отличается от `.cfu`?
.cf — полная конфигурация, .cfu — файл обновления с набором изменений. Первый можно загрузить целиком, второй применяют через меню поддержки.Что будет с доработками при загрузке полного `.cf`?
Поддержка.