Отвязка информационной базы от хранилища конфигурации: Конфигуратор, командная строка и разбор блокировок
Содержание
Чтобы отключиться от хранилища 1С, откройте базу в Конфигураторе и выберите Конфигурация → Хранилище конфигурации → Отключиться от хранилища, затем подтвердите действие. Конфигурация базы остаётся такой, какая она сейчас, а замки с объектов в дереве исчезают — их снова можно править без захвата.
Сложности начинаются в четырёх случаях: хранилище переехало на другой сервер, его файл недоступен, на вас висят захваченные объекты или нужно отвязать сразу десяток копий баз. Для каждого есть свой порядок действий, а в конце — короткая проверка, что отвязка прошла чисто.
Зачем отвязывать базу от хранилища и что при этом происходит
Хранилище конфигурации — это общее хранилище исходников, через которое несколько разработчиков работают с одной конфигурацией. Каждая база-участник хранит у себя «привязку»: адрес хранилища, имя пользователя хранилища и сведения о том, какая версия конфигурации получена последней.
Типичные причины отключиться:
- 🧳 Копия базы для теста или для бухгалтерии. Базу развернули из
.dtразработчика, и она унаследовала привязку. Работать в ней с хранилищем никто не собирается. - 🏁 Доработки закончены. Проект сдан, хранилище больше не ведётся, а Конфигуратор при каждом запуске пытается к нему достучаться.
- 🔄 Переезд хранилища. Старый адрес мёртв, нужно отвязаться и подключиться заново к новому.
- 🛠️ Обновление типовой конфигурации. Пока база на поддержке и одновременно в хранилище, часть операций неудобна, и разработчик решает обновить «чистую» копию отдельно.
- 🚫 Ошибки привязки. База ругается на хранилище, хотя оно никому не нужно.
Что важно знать до нажатия кнопки:
| Что | Что с ним будет после отключения |
|---|---|
| Основная конфигурация базы | Остаётся как есть, включая ваши непомещённые изменения |
| Конфигурация базы данных (то, с чем работают пользователи) | Не меняется |
| Само хранилище и его версии | Не меняются, отключение их не трогает |
| Объекты, захваченные вами в хранилище | Остаются захваченными в хранилище за вашим пользователем |
| Привязка в других базах | Не меняется — отключается только текущая база |
Последняя строка таблицы про захваты — главная ловушка. Отключились, забыли — и коллеги неделю не могут взять в работу модуль, который «держит» пользователь, давно ушедший в отпуск.
Подготовка: что сделать до отключения от хранилища
Перед отвязкой потратьте пять минут на три действия.
- Сохраните конфигурацию в файл.
Конфигурация → Сохранить конфигурацию в файл...— получите.cfс текущим состоянием. Если что-то пойдёт не так, будет из чего восстановиться. - Разберитесь с захваченными объектами. Откройте окно хранилища:
Конфигурация → Хранилище конфигурации → Конфигурация хранилища. Объекты, захваченные вами, отмечены значком замка с галочкой. - Решите судьбу изменений. Для каждого захваченного объекта есть два пути:
- нужны изменения коллегам —
Поместить изменения в хранилище(команда в контекстном меню объекта или в менюКонфигурация → Хранилище конфигурации); - изменения не нужны —
Отменить захват в хранилище, тогда объект в хранилище освободится, а в вашей базе можно откатить правки, получив объект из хранилища.
- нужны изменения коллегам —
Проще всего выделить корень дерева «Конфигурация» в окне хранилища и вызвать команду поместить или отменить захват для всех объектов сразу. Платформа покажет список захваченного — останется проверить флажки.
Если вы отключаете не свою базу, а копию из .dt, захваты в ней принадлежат тому пользователю хранилища, под которым работала исходная база. Отменять их из копии не нужно: этим займётся владелец в своей рабочей базе.
Отключение через меню Конфигуратора: основной способ
Штатный путь работает и для файловой, и для клиент-серверной базы.
Шаг 1. Откройте базу в режиме Конфигуратора
Запустите 1С, выберите базу в списке и нажмите Конфигуратор. Войдите пользователем с административными правами в информационной базе — без них команды работы с хранилищем могут быть недоступны.
Если при входе Конфигуратор сам пытается подключиться к хранилищу и выдаёт ошибку соединения, закройте окно ошибки. Конфигуратор откроется, просто без активного соединения с хранилищем.
Шаг 2. Выполните команду отключения
Откройте Конфигурация → Хранилище конфигурации → Отключиться от хранилища. Платформа задаст вопрос о подтверждении — ответьте Да.
Если в базе остались захваченные объекты, вы увидите предупреждение. Это сигнал вернуться к подготовке и решить их судьбу. Если вы уверены, что захваты не важны (например, это одноразовая тестовая копия), подтверждайте.
Шаг 3. Обновите конфигурацию базы данных, если нужно
Отключение не меняет конфигурацию базы данных. Но если вы до этого получали изменения из хранилища и не обновили БД, внизу дерева будет висеть признак расхождения. Выполните Конфигурация → Обновить конфигурацию базы данных (F7) в удобное время.
Обновление структуры базы данных может потребовать монопольного доступа. Если пользователи работают в базе, делайте это после окончания рабочего дня или договоритесь с ними заранее: при принудительном завершении их сеансы оборвутся.
Отключение расширения от хранилища
Расширение конфигурации
привязывается к хранилищу отдельно от основной конфигурации и отключается тоже отдельно. Откройте Конфигурация → Расширения конфигурации, выберите расширение и откройте его конфигурацию: команды хранилища для него вызываются из этого окна. Отключение основной конфигурации расширения не отвязывает, и наоборот.
Клиент-серверная база: что учесть при отключении от хранилища
В клиент-серверном варианте привязка к хранилищу хранится в самой информационной базе на сервере 1С. Отсюда несколько следствий.
- 🌐 Отключение действует для всех. Не важно, с какого компьютера вы зашли в Конфигуратор: база отвязывается целиком. Другой разработчик, открывший ту же базу, тоже увидит её отключённой.
- 👥 Координация с командой. Если в базе одновременно работают несколько разработчиков под разными пользователями хранилища, договоритесь заранее. Иначе кто-то потеряет возможность помещать изменения посреди работы.
- 🔌 Тип хранилища не важен. База может быть привязана к файловому хранилищу по сетевому пути, к серверу хранилища по адресу вида
tcp://srv-repo/MyRepoили к хранилищу, опубликованному через веб-сервер поhttp://. Команда отключения одна и та же.
При переезде сервера хранилища удобная последовательность такая:
- В каждой базе-участнике поместите или отмените захваты, пока старый сервер жив.
- Отключите базы от хранилища.
- Перенесите хранилище на новый сервер.
- Подключите базы заново:
Конфигурация → Хранилище конфигурации → Подключиться к хранилищу, укажите новый адрес.
При повторном подключении к непустому хранилищу платформа предложит заменить конфигурацию базы версией из хранилища. Непомещённые локальные изменения при этом пропадут. Поэтому порядок «сначала поместить, потом отключить» здесь обязателен.
Отключение через командную строку и пакетный режим
Когда копий базы много или Конфигуратор надо запускать скриптом, используйте пакетный режим. У платформы 8.3 для этого есть параметр /ConfigurationRepositoryUnbindCfg.
Для файловой базы:
"C:\Program Files\1cv8\8.3.25.1374\bin\1cv8.exe" DESIGNER /F "D:\Bases\Buh_test" /N "Администратор" /P "пароль" /ConfigurationRepositoryUnbindCfg -force /Out "D:\Logs\unbind.log"
Для клиент-серверной базы вместо /F укажите сервер и имя базы:
"C:\Program Files\1cv8\8.3.25.1374\bin\1cv8.exe" DESIGNER /S "srv-1c\buh_test" /N "Администратор" /P "пароль" /ConfigurationRepositoryUnbindCfg -force /Out "D:\Logs\unbind.log"
Что значат параметры:
| Параметр | Назначение |
|---|---|
DESIGNER | Запуск в режиме Конфигуратора |
/F или /S | Путь к файловой базе или «сервер\база» |
/N, /P | Пользователь и пароль информационной базы |
/ConfigurationRepositoryUnbindCfg | Отключить конфигурацию от хранилища |
-force | Не показывать диалог входа в хранилище и подтверждения |
/Out | Файл, куда платформа запишет результат |
Путь к 1cv8.exe подставьте свой: номер версии в каталоге совпадает с установленной платформой. Если нужно отвязать расширение, полный список ключей, в том числе для расширений, смотрите в справке по параметрам командной строки, которая входит в документацию платформы.
Если в базе много копий для тестов (ночные выгрузки рабочей базы разработки), добавьте отвязку в скрипт развёртывания копии. Тогда тестировщики никогда не увидят окно «Подключиться к хранилищу?» и не захватят случайно объекты под чужим пользователем.
Если штатная команда недоступна: обходные пути
Иногда пункт Отключиться от хранилища серый или Конфигуратор не даёт выполнить команду. Частые причины:
- 🔐 у пользователя базы нет административных прав — войдите под администратором;
- 📌 база открыта не в Конфигураторе, а в режиме «1С:Предприятие» — команда есть только в Конфигураторе;
- 🧩 вы смотрите меню расширения, а привязана основная конфигурация (или наоборот).
Встречаются советы «отвязать базу правкой служебных таблиц» — удалять записи прямо в SQL или в файле 1Cv8.1CD. Не делайте этого в рабочей базе. Служебные таблицы платформы не документированы, а последствия ручной правки зависят от версии. Результат — база, которую не открывает даже Конфигуратор.
Безопасная альтернатива, если команда не работает совсем:
- В проблемной базе выполните
Конфигурация → Сохранить конфигурацию в файл.... - Выгрузите данные:
Администрирование → Выгрузить информационную базу(файл.dt) — это ваша резервная копия. - Создайте новую пустую базу и загрузите в неё сохранённый
.cf(Конфигурация → Загрузить конфигурацию из файла...), обновите конфигурацию БД. - Для переноса данных используйте штатные механизмы конфигурации либо работайте с новой базой как с чистым стендом.
Загрузка .dt в новую базу перенесёт и привязку к хранилищу: выгрузка содержит её вместе с конфигурацией. Поэтому для отвязки «через новую базу» подходит только путь через .cf.
На практике обходной путь нужен редко: пакетный режим из предыдущего раздела срабатывает даже тогда, когда интерактивно мешают диалоги и ошибки соединения.
Ошибки и блокировки при отключении от хранилища
Отдельно про «замки», которые остаются у коллег. Если сотрудник отключил свою базу, не вернув захваты, а сам уволился, объекты в хранилище остаются за его пользователем хранилища. Администратор хранилища открывает окно хранилища под своей учётной записью и отменяет захват этих объектов. Если и пароль администратора хранилища утерян, восстановите хранилище из резервной копии или обратитесь к тому, кто его администрировал: пересоздавать хранилище с нуля ради одного захвата не стоит, так теряется история версий.
Сбои локального кэша хранилища на рабочем месте разработчика тоже дают странные ошибки при работе с хранилищем. Кэш лежит в профиле пользователя Windows, в папках %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8 (каталоги с GUID-именами). Его чистят только при закрытых программах 1С на этом компьютере.
Перед чисткой кэша закройте все сеансы 1С на этом рабочем месте — открытый Конфигуратор потеряет несохранённые правки. Файл со списком баз ibases.v8i лежит в другой папке (%APPDATA%\1C\1CEStart), его не трогайте.
Проверка базы после отключения от хранилища
Убедитесь, что отвязка прошла и ничего не сломалось.
Для дополнительной уверенности сравните конфигурацию с сохранённой копией: Конфигурация → Сравнить конфигурации..., выберите основную конфигурацию и файл .cf. Различий быть не должно — отключение не меняет ни одного объекта.
Если база предназначена для бухгалтерии, а не для разработки, дальше она живёт как обычная доработанная конфигурация: при обновлении типового релиза используйте Конфигурация → Поддержка → Обновить конфигурацию и сравнение-объединение, как с любой изменённой базой.