Всем доброго дня!
Часто возникает необходимость сделать какой-нибудь элемент справочника предопределенным (для обращения из кода)
Для конфигураций в режиме совместимости с 8.2 нет возможности элементу назначить ИмяПредопределенныхДанных
Также часто существуют другие связаные базы 1С, где элементы справочников синхронизированы по внутреннему идентификатору и хочется эту связку оставить
Вкратце опишу механизм, как мне удалось решить эту задачу (сам не встречал этого решения на просторах интернета, или плохо искал)
- Создаю новый предопределенный элемент справочника (в примере справочник ПрочиеДоходыИРасходы, элемент СуммовыеРазницы). Сохраняю конфигурацию
- Выгружаю описание нужного справочника в xml /DumpConfigToFiles D:\work\cf\ -listFile D:\work\list.txt содержимое файла list.txt у меня из одной строчки Справочник.ПрочиеДоходыИРасход
Получаем в исходной папке иерархическое описание нужного спр-ка
- В частности в фале D:\work\cf\Catalogs\ПрочиеДоходыИРасходы\Ext\Predefined.xml будут наши, добавленные в конфигураторе, предопределенные элементы Фрагмент файла В указанном файле меняем у нужного элемента реквизит id на GUID нужного элемента и сохраняем файл
- Далее загружаем только этот исправленный файл в конфигурацию из командной строки /LoadConfigFromFiles D:\work\cf\ -Files D:\work\cf\Catalogs\ПрочиеДоходыИРасходы\Ext\Predefined.xml
- Обновляем конфигурацию БД, заходим в режим предприятия, убеждаемся что новый предопределенный элемент перепозиционирован на ссылку существующего элемента справочника, а элемент, который раньше соответствовал исходному предопределенному элементу стал непредопределенным и помеченным на удаление. Точнее теперь в базе два элемента справочника с одинаковым идентификатором, непредопределенный теперь можно удалить из базы (элемент был новый ссылок на него быть не должно)
В итоге имеем "новый" предопределенный элемент справочника на который в базе было много ссылок и/или настроена синхронизация по внутр. идентификатору с другими информационными системами.
Надеюсь, кому-нибудь поможет, применять осознанно и осторожно.