Почему при подключении к хранилищу конфигурации не появляются новые объекты?

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

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

Логика работы платформы при подключении к хранилищу

Поведение конфигуратора напрямую зависит от того, связывается ли данная информационная база с хранилищем впервые или же подключение выполняется повторно:

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

Способ 1. Принудительное получение объектов из хранилища

Разберем, как правильно получить изменения вручную, чтобы актуализировать структуру метаданных. После выполнения подключения перейдем в главное меню: Конфигурация — Хранилище конфигурации — Получить файлы из хранилища (или вызовем контекстное меню на корневом узле конфигурации).

При интерактивном получении обратим особое внимание на следующие параметры:

  1. Флаг «Получать рекурсивно»: этот параметр критически важен. Если флаг не установлен, платформа обновит только выбранный узел верхнего уровня, но пропустит подчиненные элементы (новые формы, макеты, реквизиты или команды).
  2. Флаг «Получать захваченные»: используем его только в том случае, если требуется перезаписать локально измененный объект версией из хранилища. Учтем, что все незафиксированные локальные доработки при этом будут безвозвратно удалены.
  3. Сравнение конфигураций: перед массовой загрузкой рекомендуется выполнить действие «Сравнить конфигурацию с хранилищем». Это позволит наглядно оценить дерево различий и выбрать только нужные метаданные.

Способ 2. Обновление конфигурации без постоянной привязки к хранилищу

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

Для этого в конфигураторе выберем пункт меню Конфигурация — Хранилище конфигурации — Обновить конфигурацию из хранилища. Платформа запросит адрес хранилища, имя пользователя и пароль, после чего напрямую выполнит накат актуальной версии метаданных без привязки информационной базы к репозиторию.

Способ 3. Устранение проблем с кэшем и блокировками

Если явное получение объектов не дает результата или завершается ошибкой, рассмотрим типичные технические причины рассинхронизации:

  1. Очистка пользовательского кэша: соответствие версий конфигурации и репозитория кэшируется в каталогах %LOCALAPPDATA%\1C\1Cv8\ и %APPDATA%\1C\1Cv8\. При аварийном завершении конфигуратора кэш может повреждаться. Закроем конфигуратор, очистим временные папки либо удалим базу из списка запуска и добавим ее заново.
  2. Статус захвата родительских узлов: если корень метаданных или родительский объект захвачен текущим разработчиком, обновления по нему не подтягиваются автоматически, так как локальная версия считается приоритетной.
  3. Зависшие сессии сервера хранилища: при работе через сервер crserver подвисшие сетевые подключения могут удерживать блокировки. Администратору необходимо открыть утилиту управления хранилищем и сбросить неактивные сессии на вкладке подключений.
  4. Проверка целостности хранилища: при систематических сбоях у нескольких разработчиков администратор должен запустить тестирование через меню «Администрирование хранилища» — «Проверить хранилище конфигурации» и выполнить операцию «Оптимизировать хранилище».

Автоматизация через командную строку

Для исключения человеческого фактора и работы в скриптах CI/CD разберем основные параметры пакетного режима запуска конфигуратора:

  1. Обновление конфигурации из хранилища:
    
    1cv8.exe DESIGNER /F "C:\Bases\MyBase" /ConfigurationRepositoryF "C:\Repo" /ConfigurationRepositoryN "User" /ConfigurationRepositoryP "Pass" /ConfigurationRepositoryUpdateCfg -force
    
    Ключ -force позволяет продолжить процесс обновления даже при наличии локально захваченных объектов.
  2. Выгрузка конфигурации напрямую в файл:
    
    1cv8.exe DESIGNER /ConfigurationRepositoryF "C:\Repo" /ConfigurationRepositoryN "User" /ConfigurationRepositoryP "Pass" /ConfigurationRepositoryDumpCfg "C:\Releases\dump.cf"
    
    Параметр /ConfigurationRepositoryDumpCfg формирует файл поставки .cf сразу из хранилища, исключая необходимость промежуточного подключения рабочей базы.
  3. Полное отключение от хранилища: 1cv8.exe DESIGNER /F "C:\Bases\MyBase" /ConfigurationRepositoryUnbindCfg -force Команда /ConfigurationRepositoryUnbindCfg корректно очищает внутренние ссылки на репозиторий, предотвращая ошибки при последующих переподключениях базы.
← На главную