Что делать, если конфигурацию 1С сняли с поддержки, но замки на объектах метаданных остались?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

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

Выясняем причину: в чем разница между «замками»?

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

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

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

---

Способ 1. Стандартное отключение от хранилища через графический интерфейс

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

Разберем этот процесс по шагам:

  1. Откройте Конфигуратор вашей информационной базы.
  2. В главном меню перейдите в раздел Конфигурация — Хранилище конфигурации — Отключиться от хранилища.
  3. Если система попытается связаться с хранилищем и выведет окно авторизации (с запросом пути, имени пользователя и пароля), просто нажмите кнопку «Отмена».
  4. Сразу после этого платформа поймет, что подключение установить невозможно, и выведет предупреждающий диалог: «Отключиться от хранилища конфигурации?».
  5. Нажмите кнопку «Да».

В этот момент платформа произведет локальное отключение. Связь с хранилищем будет разорвана, все синие замки с объектов метаданных пропадут, и вы сможете беспрепятственно вносить изменения в код и структуру данных.

---

Способ 2. Принудительное отключение через командную строку (пакетный режим)

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

Для выполнения этой процедуры проанализируем следующий алгоритм:

  1. Закройте все запущенные сеансы работы с базой данных (и пользовательские, и Конфигуратор).
  2. Откройте командную строку Windows (cmd) или создайте текстовый файл с расширением .bat.
  3. Введите и выполните команду следующего формата (пример приведен для файловой базы и платформы версии 8.3.22.1709):

"C:\Program Files\1cv8\8.3.22.1709\bin\1cv8.exe" DESIGNER /F "D:\1C_Bases\Trade" /N "Администратор" /P "ПарольАдмина" /ConfigurationRepositoryUnbindCfg -force

Разберем параметры, которые мы использовали в этой команде:

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

---

Способ 3. Обход проблемы через выгрузку и загрузку конфигурации (файл .cf)

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

Давайте выполним следующие шаги:

  1. В исходной заблокированной базе откройте Конфигуратор и выгрузите конфигурацию в файл, перейдя в меню Конфигурация — Сохранить конфигурацию в файл.... Выберите удобное место на диске и сохраните файл с расширением .cf. При выгрузке в этот файл записывается только сама структура метаданных и код модулей, никакие параметры подключения к хранилищам туда не попадают.
  2. Создайте на компьютере или сервере новую пустую информационную базу 1С без конфигурации.
  3. Запустите Конфигуратор новой пустой базы.
  4. Перейдите в меню Конфигурация — Загрузить конфигурацию из файла... и выберите ранее сохраненный файл .cf.
  5. Выполните обновление конфигурации базы данных (клавиша F7).

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

---

Способ 4. Прямое удаление связей на уровне СУБД (только для клиент-серверных баз)

Этот способ является продвинутым и подходит системным администраторам и разработчикам, работающим с базами на MS SQL Server или PostgreSQL. Если база данных имеет огромный размер, Конфигуратор не запускается, а выгрузка-загрузка файлов занимает часы, можно разорвать связь напрямую через таблицу базы данных.

Важно: перед выполнением любых запросов напрямую к таблицам СУБД обязательно сделайте резервную копию (бэкап) базы данных средствами SQL-сервера!

Информация о подключении к хранилищу конфигурации в платформе «1С:Предприятие» хранится в системной таблице с именем Files. Записи, отвечающие за интеграцию с репозиторием, содержат в поле имени файла ключевое слово depot. Чтобы очистить эти записи, нам необходимо выполнить SQL-запрос.

Рассмотрим пример SQL-скрипта для СУБД MS SQL Server:


-- Шаг 1: Проверяем наличие записей о хранилище в таблице Files
SELECT * 
FROM [Имя_Вашей_Базы].[dbo].[Files] 
WHERE [FileName] LIKE '%depot%';

-- Шаг 2: Удаляем записи, привязывающие базу к хранилищу
DELETE 
FROM [Имя_Вашей_Базы].[dbo].[Files] 
WHERE [FileName] LIKE '%depot%';

После успешного выполнения данного запроса на сервере СУБД откройте Конфигуратор базы данных. Вы увидите, что база полностью отвязана от хранилища, а все объекты доступны для редактирования.

---

Анализируем последствия отключения: не пропадут ли изменения?

Частый вопрос, который волнует разработчиков при отключении базы от хранилища: «Не потеряю ли я код и доработки, выполненные до отключения?»

Давайте проанализируем этот аспект подробнее:

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

← На главную