Использовать "НайтиПоКоду" уже даже не смешно, особенно когда, например, справочник с длиной кода 0.
Поэтому, по моему скромному мнению, предпочтительнее всего использовать предопределенные элементы, после чего и появилась эта небольшая обработка.
Предыстория:
Когда давным давно задавался этим вопросом, что я только не читал на разных форумах!
Например:
1) Создавать новую сущность и все хранить в константах.
2) Создавать предопределенный элемент, копировать все реквизиты, а затем обработкой "ПоискИЗаменаЗначений" менять обычный на предопределенный, в конечном итоге удаляя первичный элемент.
3) И даже наткнулся на совсем удивительную ВЕЩЬ, в которую даже не стал вникать = )))
Далее я приведу описание простенькой обработки для работы с предопределенными данными (может, кому понадобится):
1) В конфигураторе у объекта метаданных добавляем нужные Предопределенные элементы:
2) Если у объекта метаданных изменить свойство "Обновление предопределенных данных" на "Не обновлять автоматически", то при обновление "Конфигурации БД" НЕ БУДУТ СОЗДАНЫ предопределенные элементы. Изменять это свойство или нет, решать Вам.
3) Запускаем обработку.
При выборе редактируемой ссылки автоматически в список выбора "Имя предопределенных данных" загружаются все возможные варианты из метаданных этого объекта. Обработка изменяет (если стоит галочка, то в режиме "ОбменДанными.Загрузка = Истина") реквизит "ИмяПредопределенныхДанных" у редактируемого объекта, а в случае, если уже существует другой объект с таким же именем ПД, то оно очищается и объект становится обычным.
П.С. Работает в управляемой и обычной форме, но тестировал в 8.3.7 в режиме совместимости 8.3.6 = ))