К статье
Практический материал

Администрирование · 11 мин

Как обновить идентификаторы объектов метаданных в 1С

Как обновить идентификаторы объектов метаданных в 1С: обработка обновления, ручная синхронизация справочника, устранение ошибок «объект не найден» и дублей.

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

Обновление идентификаторов — штатная процедура, встроенная в библиотеку стандартных подсистем. Она выполняется автоматически при обновлении версии конфигурации, но в ряде случаев её нужно запускать вручную: после загрузки конфигурации из файла, после объединения конфигураций, при восстановлении базы из копии другого релиза или после доработок, добавивших новые объекты метаданных.

Ниже разобраны признаки рассинхронизации, способы запуска обновления, типичные проблемы с дублями и безопасный порядок действий.

Когда требуется обновление идентификаторов

Справочник «Идентификаторы объектов метаданных» хранит соответствие между полным именем объекта метаданных (например, «Справочник.Номенклатура») и его GUID. Подсистемы БСП обращаются к объектам не по имени, а по идентификатору — это позволяет переименовывать объекты без потери настроек. Пока соответствие актуально, всё работает незаметно; проблемы начинаются при рассинхронизации.

Типичные ситуации, когда нужно обновление вручную:

  • после загрузки конфигурации из файла .cf вместо штатного обновления через поддержку;
  • после объединения конфигураций или переноса доработок из другой базы;
  • при появлении ошибок «Идентификатор объекта метаданных не найден» при открытии отчётов, настройке прав или запуске рассылок;
  • после восстановления базы из архивной копии, сделанной на другой версии конфигурации;
  • после добавления новых объектов метаданных в расширении или доработке, если подсистемы БСП должны их «увидеть».

Как происходит автоматическое обновление

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

Признак того, что автоматическое обновление отработало: в журнале регистрации есть события обновления версии без ошибок по справочнику идентификаторов, а в разделе «Администрирование → Результаты обновления программы» (в типовых на БСП) статус обновления — «завершено успешно».

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

Ручное обновление через интерфейс предприятия

В типовых конфигурациях на базе БСП есть штатная обработка. Путь может незначительно отличаться между версиями, но общий маршрут такой: «Администрирование» → «Обслуживание» → группа «Регламентные операции» → «Обновление идентификаторов объектов метаданных». В некоторых конфигурациях обработка доступна только в режиме «Все функции» или через раздел настроек поддержки и обслуживания.

Порядок действий в обработке:

  1. Откройте обработку «Обновление идентификаторов объектов метаданных» под пользователем с полными правами.
  2. Нажмите кнопку «Обновить» (или «Выполнить обновление»). Обработка сравнит текущие метаданные конфигурации с содержимым справочника.
  3. Дождитесь завершения. В больших конфигурациях процесс занимает от нескольких секунд до нескольких минут.
  4. Изучите итоговое сообщение: обработка покажет число добавленных, обновлённых и помеченных на удаление элементов, а также список проблем, если они есть.
Порядок безопасного обновления
  1. 1
    Сделайте резервную копию базы (выгрузку .dt или средствами СУБД).
  2. 2
    Завершите активные сеансы пользователей или предупредите их о технологическом окне.
  3. 3
    Запустите обработку «Обновление идентификаторов объектов метаданных» под полными правами.
  4. 4
    Проверьте итоговый отчёт: не должно быть критичных проблем и непредвиденных дублей.
  5. 5
    Проверьте работу подсистем: откройте варианты отчётов, настройки прав, рассылки.

Обновление программным вызовом

Если интерфейсная обработка недоступна (например, конфигурация сильно доработана или обновление выполняется в пакетном сценарии), идентификаторы можно обновить из кода. Штатный метод БСП:

Справочники.ИдентификаторыОбъектовМетаданных.ОбновитьДанныеСправочника();

Для вызова удобно использовать внешнюю консоль кода или выполнить метод в обработчике обновления. В клиент-серверном варианте код выполняется на сервере; пользователь, от имени которого идёт вызов, должен иметь право изменения справочника идентификаторов — практически это полные права или роль администратора системы.

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

bsl
Справочники.ИдентификаторыОбъектовМетаданных.ОбновитьДанныеСправочника();

Диагностика проблем: дубли и «битые» идентификаторы

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

Как проверить состояние справочника:

  • откройте штатную обработку обновления — она показывает сводку проблем, включая дубли;
  • выполните тестирование и исправление информационной базы с проверкой логической целостности (на копии);
  • программно найдите элементы справочника с одинаковым полным именем объекта метаданных — это и есть дубли.

Устранение дублей вручную: определите, какой из элементов используется в данных (на него ссылаются настройки прав, варианты отчётов, дополнительные обработки), а лишний пометьте на удаление или удалите после переноса ссылок. Удалять элемент «наугад» нельзя — ссылки на него в других объектах станут битыми, и настройки потеряются.

Типичные ошибки
01
Удаление дублей идентификаторов без поиска ссылок — в настройках прав и вариантах отчётов появляются битые ссылки, настройки теряются.
02
Запуск обновления одновременно в нескольких сеансах — приводит к появлению новых дублей вместо исправления старых.
03
Обновление без резервной копии после объединения конфигураций — при ошибке откатить изменения уже нечем.
04
Игнорирование отчёта обработки: предупреждения о переименованных объектах требуют ручной проверки, а не просто закрытия окна.

Особые сценарии

Обновление после загрузки конфигурации из файла

Загрузка .cf заменяет конфигурацию базы, но не запускает обработчики обновления БСП. Поэтому после первого входа в режим предприятия проверьте, запустилось ли обновление версий. Если нет — выполните обновление идентификаторов вручную, а затем убедитесь, что отработали остальные обработчики обновления (раздел «Результаты обновления программы»).

Расширения конфигурации

Объекты, добавленные расширением, получают идентификаторы отдельно и обновляются при подключении расширения. Если после отключения расширения в справочнике остались элементы с пометкой об отсутствующих объектах, это нормально: они помечаются как недействительные и не мешают работе. Удалять их вручную не требуется.

Работа в кластере с несколькими базами

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

Проверка результата

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

  • откройте несколько сохранённых вариантов отчётов — они должны открываться без ошибок поиска объекта;
  • проверьте настройку профилей групп доступа, если используется управление правами на уровне объектов;
  • запустите рассылку отчётов или откройте настройки дополнительных отчётов и обработок;
  • посмотрите журнал регистрации за период обновления — не должно быть ошибок по справочнику идентификаторов.
Контрольные точки

Как проверить результат

Итоговый отчёт обработки обновления
Норма

Нет критичных проблем, дублей нет или они обработаны осознанно

Тревожный признак

Сообщения о дублях и объектах, не найденных в метаданных, без разбора причин

Открытие вариантов отчётов
Норма

Варианты открываются и формируются

Тревожный признак

Ошибка «объект метаданных не найден по идентификатору»

Журнал регистрации
Норма

Нет новых ошибок по справочнику идентификаторов

Тревожный признак

Повторяющиеся ошибки при обращении к подсистемам БСП

Итог

Что важно запомнить

Обновление идентификаторов — штатная процедура БСП, выполняемая автоматически при обновлении или вручную через обработку либо метод ОбновитьДанныеСправочника(). Всегда делайте резервную копию, запускайте процедуру в один сеанс и проверяйте итоговый отчёт на дубли и критичные проблемы.

Частые вопросы

Можно ли запускать обновление идентификаторов при работающих пользователях?

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

Что делать, если обработка сообщает о дублях?

Для каждой пары дублей определите, на какой элемент есть ссылки из данных (права, варианты отчётов, дополнительные обработки). Оставьте используемый элемент, перенесите ссылки с лишнего при необходимости и пометьте его на удаление. После этого повторите обновление и убедитесь, что предупреждение исчезло.

Нужно ли обновлять идентификаторы после каждого обновления конфигурации?

Нет. При штатном обновлении через механизм поддержки процедура выполняется автоматически в составе обработчиков обновления версии. Ручной запуск нужен только при нештатных сценариях: загрузка .cf, объединение, восстановление из копии, ошибки подсистем.

Почему после обновления всё равно возникает ошибка «объект не найден»?

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

Можно ли отредактировать идентификатор вручную, поменяв GUID?

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