При добавлении новых объектов в типовые конфигурации возможна ошибка при обращении к этому объекту в режиме 1C:Предприятие: "Объект не найден в Справочнике "ИдентификаторыОбъектовМетаданных". В данной статье описываются способы устранения этой ошибки.
При добавлении в типовые конфигурации новых объектов возможна ошибка при обращении к этому объекту в режиме 1С:Предприятие.
Текст ошибки примерно следующий:
{ОбщийМодуль.ОбщегоНазначения.Модуль(2646)}: Ошибка при выполнении функции ОбщегоНазначения.ИдентификаторОбъектаМетаданных(). Для объекта метаданных "Документ.ЗаявкаНаРасходованиеСредств" не найден идентификатор в справочнике "Идентификаторы объектов метаданных".
Для решения этой проблемы требуется обновить вспомогательные данные, которые влияют на работу программы.
Для выполнения обновления можно:
- открыть через меню «Все функции» справочник «Идентификаторы объектов метаданных», нажать кнопку «Обновить данные справочника»;
- если указанной кнопки нет — выполнить программный код:
Справочники.ИдентификаторыОбъектовМетаданных.ОбновитьДанныеСправочника();
- либо запустить программу с параметром командной строки 1С:Предприятия 8
«/С ЗапуститьОбновлениеИнформационнойБазы»; - либо увеличить номер версии конфигурации, чтобы при очередном запуске выполнились процедуры обновления данных информационной базы.
В составе БСП для этих же целей есть целая обработка ИнструментыРазработчикаОбновлениеВспомогательныхДанных.
Она делает и это и еще многое другое
Спасибо, в УНФ помогло.
Первый пункт понятный и очевидный, одна проблема — делать нужно монопольно. А бывает так, что внедришь объект в базу, обновишься, а в боевой базе забудешь выполнить этот пункт. А с утра уже пользователи залезли в базу и выходить не хотят. Можно ли 2-й и/или 3-й пункты делать НЕ монопольно?
Спасибо.
(3) Mortiferus,
(3) Mortiferus, То же интересно, как сделать это НЕ монопольно?
(3)(6)
>Справочники.ИдентификаторыОбъектовМетаданных.ОбновитьДанныеСправочника();
>»/С ЗапуститьОбновлениеИнформационнойБазы»;
да, оба варианта требуют монопольный режим
Вариант через команду Справочники.ИдентификаторыОбъектовМетаданных.ОбновитьДанныеСправочника();
избавляет от ошибки «Объект не найден в Справочнике «ИдентификаторыОбъектовМетаданных»
но является неполноценным, например при добавлении новых ролей доступа через конфигуратор
роли становятся видны из 1с для настройки профилей через справочник «Профили групп доступа»
но потом при назначении профиля пользователю роль ему не назначается …
Поэтому рекомендую не искать приключений и пользоваться вариантом
запуска программы с параметром командной строки 1С:Предприятия 8
«/С ЗапуститьОбновлениеИнформационнойБазы»;
параметр кстати можно указать в конфигураторе в
Сервис-Параметры-Запуск 1сПредприятия-Основные-Параметр запуска
запустить один раз, потом когда вы параметр уберете 1с будет его там помнить в выпадающем списке
/С ЗапуститьОбновлениеИнформационнойБазы
как выяснилось, правильно набирать:
/c ЗапуститьОбновлениеИнформационнойБазы
Т.е. /c должно быть на латинице, а в тексте выше это написано на кириллице
(8) Проблема решается выполнением (монопольно, естественно) команды ПользователиСлужебный.ОбновитьПараметрыРаботыПользователей(Истина);
Совет актуален для БСП версии 2.1.3.50
Получил только после того, как этот параметр указал в конфигураторе. Вариант, который описал Yan Tsys!
А как быть, если в конфигурации присутствуют элементы из расширения? Не хочет обновляться никак.
Спасибо!
Справочники.ИдентификаторыОбъектовМетаданных.ОбновитьДанныеСправочника();
Помогло!
(8) немного не такая ошибка, но проблема связана с идентификаторами, и точно касается вашего сообщения. у меня как раз такая ситуация, добавил роль в конф.запустил предприятие с ключом, обновились идентификаторы (проверил в справочнике — вижу таковой). потому сделал профиль, потому группу доступа с профилем. потом открыл запись пользователя, включил в нужную группу НО сама роль не отобразилась (следующая вкладка в пользователе, там видно какие роли «подключены» посредством групп доступа) также проверил через конф. что не стоит нужная роль. в чем может быть причина?
(14)разобрался, для пользователя не должно быть групп доступа в которые входят роли которые отмеченные как Основные роли в свойствах конфигурации. в таких ситуациях пользователю подключаются только такие роли, все другие не применяются. я так расцениваю что эти роли (основные) на столько максимальные по доступам что другие не могут быть шире…
А не знаете как найти идентификатор метаданных в справочнике «ИдентификаторыОбъектовМетаданных»?
Стандартным способом
выдает ошибку: Идентификатор «»
не найден в справочнике «Идентификаторы объектов метаданных».
Обновление не помогает
Попробую поискать тупо перебором тогда всех элементов
Что за справочник такой странный что стандартные методы не работают как надо?
Нашел причину…
(16)