Каждый разработчик 1С рано или поздно сталкивается с ситуацией, когда стандартные действия по изменению конфигурации вызывают неожиданные трудности. Представим типовой сценарий: перед вами стоит задача доработать конфигурацию. Вы заходите в меню Конфигурация — Поддержка — Настройка поддержки и успешно снимаете базу с поддержки (или разрешаете изменения с сохранением поддержки). Однако, вернувшись в дерево метаданных, вы обнаруживаете, что все объекты по-прежнему заблокированы пиктограммами в виде замков. Никакие изменения внести невозможно.
В этой статье мы подробно разберем, почему возникает эта проблема, в чем заключается разница между типами блокировок в «1С:Предприятии», а также рассмотрим несколько эффективных способов снятия этих замков, даже если у вас нет доступа к исходному хранилищу конфигурации.
Главный источник путаницы заключается в том, что в платформе «1С:Предприятие» используются визуально похожие пиктограммы замков для двух абсолютно разных механизмов контроля версий:
Если при запуске Конфигуратора система запросила у вас путь к хранилищу конфигурации, а вы нажали кнопку «Отмена», платформа открыла базу в так называемом автономном (offline) режиме. В этом режиме связь с хранилищем не установлена, объекты метаданных остаются заблокированными синими замками, и никакие манипуляции с поддержкой поставщика эту блокировку снять не помогут. Чтобы получить возможность редактирования, базу необходимо полностью отвязать от хранилища.
---
Рассмотрим самый простой и очевидный вариант отключения, который можно выполнить непосредственно из Конфигуратора, даже если вы не знаете адрес хранилища и у вас нет учетных данных для подключения к нему.
Разберем этот процесс по шагам:
В этот момент платформа произведет локальное отключение. Связь с хранилищем будет разорвана, все синие замки с объектов метаданных пропадут, и вы сможете беспрепятственно вносить изменения в код и структуру данных.
---
Бывают ситуации, когда Конфигуратор зависает при попытке вызвать диалог работы с хранилищем или стандартные интерфейсные методы недоступны из-за ошибок платформы. В этом случае мы можем применить принудительную отвязку базы с помощью параметров запуска исполняемого файла 1С.
Для выполнения этой процедуры проанализируем следующий алгоритм:
.bat.
"C:\Program Files\1cv8\8.3.22.1709\bin\1cv8.exe" DESIGNER /F "D:\1C_Bases\Trade" /N "Администратор" /P "ПарольАдмина" /ConfigurationRepositoryUnbindCfg -force
Разберем параметры, которые мы использовали в этой команде:
DESIGNER — запускает платформу в режиме Конфигуратора./F — указывает путь к файловой информационной базе (если у вас серверная база, используйте параметр /S с указанием адреса сервера и имени базы)./N и /P — имя и пароль пользователя информационной базы, обладающего правами администратора./ConfigurationRepositoryUnbindCfg — специальный ключ платформы, инициирующий отключение от хранилища.-force — флаг, указывающий системе на необходимость выполнить операцию принудительно (без вывода интерактивных вопросов и подтверждений со стороны пользователя).После успешного выполнения этой команды база будет полностью очищена от связей с хранилищем в фоновом режиме.
---
Если вам необходимо гарантированно получить «чистую» конфигурацию, которая не содержит скрытых системных ссылок на хранилища, историю версий или сторонние блокировки, можно воспользоваться классическим методом переноса структуры метаданных через промежуточный файл.
Давайте выполним следующие шаги:
.cf. При выгрузке в этот файл записывается только сама структура метаданных и код модулей, никакие параметры подключения к хранилищам туда не попадают..cf.В результате вы получите абсолютно идентичную по структуре конфигурацию, но в ней гарантированно не будет никаких синих замков и связей с хранилищем разработки.
---
Этот способ является продвинутым и подходит системным администраторам и разработчикам, работающим с базами на 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%';
После успешного выполнения данного запроса на сервере СУБД откройте Конфигуратор базы данных. Вы увидите, что база полностью отвязана от хранилища, а все объекты доступны для редактирования.
---
Частый вопрос, который волнует разработчиков при отключении базы от хранилища: «Не потеряю ли я код и доработки, выполненные до отключения?»
Давайте проанализируем этот аспект подробнее:
.cf. После этого подключитесь к хранилищу (при этом ваша локальная конфигурация перезапишется версией из хранилища), а затем выполните операцию Конфигурация — Сравнить, объединить с конфигурацией из файла..., указав ваш сохраненный .cf. Аккуратно объедините изменения и захватите нужные объекты для их последующего коммита.Используя предложенные методики, вы сможете быстро и безопасно снять любые блокировки объектов метаданных и продолжить разработку в комфортном режиме.