Я как программист очень часто сталкивался с моментами, когда нужно создать новый справочник, документ, отчет или обработку в структуре выше перечисленных конфигураций. В результате у нас может выскочить ошибка идентификатора объекта метаданных (когда сохраняются какие-то настройки). Это связано с тем, что параллельно с системными метаданными разработчики также заполняют справочник ИдентификаторыОбъектовМетаданных, который потом используют для процесса сохранения различных настроек в системе. В более ранних версиях конфигураций в этом справочнике была кнопочка, которая позволяла обновить данные справочника, теперь ее убрали. Но функция-то осталась, соответственно ее можно использовать (обработка и код прилагаются ниже). Некоторые скажут, мол, "есть же инструкция в сообщении, что надо запустить конфигурацию с параметром обновления", но куда удобнее быстро запустить обработку, которая сделает именно то, что тебе надо, а не ждать выполнения глобального обновления после каждого нового созданного объекта.
В случае, когда вы сразу в конфигураторе делаете отчет (не внешний), к примеру, как часть своей подсистемы, и этот отчет имеет свои варианты, то, чтобы они появились в стандартном механизме вариантов отчетов, также нужно вызвать функцию обновления.
Самым интересным является работа по созданию новых ролей для этих конфигураций. В конфигураторе роль создается без проблем, но когда мы начинаем работать с группами пользователей уже в рабочей среде, применение этой роли опять-таки может выдать ошибку идентификатора метаданных. Но даже после обновления справочника, роль автоматически не применяется к выбранным пользователям, это можно сделать только из конфигуратора. Причиной такого поведения является то, что все роли, с которыми может работать система, при первом старте записываются в константу ПараметрыРаботыПользователей, и эти значения опять-таки нужно перезаполнить. Делается это тоже просто, так как в конфигураторе есть процедура, которая вызывается при первом старте, но никто нам не мешает вызвать ее вручную уже в рабочей базе. Реальной проблемой является только найти ее, я один раз все отдал бы, лиш бы мне кто ее показал. Но таки нашел ее сам, чем я сейчас и поделюсь.
Код, скорее всего, также будет работать в других типовых решениях на управляемых формах, так как было замечено, что этот механизм стал шаблонным. Но я лично не тестировал на других конфигурациях, поэтому обещать не буду.
И на самом деле подобных процедур, использование которых часто является необходимостью при работе с типовыми конфигурациями, весьма много, так что можете делиться ими в комментариях.
Код простой:
&НаКлиенте
Процедура ОбновитьПараметрыСистемы(Команда)
ОбновитьПараметрыСистемыСервер();
КонецПроцедуры
&НаСервере
Процедура ОбновитьПараметрыСистемыСервер()
//обновляет справочник идентефикаторов метаданных
Справочники.ИдентификаторыОбъектовМетаданных.ОбновитьДанныеСправочника(Истина);
//обновляет варианты отчетов системы
ВариантыОтчетов.Обновить();
//Обновляет параметры пользователей системы (в том числе и новые роли конфигурации)
Константы.ПараметрыРаботыПользователей.СоздатьМенеджерЗначения().ОбновитьОбщиеПараметры();
КонецПроцедуры