Устранение ошибки "Объект не найден в Справочнике "ИдентификаторыОбъектовМетаданных"

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

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

Текст ошибки примерно следующий:

{ОбщийМодуль.ОбщегоНазначения.Модуль(2646)}: Ошибка при выполнении функции ОбщегоНазначения.ИдентификаторОбъектаМетаданных().
Для объекта метаданных "Документ.ЗаявкаНаРасходованиеСредств" не найден идентификатор в справочнике "Идентификаторы объектов метаданных". 

Для решения этой проблемы требуется обновить вспомогательные данные, которые влияют на работу программы.

Для выполнения обновления можно: 

  • открыть через меню «Все функции» справочник «Идентификаторы объектов метаданных», нажать кнопку «Обновить данные справочника»;
  • если указанной кнопки нет — выполнить программный код: 
    Справочники.ИдентификаторыОбъектовМетаданных.ОбновитьДанныеСправочника();
  • либо запустить программу с параметром командной строки 1С:Предприятия 8
      «/С ЗапуститьОбновлениеИнформационнойБазы»;
  • либо увеличить номер версии конфигурации, чтобы при очередном запуске выполнились процедуры обновления данных информационной базы.

17 Comments

  1. Hitcher

    В составе БСП для этих же целей есть целая обработка ИнструментыРазработчикаОбновлениеВспомогательныхДанных.

    Она делает и это и еще многое другое

    Reply
  2. Blind_Guardian

    Спасибо, в УНФ помогло.

    Reply
  3. Mortiferus

    Первый пункт понятный и очевидный, одна проблема — делать нужно монопольно. А бывает так, что внедришь объект в базу, обновишься, а в боевой базе забудешь выполнить этот пункт. А с утра уже пользователи залезли в базу и выходить не хотят. Можно ли 2-й и/или 3-й пункты делать НЕ монопольно?

    Reply
  4. almas

    Спасибо.

    Reply
  5. Denis_Viktorovich

    (3) Mortiferus,

    Reply
  6. Denis_Viktorovich

    (3) Mortiferus, То же интересно, как сделать это НЕ монопольно?

    Reply
  7. tunesoft

    (3)(6)

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

    >»/С ЗапуститьОбновлениеИнформационнойБазы»;

    да, оба варианта требуют монопольный режим

    Reply
  8. YanTsys

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

    избавляет от ошибки «Объект не найден в Справочнике «ИдентификаторыОбъектовМетаданных»

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

    роли становятся видны из 1с для настройки профилей через справочник «Профили групп доступа»

    но потом при назначении профиля пользователю роль ему не назначается …

    Поэтому рекомендую не искать приключений и пользоваться вариантом

    запуска программы с параметром командной строки 1С:Предприятия 8

    «/С ЗапуститьОбновлениеИнформационнойБазы»;

    параметр кстати можно указать в конфигураторе в

    Сервис-Параметры-Запуск 1сПредприятия-Основные-Параметр запуска

    запустить один раз, потом когда вы параметр уберете 1с будет его там помнить в выпадающем списке

    Reply
  9. novosel

    /С ЗапуститьОбновлениеИнформационнойБазы

    как выяснилось, правильно набирать:

    /c ЗапуститьОбновлениеИнформационнойБазы

    Т.е. /c должно быть на латинице, а в тексте выше это написано на кириллице

    Reply
  10. Octopus

    (8) Проблема решается выполнением (монопольно, естественно) команды ПользователиСлужебный.ОбновитьПараметрыРаботыПользователей(Истина);

    Совет актуален для БСП версии 2.1.3.50

    Reply
  11. Tavriya

    Получил только после того, как этот параметр указал в конфигураторе. Вариант, который описал Yan Tsys!

    Reply
  12. danjer74

    А как быть, если в конфигурации присутствуют элементы из расширения? Не хочет обновляться никак.

    Reply
  13. nad0_hto

    Спасибо!

    если указанной кнопки нет — выполнить программный код:

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

    Помогло!

    Reply
  14. softgarant

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

    Reply
  15. softgarant

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

    Reply
  16. lev6975

    А не знаете как найти идентификатор метаданных в справочнике «ИдентификаторыОбъектовМетаданных»?

    Стандартным способом

    Справочники.ИдентификаторыОбъектовМетаданных.НайтиПоРеквизиту(«Имя»,»ПриходныйКассовыйОрдер»);
    

    выдает ошибку: Идентификатор «»

    не найден в справочнике «Идентификаторы объектов метаданных».

    Обновление не помогает

    Попробую поискать тупо перебором тогда всех элементов

    Что за справочник такой странный что стандартные методы не работают как надо?

    Reply
  17. lev6975

    Нашел причину…

    (16)

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *