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

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

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

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

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

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

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

Что такое идентификаторы объектов метаданных и когда их обновлять

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

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

Ошибка «не найден по идентификатору»Идентификатор устарел

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

Дубли элементов справочникаНекорректный перенос или прерванное обновление

Количество элементов с одинаковым полным именем объекта

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

Есть ли ссылки на помеченные идентификаторы в правах и настройках

Штатное обновление через интерфейс

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

Откройте обработку, отметьте пункт, связанный с идентификаторами объектов метаданных (обычно он включен по умолчанию), и нажмите «Обновить». Дождитесь завершения: в больших конфигурациях процедура может занимать от нескольких секунд до нескольких минут. По окончании обработка сообщит о результате и покажет предупреждения, если обнаружены проблемы.

Метод поддерживает параметры, позволяющие учитывать критичные изменения и получать описание проблем. Вариант с выводом результата:

1c
ЕстьИзменения = Ложь;
ЕстьУдаленные = Ложь;
ТолькоПроверка = Ложь;
Справочники.ИдентификаторыОбъектовМетаданных.ОбновитьДанныеСправочника(ЕстьИзменения, ЕстьУдаленные, ТолькоПроверка);
Сообщить("Изменения: " + ЕстьИзменения + ", удаленные объекты: " + ЕстьУдаленные);

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

Обновление при загрузке конфигурации и в пакетном режиме

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

Для автоматизации в скриптах развертывания используется запуск 1С:Предприятия в пакетном режиме с выполнением внешней обработки, содержащей вызов обновления идентификаторов. Это стандартная практика при автоматизированном обновлении тестовых и рабочих баз через CI/CD-контур.

Устранение дублей и проблемных элементов

Дубли возникают, когда обновление запускалось параллельно в нескольких сеансах или было прервано. Признак — несколько элементов справочника с одинаковым полным именем объекта метаданных. Из-за дублей механизмы БСП могут выбирать неправильный идентификатор, что приводит к ошибкам в правах доступа и отчетах.

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

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

Типичные ошибки
01
Запуск обновления одновременно из нескольких сеансов — приводит к дублям элементов справочника
02
Удаление помеченных идентификаторов без поиска ссылок — ломаются права и варианты отчетов
03
Прерывание процедуры обновления — справочник остается в промежуточном состоянии
04
Ручное создание элементов справочника вместо штатного обновления — ключи объектов формируются некорректно

Проверка результата после обновления

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

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

Контрольные точки

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

Новые объекты конфигурации в справочнике
Норма

Элементы присутствуют, без пометки удаления

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

Объектов нет или они помечены — обновление не выполнено

Дубли по полному имени
Норма

Одно полное имя — один элемент

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

Несколько элементов с одинаковым именем

Ошибки в местах использования
Норма

Отчеты и права открываются без ошибок идентификаторов

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

Ошибка «объект метаданных не найден» сохраняется

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

Опасно ли обновлять справочник идентификаторов в рабочей базе?

Сама процедура затрагивает только служебный справочник и не изменяет учетные данные. Риск связан с прерыванием операции и параллельными запусками, поэтому перед обновлением сделайте копию и выполняйте процедуру в один сеанс, желательно при минимальной активности пользователей.

Почему после обновления конфигурации справочник не обновился автоматически?

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

Что делать, если в справочнике появились дубли элементов?

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

Можно ли обновить справочник только для проверки, без изменения данных?

Да. Вызовите ОбновитьДанныеСправочника с параметром ТолькоПроверка = Истина. Метод вернет признаки наличия изменений и удаленных объектов, не модифицируя справочник, — это удобно для оценки ситуации перед реальным обновлением.

Нужно ли монопольно блокировать базу для обновления?

Штатная процедура умеет работать в немонопольном режиме, но при активной работе пользователей возможны блокировки и увеличение времени выполнения. Для больших баз рекомендуется выполнять обновление в период минимальной нагрузки, а программный запуск — в одном сеансе без параллельных вызовов.

Итог

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

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