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

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

Обновление идентификаторов объектов метаданных в 1С 8.3

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

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

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

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

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

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

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

Подготовка: что сделать до обновления

Любая операция, затрагивающая служебные механизмы, должна начинаться с резервной копии. Для файловой базы достаточно скопировать файл 1Cv8.1CD, для клиент-серверной — выполнить выгрузку в dt через конфигуратор либо средствами СУБД. Обновление идентификаторов само по себе не меняет бизнес-данные, но запускается оно обычно на фоне других проблем, и откат может понадобиться.

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

Способ 1. Обновление через механизмы БСП в режиме Предприятие

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

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

Порядок действий в типовой конфигурации
  1. 1
    Сделайте резервную копию базы и завершите сеансы пользователей
  2. 2
    Обновите конфигурацию базы данных в конфигураторе (F7)
  3. 3
    Запустите режим Предприятие под администратором и дождитесь завершения обработчиков обновления
  4. 4
    При необходимости откройте обработку «Обновление вспомогательных данных» и запустите обновление идентификаторов вручную
  5. 5
    Проверьте журнал регистрации на наличие ошибок обновления

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

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

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

Для принудительной полной реструктуризации в конфигураторе есть пункт «Администрирование — Тестирование и исправление» с включённой реструктуризацией таблиц. Это тяжёлая операция, на больших базах она занимает значительное время и требует монопольного доступа.

Способ 3. Пакетный запуск из командной строки

Для автоматизации обновления на нескольких базах удобно использовать пакетный режим конфигуратора. Запуск обновления конфигурации базы данных выполняется параметром /UpdateCfg или через /LoadCfg с последующим обновлением. Типовая последовательность для файловой базы выглядит так:

bash
"C:\Program Files\1cv8\8.3.22.1709\bin\1cv8.exe" DESIGNER /F"D:\Bases\MyBase" /N"Администратор" /P"пароль" /UpdateCfg /UpdateDBCfg /DisableStartupDialogs /Out"D:\Logs\update.log"

Версию платформы в пути к исполняемому файлу укажите ту, что реально установлена у вас. Ключ /Out направляет вывод в лог-файл — по нему удобно проверять, завершилось ли обновление без ошибок. Для клиент-серверной базы вместо /F используется /S с указанием сервера и имени базы.

После пакетного обновления конфигурации базы данных в типовых решениях нужен ещё запуск режима Предприятие с выполнением обработчиков обновления — его тоже можно автоматизировать через параметр /Execute с указанием внешней обработки или через штатный запуск с ключом /C, если конфигурация это поддерживает.

Способ 4. Программное обновление через встроенный язык

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

Такой вызов удобно встроить в регламентное задание после обмена конфигурациями между узлами РИБ или в собственный обработчик после загрузки cf-файла. Перед программным вызовом убедитесь, что код выполняется на сервере с достаточными правами и что в базе нет незавершённых обработчиков обновления версии.

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

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

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

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

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

Журнал регистрации после обновления
Норма

Нет ошибок обработчиков и сообщений «объект не найден»

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

Ошибки по идентификаторам, незавершённые отложенные обработчики

Сохранённые варианты отчётов
Норма

Отчёты открываются с ранее сохранёнными настройками

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

Варианты пропали или отчёт не находится

Права пользователей
Норма

Доступ соответствует настроенным профилям

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

Пользователи теряют доступ или видят лишнее

Типичные ошибки и ограничения

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

Отдельное ограничение касается баз, полученных копированием файла 1Cv8.1CD без выгрузки в dt: идентификаторы в копии совпадают с оригиналом, что обычно безопасно, но при последующем раздельном обновлении копии и оригинала их метаданные расходятся. Для переноса конфигурации между такими базами используйте сравнение и объединение, а не загрузку cf целиком, если нужно сохранить пользовательские данные копии.

Перед массовым обновлением рабочих баз имеет смысл прогнать всю цепочку — обновление конфигурации, запуск Предприятия, проверку отчётов и прав — на копии базы. Это занимает время, но позволяет заранее увидеть битые идентификаторы и подготовить план исправления, а не разбираться с ними в разгар рабочего дня.
ПЗ
Практическое замечание

Часто задаваемые вопросы

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

Нет. В конфигурациях на БСП обновление идентификаторов входит в стандартные обработчики обновления версии и выполняется автоматически при первом запуске режима Предприятие после обновления. Ручное вмешательство требуется только при ошибках в журнале регистрации или нештатных ситуациях вроде загрузки cf вместо обновления.

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

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

Можно ли обновить идентификаторы без монопольного доступа?

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

Почему после обновления пропали сохранённые варианты отчётов?

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

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

Сама логика обновления одинакова, различия в инфраструктуре: для клиент-серверной базы резервную копию лучше делать средствами СУБД, пакетный запуск выполняется с параметром /S вместо /F, а длительная реструктуризация на больших таблицах заметно нагружает сервер СУБД, поэтому её планируют на нерабочее время.

Как понять, что проблема именно в идентификаторах, а не в чём-то другом?

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

Итог

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

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