Работа в команде над одним проектом в среде 1С:Предприятие практически всегда подразумевает использование механизма Хранилища конфигурации. Этот инструмент позволяет версионировать изменения и разграничивать доступ к объектам метаданных. Однако часто возникает ситуация, когда вам необходимо внести правки в документ, справочник или общую форму, но объект оказывается заблокирован (захвачен) другим участником команды. В этой статье мы подробно разберем, как выяснить, кто именно удерживает объект, и какие инструменты для этого существуют в арсенале разработчика и администратора.
Это самый простой и быстрый метод, не требующий открытия дополнительных окон. Если вы видите рядом с объектом серый значок (пиктограмму) захвата, это означает, что объект редактируется другим пользователем. Для получения информации выполним следующие шаги:
Конфигуратор и дерево метаданных.Документ.РеализацияТоваровУслуг).Рассмотрим важный нюанс: информация в дереве метаданных может быть неактуальной, если вы давно не обновляли связь с хранилищем. Чтобы получить достоверные данные, перед проверкой рекомендуется выполнить команду Хранилище — Обновить статусы. Это принудительно синхронизирует состояние значков в вашем локальном дереве конфигурации с текущим состоянием базы данных хранилища.
Если по какой-то причине подсказка не появляется или вы хотите мгновенно обновить статус конкретного элемента, проанализируем метод "от противного". Попробуем захватить объект самостоятельно:
В тексте ошибки будет четко написано: Объект захвачен пользователем: ИвановИИ. Этот метод хорош тем, что он всегда инициирует обращение к серверу хранилища, поэтому информация будет максимально актуальной на текущую секунду.
Когда объектов захвачено много или вам нужно получить общую картину по всему проекту, использование дерева метаданных становится неудобным. В этом случае разберем использование специализированного инструментария:
В этом списке будут отображены абсолютно все объекты конфигурации, которые на данный момент захвачены кем-либо из команды. Список содержит колонки с наименованием объекта и именем пользователя. Это незаменимый инструмент для руководителя проекта или ведущего разработчика, позволяющий быстро выявить "забытые" захваты, которые висят днями или неделями.
Иногда недостаточно просто знать имя. Нужно понять, как давно объект захвачен и какие последние изменения в него вносились. Выясним это через историю:
Для крупных компаний с настроенными процессами CI/CD или автоматизированным мониторингом полезно знать, что информацию о захваченных объектах можно получить программно. Рассмотрим, как это сделать с помощью параметров запуска Конфигуратора.
Используя команду /ConfigurationRepositoryDumpInfo, мы можем выгрузить текущее состояние хранилища в файл. Пример использования команды выглядит следующим образом:
1cv8.exe DESIGNER /F "D:\Base1C" /N "Admin" /P "Pass" /ConfigurationRepositoryF "D:\Repo" /ConfigurationRepositoryN "User" /ConfigurationRepositoryP "Password" /ConfigurationRepositoryDumpInfo "C:\temp\report.xml"
В полученном XML-файле будет содержаться детальная структура: какие объекты захвачены и какими пользователями. Этот файл можно легко распарсить скриптом и, например, отправлять уведомления в мессенджер о том, что объект захвачен слишком долго.
Иногда при попытке узнать, кем захвачен объект, мы сталкиваемся с системной ошибкой или надписью <Неизвестный пользователь>. Проанализируем причины этой ситуации:
Конфигуратора "запомнил" старое состояние. В этом случае помогает очистка папки %AppData%\1C\1cv8.*.1cf внутри папки хранилища.Для решения подобных проблем администратор может использовать функцию Принудительная отмена захвата в окне администрирования. Однако помните: принудительная отмена сотрет все локальные изменения того пользователя, у которого объект был захвачен. Перед этим действием крайне важно убедиться, что коллега действительно не может сам освободить объект.
Таким образом, мы рассмотрели все основные способы идентификации "владельца" объекта в хранилище 1С. Самым быстрым способом остается простое наведение мыши, а самым информативным — окно администрирования хранилища.